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


33

完全な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」は読み取りと書き込みを行い、他のすべてのユーザーは読み取り専用になります。

ここに画像の説明を入力してください

何が間違っていますか?


それでは、Ubuntuクライアントから共有をマウントできます(fstabエントリを与えられたルートとして)、読み取りと書き込みはできますが、削除または作成はできませんか?どうしてコピーできるのですか(コピーするには、ファイルの作成が必須です)。
1月

回答:


56

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

3
よくある問題で、まったく答えがありません...すばらしい!
dan3

ああ、ちょうど私が必要なもの...どうもありがとう-これを何時間も探しています!
pkdkk 14

1
別の落とし穴:cifs-utilsインストールされていることを確認してください(私にとっては、 "main" samba pkgをインストールした後、16.04の下にインストールされていません)。インストールしていない場合、「bad fs / bad option」エラーが発生します。
bshea

それをインストールした後、私は他の回答でパーマを使用して追加しました://10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0 to /etc/fstabthen sudo mount -a。マウント/書き込みがうまくできたようです。
bshe

:私にとっては、(UIDなし)少し簡単なバージョンは、別のLinuxマシンからすべてのユーザーのパブリック共有のために適切にR / Wをマウントするために働いていた//server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
woohoo

6

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に伝えています。


1
はい(guest / nobody / etcを使用する場合)親フォルダに完全な読み取り/書き込み/実行があることを確認してください。私はこのパーマをいくつかの内部ネットワーク共有で使用しています。したがって、セキュリティの問題ではありません。賛成
bshea

しかし、あなたの投稿に反して-マウントするための正しいオプションがあったときに、ユーザーID「nobody」(マウント用)を使用することができました。私の他のコメントを参照してください
。– bshe

これは、マウントされたファイルのすべてのユーザーに広範なアクセス許可を設定するよりもはるかに優れたソリューションです。そしてそれは動作します。
j08lue

5

あなたはほとんどそこにいます。次を使用して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デバイス上のネットワーク共有を完全に制御する必要があります。


1
そのパスワードをサンプルのパスワードに置き換えることができます。
スポットライト

9
fstabエントリをマウントするために再起動する必要はありません。ただ、mount <DEVICE>あるいはmount <MOUNTPOINT>それでさえmount -a、仕事をうまくやる。
デビッドフォースター

1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.