从Synology NAS挂载SMB共享文件夹时遇到一些问题。
我想安装一个具有权限的共享文件夹:git:root 700
但是挂载的文件夹总是将权限设置为777(即使在没有错误的chmod 700之后)
在我的/etc/fstab
我用过这一行:
#uid=999 ---> git user
//server/folder /mnt/artifacts cifs username=windowsUser,password=xxxxx,gid=0,uid=999,file_mode=0700,dir_mode=0700,iocharset=utf8 0 0
你知道为什么我不能设置700的权利吗? 我犯了一个错误?有点蠢吗?
先谢谢你的帮助;)
答案 0 :(得分:3)
一个好的开始是查看CIFS
的联机帮助页:
$ man mount.cifs
[...]
file_mode=arg
If the server does not support the CIFS Unix extensions this overrides the default file mode.
dir_mode=arg
If the server does not support the CIFS Unix extensions this overrides the default mode for directories.
[...]
nounix
Disable the CIFS Unix Extensions for this mount.
[...]
因为file_mode
(和dir_mode
)似乎仅在服务器不支持CIFS Unix扩展时才起作用,我将首先禁用它们(通过nounix
选项)
答案 1 :(得分:2)
如果远程计算机用户ID和本地计算机用户ID不匹配,则权限默认为777。Mount.cifs不支持umask,因此可以使用“ noperm”选项。这样,即使本地和远程计算机上的用户权限不匹配,仍将允许用户读写该文件夹,等效于umask = 000。
//address/location /mount/location cifs username=username,password=password,noperm,vers=2.0 0 0
答案 2 :(得分:0)
你的问题很常见。您使用的标记不正确,无法更改已安装文件夹的文件权限。
您需要添加'umask =',而不是'file_mode = 700'和'dir_mode = 700'系统挂载选项不是CIFS的选项。
要执行此操作,您可以使用:
//address/location /mount/location cifs credentials=/location,uid=id,gid=id,umask=700 0 0
这将以设置文件权限挂载文件共享。
为了安全起见,我建议使用包含用户名和密码的凭证文件,并且必须设置为只读。
答案 3 :(得分:0)
我尝试安装仅具有root权限的CIFS共享。其他用户甚至不能列出任何文件。
因此,我使用了以下fstab条目:
//192.168.0.100/DRV /mnt/DRV cifs user=user,pass=pass,uid=0,gid=0,nounix,file_mode=0007,dir_mode=0007 0 0
我还尝试了 noperm 参数。
我详细创建了具有以下权限的文件夹:
drwxrwx--- 2 root root 4096 Mai 14 09:09 DRV
安装网络共享后,文件夹具有:
d------rwx 2 root root 4096 Mai 14 04:50 W
答案 4 :(得分:0)
添加nounix
很好。有关信息,我在/etc/fstab
中的行是:
//server/share /mnt/folder cifs credentials=/home/yannick/.smbcredentials,iocharset=utf8,sec=ntlm,vers=1.0,uid=1000,gid=1000,file_mode=0644,dir_mode=0755,nounix 0 0
其中1000
是我的用户ID和组ID。
在.smbcredentials
里面,我有这个:
username=<distant login>
password=<distant password>