我有一个 Linux 客户端,它安装了 samba 共享,并且具有以下 fstab 条目:
//<serverip>/<nameofshare> /home/user -o nofail,x-systemd.device-timeout=15s,vers=3.11,user=<sambauser>,uid=<clientuser>,gid=<clientuserprimarygroup>,cifsacl,credentials=/path/to/cred 0 0
在此已安装的共享上,我想创建一个目录foo
并对其进行 chown,以便它属于 user:group bar
: bar
。问题是,即使以 root 身份,如果我尝试对文件或目录进行 chown,也会chown -v bar:bar <file-or-directory>
收到以下错误:
chown: changing ownership of '<file-or-directory>': Invalid argument
failed to change ownership of '<file-or-directory>' from user:<numeric gid> to bar:bar
如果出于某种原因这很重要,它似乎忽略了 mount 命令中的 gid,并且之前创建的文件和新文件显示与 samba 用户相同的 gid。直到最近才发生这种情况,我不确定发生了什么变化。以下是显示的完整 mount 命令mount/mtab
:
//<serverip>/<sambashare> /home/user cifs rw,relatime,vers=3.1.1,cache=strict,username=<sambauser>,uid=1000,noforceuid,gid=1000,noforcegid,addr=<serverip>,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,cifsacl,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=60,actimeo=1,closetimeo=1 0 0
我不确定是什么原因导致 noforceuid 被放入命令中。如果我在 uid 和 gid 之后分别使用 forceuid 和 forcegid 进行挂载,forceuid 会替换 noforceuid,但旧文件和新文件仍显示 sambauser gid。
Samba 服务器版本是 4.19.5。
答案1
只需将共享安装到特定路径,然后 chown
mount smbshare /mnt
chown -r /mnt
或者使用 fstab 挂载它然后你可以添加更多选项