新しく作成されたディレクトリに対する書き込み権限を自動的に取得するには?

新しく作成されたディレクトリに対する書き込み権限を自動的に取得するには?

サーバーの共有は次のように定義されます。

[share]
path = ...
read only = no
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
valid users = dobiasd

fstabクライアント経由でインストールされます。

//server/share /home/dobiasd/share/ cifs file_mode=0777,dir_mode=0777,iocharset=utf8,username=dobiasd,password=dummy 0 0

クライアントはファイルとディレクトリを作成できます。新しく作成したディレクトリを再度削除することもできますが、その新しいディレクトリに新しいファイルやディレクトリを作成することはできません。これを達成するためにchmod -R 777 .サーバーで最初に作業を実行する必要があるため、そのディレクトリの「drwxrwxr-x」は「drwxrwxrwx」になりました。

Sambaが新しいディレクトリをすぐに作成してその中にサブフォルダを作成できるようにするにはどうすればよいですか?

答え1

その場合、これはLinuxシステムにマウントされたSamba共有です(Windowsを使用するクライアントにはこの問題はありません)。私が正しく理解しているなら、これは問題かもしれませんumaskumaskクライアントにこれを入力すると、0002新しいディレクトリを作成するときにそのACLがrwxrwxr-xrw-rw-r--ファイルの場合)という意味を得ることができます。

だから欲しいなら新しく作成されたすべてのフォルダとファイルは誰でも書き込み可能です。、設定できますumask 0000(たとえば.bash_profile)。もちろん、これは悪い考えかもしれません。

私があなたであれば、信頼できるすべてのユーザーが同じグループのメンバーであることを確認し、親共有ディレクトリに次friendsの権限を設定します。

chmod g+rwxs /path/to/share

ここでの役割はsgidビットs上記)は、このディレクトリの下に作成されたすべてのディレクトリとファイルが親ディレクトリのグループ所有者によって所有されていることを確認することです。

より明確な例(ここ(基本)とapaulグループメンバー):usersfriends

$ mkdir /tmp/share
$ mkdir /tmp/share/dir1
$ ls -l /tmp/share
drwxrwxr-x 2 apaul users  4096  7 april 21:48 dir1

$ chgrp friends /tmp/share
$ chmod g+rwxs /tmp/share
$ ls -ld /tmp/share
drwxrwsr-x 4 apaul friends 4096  7 april 21:49 share/

$ mkdir /tmp/share/dir2
$ ls -l /tmp/share
drwxrwxr-x 2 apaul users   4096  7 april 21:48 dir1
drwxrwsr-x 2 apaul friends 4096  7 april 21:49 dir2

これにより、グループのすべてのメンバーがfriends共有の下にサブディレクトリ(またはファイル)を作成できますが、グローバルに書き込むことはできません。

関連情報