如何为树莓派pi用户授予已挂载Windows共享文件夹的写入权限
树莓派CIFS共享普通用户写入权限配置方案
问题原因
CIFS属于网络文件系统,挂载后的文件/目录权限由挂载参数直接指定,你对本地挂载点执行的chmod、chown操作仅作用于未挂载状态的本地目录,共享挂载后会覆盖本地目录的权限设置,因此之前的操作无法生效。
调整fstab挂载参数
默认树莓派pi用户的uid为1000、gid为1000,你可以执行id pi命令确认你的uid/gid数值,再修改/etc/fstab中的挂载配置为:
//192.168.10.99/Logs /mnt/NetworkLogs cifs user=Admin,pass=PASS,x-systemd.automount,uid=1000,gid=1000,file_mode=0644,dir_mode=0755 0 0
参数说明:
uid=1000:指定挂载后所有文件的所有者为uid=1000的用户,即默认的pi用户gid=1000:指定挂载后所有文件的所属组为gid=1000的组,即pi用户的默认用户组file_mode=0644:设置共享内普通文件的权限,pi用户拥有读写权限,其他用户仅拥有只读权限dir_mode=0755:设置共享内目录的权限,pi用户拥有读写、进入目录的权限,其他用户仅拥有读取、进入权限
生效操作步骤
- 先卸载已挂载的共享:
sudo umount /mnt/NetworkLogs,如果提示设备繁忙,先关闭所有访问该目录的进程再执行卸载 - 编辑fstab文件替换配置:
sudo nano /etc/fstab,修改完成后按Ctrl+O保存,Ctrl+X退出编辑器 - 手动测试挂载:
sudo mount /mnt/NetworkLogs,挂载完成后执行ls -l /mnt/NetworkLogs确认文件所有者为pi,再用pi用户执行touch /mnt/NetworkLogs/test.txt测试写入权限,无报错即为配置生效 - 测试开机自动挂载:执行
sudo reboot重启树莓派,重启后直接访问/mnt/NetworkLogs确认权限正常即可
可选安全优化
如果不想在fstab中明文存储共享密码,可以单独创建认证文件:
- 创建认证文件:
sudo nano /etc/smbcredentials,写入以下内容:
username=Admin password=PASS
- 限制认证文件权限,避免泄露:
sudo chmod 600 /etc/smbcredentials - 将fstab配置中的
user=Admin,pass=PASS替换为credentials=/etc/smbcredentials即可
内容的提问来源于stack exchange,提问作者u314
相关产品推荐
相关产品推荐

