Permissions

Samba 共享在 Windows 和 Linux 中都是只讀的

  • June 4, 2015

我正在嘗試配置在 Gentoo Linux 上執行的 Samba,以便與另外兩台機器共享我的外部 NTFS 驅動器,一台執行 Gentoo,另一台執行 Windows 7。之前這個驅動器連接到支持 Samba 的路由器(Zyxel Keenetic Giga II ) 並且我可以使用 Web 界面中指定的登錄/密碼對連接到它。我有讀寫權限。

現在我正在嘗試將 Samba 配置為允許指定有效登錄/密碼對的任何人擁有完全訪問權限。登錄名/密碼是唯一的(我不在其他任何地方使用該使用者名)。

我設法連接了 Linux 和 Windows 機器,但僅限於只讀模式。我Permission denied嘗試了所有的寫作嘗試,即使來自的權限ls表明我應該能夠寫作。

網路結構為:

  • sambaserv:Samba 伺服器主機名

    • sambauser/sambapass:Samba 登錄憑據
    • myuserserv:我的使用者登錄
  • linuxclient:Linux 客戶端主機名

    • myuserclient:我的使用者登錄
  • winclient:Win 7 客戶端主機名



這是我所做的:

sambaserv: ls -l /mnt

...
drwxrwxr-x 1 myuserserv myuserserv 4096  2 June  01:08 storage

sambaserv: /etc/fstab

/dev/sdc1    /mnt/storage    ntfs-3g    defaults,uid=1000,gid=1000,umask=0002,noatime 0 0

1000是 的ID myuserserv。我想將此驅動器用於 Samba 共享以外的目的,所以我沒有指定sambauser


sambaserv:``sambauser通過發出以下命令創建:

useradd sambauser
passwd sambauser
pdbedit -a -u sambauser

sambaserv: testparm

$ sudo testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[storage]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
       server string = sambaserv
       log file = /var/log/samba/log.%m
       max log size = 50
       dns proxy = No
       idmap config * : backend = tdb
       hosts allow = 192.168.1., 127.

[storage]
       comment = Storage
       path = /mnt/storage
       valid users = sambauser
       read only = No
       create mask = 0775
       directory mask = 0775

考慮到驅動器是 NTFS,我不知道如何處理文件權限,但如果不是,這些都可以。


linuxclient: ls -l /mnt

...
drwxrwxr-x 1 myuserclient myuserclient  0  2 juin  01:08 storage

linuxclient: /etc/fstab

//sambaserv/storage    /mnt/storage    cifs    credentials=/home/myuserclient/.smbcredentials,iocharset=utf8,sec=ntlm 0 0

winclient:在下鍵入該sambauser/sambapass對。Connect network drive``My Computer


如何在 Linux 和 Windows 下獲得寫入權限?

我被指出了一個解決方案(不是解決方案)。如果我添加sambausermyusersrvon組sambaserv,問題就會消失。但是,這不是一個好的解決方案,因為它需要弄亂使用者組,而我在不同的環境中可能無法做到這一點。

文件共享權限彼此不相關,您需要單獨設置它們。您需要這樣的一行smb.conf來允許對共享的寫訪問:

write list = sambauser

有關詳細資訊,請參見smb.conf手冊頁。

引用自:https://unix.stackexchange.com/questions/207068