サーバーの共有は次のように定義されます。
[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を使用するクライアントにはこの問題はありません)。私が正しく理解しているなら、これは問題かもしれませんumask
。umask
クライアントにこれを入力すると、0002
新しいディレクトリを作成するときにそのACLがrwxrwxr-x
(rw-rw-r--
ファイルの場合)という意味を得ることができます。
だから欲しいなら新しく作成されたすべてのフォルダとファイルは誰でも書き込み可能です。、設定できますumask 0000
(たとえば.bash_profile
)。もちろん、これは悪い考えかもしれません。
私があなたであれば、信頼できるすべてのユーザーが同じグループのメンバーであることを確認し、親共有ディレクトリに次friends
の権限を設定します。
chmod g+rwxs /path/to/share
ここでの役割はsgidビット(s
上記)は、このディレクトリの下に作成されたすべてのディレクトリとファイルが親ディレクトリのグループ所有者によって所有されていることを確認することです。
より明確な例(ここ(基本)とapaul
グループメンバー):users
friends
$ 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
共有の下にサブディレクトリ(またはファイル)を作成できますが、グローバルに書き込むことはできません。