虽然 macOS 自带的文件共享使用 smb 协议,但在我的其他硬盘上不支持为不同用户设置访问权限。此外,在使用Tuxera NTFS挂载的硬盘上开启共享会导致电脑死机。因此,本文将介绍如何在 macOS 上安装第三方 samba 服务端,并支持为不同用户设置访问权限。
安装 samba
首先需要安装有homebrew,在终端中执行:
brew install samba
由于安装的samba会将用户名和密码存储在 /usr/local/Cellar/samba/版本号/private 中,因此每次用更新时都要重新设置账号密码,因此新建一个文件夹存放:
mkdir /usr/local/Cellar/samba/private
编辑配置文件
随后新建配置文件/usr/local/etc/smb.conf,参考如下:
[global] # 全局配置。 server string = Kyles Media Share # 服务器名称,可自定义。 private dir = /usr/local/Cellar/samba/private # 修改private文件夹位置。 # 示例 [kyle] 仅限特定用户访问,可读可写。 # 示例 [tv] 存放影视资源,支持访客查看,只读不可写。 [kyle] # 共享名称,可自定义。 comment = private share # 共享备注,可自定义。 path = /Volumes/Kyle # 本地文件夹路径。 valid users = kyle # 可以访问的用户,用逗号隔开。 admin users = kyle # 管理员用户,上述用户的操作会以root权限执行。 browseable = yes # 是否在可用共享列表中看到此共享。 available = yes # 是否可用,输入no时无法访问。 public = no # 是否支持访客登录。同 guesk ok。 read only = no # 是否只读。同 writable 相反(read only=yes和writable=no作用相同)。 [tv] comment = tv path = /Volumes/Kyle/0影视剧 admin users = kyle browseable = yes available = yes public = yes # 公开的共享,可使用nobody账号登录。 read only = yes # 只读。
如何访问usr文件夹:
1. 在终端中输入 touch /usr/local/etc/smb.conf 新建文件。
2. 在访达菜单栏中选择“前往-前往文件夹”,输入 /usr/local/etc 。
3. 打开smb.conf并编辑。
测试配置文件,运行后按enter可查看生效的配置:
testparm /usr/local/etc/smb.conf
新建 samba 用户
在终端中执行:
sudo smbpasswd -a kyle # kyle是登录时的用户名,系统中也需要有对应的用户,否则会出现错误: # Failed to add entry for user sudo smbpasswd -a nobody # 添加访客账号,可以不输入密码直接回车
如何新建本地用户:设置-用户与群组-添加账户,新账户选择“仅限共享”。
开启共享
首先测试是否正常运行:
sudo /usr/local/sbin/samba-dot-org-smbd -i -s /usr/local/etc/smb.conf # -i 表示前台运行,可以查看是否报错 # -s 指定配置文件位置 # 可以通过新建终端,执行 sudo killall samba-dot-org-smbd 关闭进程。
如果提示 directory_create_or_exist: mkdir failed on directory /usr/local/Cellar/samba/4.17.5/private/msg.sock: No such file or directory,是因为没有按前文所说的修改private文件夹。或者手动创建该文件夹,但每次更新都要重新操作:
mkdir /usr/local/Cellar/samba/4.17.5/private # 注意将其中的4.17.5替换为提示中的版本号 # 每次更新samba软件都要再次新建private文件夹
测试无误后通过下方代码让samba服务在后台运行:
sudo /usr/local/sbin/samba-dot-org-smbd -D -s /usr/local/etc/smb.conf # -D 表示后台运行
如果要暂停共享,以下两行代码任意选择一行执行:
sudo smbcontrol smbd shutdown sudo killall samba-dot-org-smbd
配置 samba 服务自启动
在终端中执行:
sudo vi /Library/LaunchDaemons/org.samba.smbd.plist
输入以下内容:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.samba.smbd</string> <key>ProgramArguments</key> <array> <string>/usr/local/sbin/samba-dot-org-smbd</string> <string>-D</string> <string>-s</string> <string>/usr/local/etc/smb.conf</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> </dict> </plist>
备注:按i进入编辑模式,完成后按esc,输入:wq保存并退出。
接着在终端中执行:
sudo launchctl load /Library/LaunchDaemons/org.samba.smbd.plist
在活动监视器中看到 samba-dot-org-smbd 即表示软件已在后台运行。
![samba](https://kylechoy.top/wordpress/wp-content/uploads/2023/01/samba.png)
关闭自启动:
sudo launchctl unload /Library/LaunchDaemons/org.samba.smbd.plist
连接 samba 服务器
以iOS nPlayer为例:网络-菜单-新建服务器-SMB/CIFS,主机可填写电脑的NetBIOS名称或IP地址,并填写相应的用户名和密码。
查询电脑NetBIOS:在终端中输入 hostname。
查询电脑IP地址:按住option键的同时点击顶部的Wi-Fi按钮。
参考链接:
Mac Pro 开机自启动 PHP-FPM,Nginx,MySql 等软件