在 AD samba 共享上创建文件:权限被拒绝

在 AD samba 共享上创建文件:权限被拒绝

我正在设置一个 Samba 活动目录服务器(内部fmstrat docker 容器) 位于 Ubuntu 服务器 22.04 上。

经过多次尝试,我取得了以下成果:

  • 在我的 Ubuntu 服务器上托管 AD 服务器
  • 加入 Windows 客户端(win11)
  • 加入两个 Linux 客户端(ubuntu 23.04、23.10)
  • 加入我的 NAS
  • 通过卷映射从 ubuntu 服务器共享一些目录并将它们托管在 samba (smb.conf) 中

我的问题出在最后一步。我可以:

  • 从 Windows AD 客户端访问共享(读/写/创建)
  • 从 Linux 客户端查看共享

但是我无法从 Linux 客户端在 Samba 共享上创建任何新文件。我完全陷入困境,陷入了困境。希望从这个社区获得一些建议/指点。(如果这是错误的地方,请告诉我)。

在 ubuntu 服务器上我有几个想要共享的目录(~/services/openhab/conf、~/services/openhab/userdata)。

在同一台服务器上,samba docker 容器正在运行。我想要共享的目录是卷映射的。

services:
  samba:
    image: nowsci/samba-domain
    container_name: samba
    volumes:
      - [some other volume mappings 
      - /home/localadmin/services/openhab/conf:/shares/openhab/conf
      - /home/localadmin/services/openhab/userdata:/shares/openhab/userdata

在ubuntu服务器端,这些文件归openhab用户(本地账户)所有。

localadmin@dc:~/services/openhab$ ls -l
total 16
drwxrwxrwx  2 openhab           993 4096 Apr  6 18:35 addons
drwxrwxrwx 14 openhab           993 4096 Apr  7 10:37 conf
-rw-rw-r--  1 localadmin localadmin  590 Apr  6 18:30 docker-compose.yml
drwxrwxrwx 11 openhab           993 4096 Apr  7 10:37 userdata

在 docker 容器内部,文件由编号用户和组拥有(不知道这是谁,我猜是 AD 用户的某些默认起始索引?)

root@dc:/# ls -l /shares/openhab/
total 8
drwxrwxrwx 14 998 993 4096 Apr  7 10:37 conf
drwxrwxrwx 11 998 993 4096 Apr  7 10:37 userdata

最后,在 smb.conf 中,共享定义如下:

[Openhab-conf]
        path = /shares/openhab/conf
        read only = no
        public = yes
        writable = yes
        force create mode = 0666
        force directory mode = 0777
        browseable = yes
        valid users = "@sb.lan\domain users"
        force group = "Domain Users"

[Openhab-userdata]
    path = /shares/openhab/userdata
        read only = no
        public = yes
        writable = yes
        force create mode = 0666
        force directory mode = 0777
        browseable = yes

当我从成功加入域的 Linux 客户端挂载共享时:

(in fstab)
//192.168.1.100/Openhab-conf        /media/openhab-conf     cifs  credentials=/home/[email protected]/creds/ad.credentials,vers=2.0 0  0

我可以看到共享并列出所有文件,但是当我尝试在共享内的任何文件夹中创建文件时,出现以下错误:

[email protected]@bas-hp:~$ touch /media/openhab-conf/scripts/test.txt
touch: cannot touch '/media/openhab-conf/scripts/test.txt': Permission denied

当我在挂载点上运行 ls -l 时:

[email protected]@bas-hp:~$ ls -l /media/openhab-conf/
total 4
drwxr-xr-x 2 root root  0 apr  6 20:35 automation
drwxr-xr-x 2 root root  0 apr  7 20:47 html
drwxr-xr-x 2 root root  0 apr  6 20:30 icons
drwxr-xr-x 2 root root  0 apr  7 12:37 items
drwxr-xr-x 2 root root  0 apr  7 12:37 rules
drwxr-xr-x 2 root root  0 apr  7 12:37 scripts
drwxr-xr-x 2 root root  0 apr  7 12:37 services
drwxr-xr-x 2 root root  0 apr  7 12:37 sitemaps
drwxr-xr-x 2 root root  0 apr  7 12:37 sounds
drwxr-xr-x 2 root root  0 apr  7 12:37 tags
drwxr-xr-x 2 root root  0 apr  7 12:37 things
drwxr-xr-x 2 root root  0 apr  7 12:37 transform
-rwxr-xr-x 1 root root 92 apr  7 12:37 workspace.code-workspace

我可以看到这些文件归 root/root 所有。我可以,但这不会影响 ls -l 显示的所有权。sudo chown -R [email protected] /media/openhab-conf

再次,股票发挥作用在 Windows 机器上完美无缺已加入同一 AD。

我不知道问题是什么。我猜是在 Linux 端,因为我可以从 Windows 客户端毫无问题地访问共享。所以这对我来说意味着 ubuntu 服务器 => samba docker 运行正常。但另一方面,我试图否决 Linux 端的所有权限,但无济于事……

任何建议都将不胜感激!

相关内容