當前位置: 首頁>>技術教程>>正文


如何通過FSTAB掛載CIFS共享並為Guest提供完整的RW

, ,

問題描述

我想創建一個具有完全讀寫訪問權限的公用文件夾。我的配置存在的問題是Windows用戶作為來賓係統沒有問題(他們可以讀寫和刪除),而我的Ubuntu客戶端不能這樣做。我們隻能讀寫,而不能創建或刪除。

這是服務器上的我的smb.conf:

[global]
    workgroup = WORKGROUP
    netbios name = FILESERVER
    server string = TurnKey FileServer

    os level = 20
    security = user
    map to guest = Bad Password
    passdb backend = tdbsam
    null passwords = yes

    admin users = root
    encrypt passwords = true
    obey pam restrictions = yes
    pam password change = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

    add user script = /usr/sbin/useradd -m '%u' -g users -G users
    delete user script = /usr/sbin/userdel -r '%u'
    add group script = /usr/sbin/groupadd '%g'
    delete group script = /usr/sbin/groupdel '%g'
    add user to group script = /usr/sbin/usermod -G '%g' '%u'

    guest account = nobody

    syslog = 0
    log file = /var/log/samba/samba.log
    max log size = 1000

    wins support = yes
    dns proxy = no

    socket options = TCP_NODELAY
    panic action = /usr/share/samba/panic-action %d


[homes]
    comment = Home Directory
    browseable = no
    read only = no
    valid users = %S

[storage]
    create mask = 0777
    directory mask = 0777
    browseable = yes
    comment = Public Share
    writeable = yes
    public = yes
    path = /srv/storage

以下FSTAB條目不會產生對共享的完全R /W訪問。

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw 0 0

這也不起作用

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw,guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

使用Nemo /Nautilus中的以下位置而不安裝要掛載的共享可以正常工作:

smb://192.168.0.5/storage/

額外信息。我隻是注意到,如果在掛載後將文件複製到共享,我的Ubuntu客戶端會立即讓”nobody”成為所有者,並且”no group”組已經讀寫,而其他所有人均為隻讀。

我究竟做錯了什麽?

最佳思路

原來,我需要向FSTAB中的安裝線添加本地(客戶端)UID才能使此工作正常進行。我是通過蠻力到達的:

//192.168.0.5/storage /media/myname/TK-Public/ cifs guest,uid=myuser,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

次佳思路

CIFS通常沒有用戶和組的任何概念,因此安裝cifs共享將默認將用戶和組顯示為’nobody’:

drwxdrwxdrwx. 3 nobody nobody 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 nobody nobody 0 Sep 29 09:00 ..

由於您不是’nobody’,因此除非您使用sudo,否則Linux將不允許您寫入沒有0777權限的任何內容。要解決此問題,請將uid = mylogin,gid = mygroup添加到fstab,它將使共享看起來像是您自己的目錄:

drwxdrwxdrwx. 3 mylogin mygroup 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 mylogin mygroup 0 Sep 29 09:00 ..

現在,您完全可以控製,而無需sudo。

這實際上並沒有改變服務器上的任何內容,因為服務器沒有執行任何操作。它告訴Linux假裝您是所有者,並賦予您不受限製的訪問權限。

第三種思路

你快到了通過使用以下方式打開FSTAB:

sudo nano /etc/fstab

在最後一行(或最後一行)中:

//192.168.0.5/storage /media/myname/TK-Public/ cifs username=YOURUSERNAME,password=YOURPASSWORD,iocharset=utf8,file_mode=0777,dir_mode=0777

***(這是一條長線)

CtrlX關閉,Y保存並輸入以完成交易。

現在通過以下方式重新啟動:

sudo reboot

並且您應該完全控製Linux設備上的網絡共享!

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/8681.html,未經允許,請勿轉載。