将文件移动到 Samba 共享时出现问题:权限和所有权不持久

将文件移动到 Samba 共享时出现问题:权限和所有权不持久

我在一台 Ubuntu 22.04 机器上运行 samba,因此我可以与另一台 Ubuntu 22.04 客户端机器共享一个特定目录。主机上的这个目录中没有文件。

主机上的 Samba 配置如下:

sudo nano /etc/samba/smb.conf
[share_name]
   browseable = yes
   read only = no
   hosts allow = 192.168.0.0/16
   path = /tank/mail
   create mask = 0775
   force create mode = 0775
   force directory mode = 2775

在Ubuntu客户端上我创建了一个新目录,如下所示:

sudo chown -R 5000:5000 /opt/vmail-data
sudo chmod 0775 /opt/vmail-data 

然后创建持久的 samba 共享:

sudo nano /etc/fstab
//host_ip/share_name /opt/vmail-data cifs credentials=.smbpaswd,_netdev,file_mode=0644,dir_mode=0755,rw 0 0

sudo mount /opt/vmail-data 目录挂载后。

然后我在这个目录上创建了一个测试文件和测试目录:

root:/opt/vmail-data# mkdir testdir
root:/opt/vmail-data# ls -la
total 5
drwxr-xr-x 2 root root    0 Oct 16 18:23 .
drwxr-xr-x 5 root root 4096 Oct 13 09:33 ..
drwxr-xr-x 2 root root    0 Oct 16 18:23 testdir
-rw-r--r-- 1 root root    0 Oct 16 18:23 testfile

问题是,当我将另一个客户端目录复制或 rsync 到此客户端 samba 共享(在同一台客户端机器上)时,所有权和权限会发生如下变化:

客户端的源(原始)目录:

# ls -la
total 52
drwx------ 10 5000 5000 4096 Oct 13 10:33 .
drwx------  3 5000 5000 4096 Oct 13 10:25 ..
drwx------  5 5000 5000 4096 Oct 13 09:45 .Archive
drwx------  2 5000 5000 4096 Oct 13 10:33 cur
-rw-------  1 5000 5000    0 Oct 13 09:32 dovecot-acl-list
-rw-------  1 5000 5000  608 Oct 13 10:25 dovecot-uidlist
-rw-------  1 5000 5000    8 Oct 13 09:45 dovecot-uidvalidity
-r--r--r--  1 5000 5000    0 Oct 13 09:32 dovecot-uidvalidity.63480569
drwx------  5 5000 5000 4096 Oct 13 09:45 .Drafts
drwx------  5 5000 5000 4096 Oct 13 09:45 .Junk
drwx------  2 5000 5000 4096 Oct 13 10:33 new
drwx------  5 5000 5000 4096 Oct 16 16:46 .Sent
-rw-------  1 5000 5000   36 Oct 13 09:45 subscriptions
drwx------  2 5000 5000 4096 Oct 13 10:25 tmp
drwx------  5 5000 5000 4096 Oct 13 10:04 .Trash

如果我尝试上述任何命令,结果都是相同的:

mv /path_to_source /opt/vmail-data

或者

cp -a /path_to_source /opt/vmail-data

或者

rsync -avr /path_to_source /opt/vmail-data

AQter 这些命令中的任何结果在目标路径上都是相同的:

ls -la
total 11
drwxr-xr-x 2 root root   0 Oct 16 18:22 .
drwxr-xr-x 2 root root   0 Oct 13 10:25 ..
drwxr-xr-x 2 root root   0 Oct 13 09:45 .Archive
drwxr-xr-x 2 root root   0 Oct 13 10:33 cur
-rw-r--r-- 1 root root   0 Oct 13 09:32 dovecot-acl-list
-rw-r--r-- 1 root root 608 Oct 13 10:25 dovecot-uidlist
-rw-r--r-- 1 root root   8 Oct 13 09:45 dovecot-uidvalidity
-r--r--r-- 1 root root   0 Oct 13 09:32 dovecot-uidvalidity.63480569
drwxr-xr-x 2 root root   0 Oct 13 09:45 .Drafts
drwxr-xr-x 2 root root   0 Oct 13 09:45 .Junk
drwxr-xr-x 2 root root   0 Oct 13 10:33 new
drwxr-xr-x 2 root root   0 Oct 17 07:15 .Sent
-rw-r--r-- 1 root root  36 Oct 13 09:45 subscriptions
drwxr-xr-x 2 root root   0 Oct 13 10:25 tmp
drwxr-xr-x 2 root root   0 Oct 17 06:47 .Trash

据我所知,这些命令应该将所有权和权限从原始源目录保留到目标目录,但事实并非如此。移动的文件归 root:root 所有,而不是 5000:5000 所有,而且权限也不相同。

如果我uid=5000,gid=5000,forceuid,forcegid向 fstab 添加挂载选项,则文件将以 5000:5000 作为所有者创建,但这不是我预期的行为。目前,原始目录中的文件归 5000:5000 所有,但将来这种情况可能会改变。无论如何,所有权都应保留。

此外,无论如何权限都不会保持同步。我遗漏了什么?

相关内容