如何更改已安装的 Samba 共享上的目录的所有权?

如何更改已安装的 Samba 共享上的目录的所有权?

我有一个 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 挂载它然后你可以添加更多选项

相关内容