web-dev-qa-db-ja.com

FSTABを介してCIFS共有をマウントし、ゲストに完全なRWを与える方法

完全なRWアクセス権を持つパブリックフォルダーを作成したい。私の構成の問題は、Windowsユーザーがゲスト(RWおよびDeleteが可能)として問題がないことです。私の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」グループは読み取りと書き込みを行い、他のすべてのユーザーは読み取り専用になります。

enter image description here

何が間違っていますか?

32
Kendor

これを機能させるには、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
53
Kendor

CIFSには一般にユーザーとグループの概念がないため、cifs共有をマウントすると、デフォルトでユーザーとグループが「nobody」として表示されます。

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

あなたは 'nobody'ではないので、Linuxは、Sudoを使用しない限り、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に指示しています。

6
maharvey67

あなたはほとんどそこにいます。次を使用して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

***(これはすべて1つの長い行です)

Ctrl-X 閉じます Y 保存してEnterキーを押して取引を完了します。

次の方法で再起動します。

Sudo reboot

また、Linuxデバイス上のネットワーク共有を完全に制御する必要があります。

5
AndyShap

この問題が発生したのは、共有のユーザーが所有していないためです。 「Sudo chown {username}:{username}/{share}/{path}」で修正した後、ファイルを移動および削除できました。

1