ユーザーTomcat6が所有するフォルダがあります。
drwxr-xr-x 2 Tomcat6 Tomcat6 69632 2011-05-06 03:43 document
他のユーザー(ルーサー)にドキュメントフォルダへの書き込み権限を許可したいです。 2人のユーザー(Tomcat 6とruser)は同じグループに属しません。私はsetfacl
を使ってみました:
Sudo setfacl -m u:ruser:rwx document
しかし、これは私にsetfacl: document: Operation not supported
エラーを与えます。親切に助けてください。
これを行うには2つの方法があります。ディレクトリを「world」書き込み可能に設定するか、2人のユーザー用に新しいグループを作成し、そのグループにディレクトリを書き込み可能にします。
明らかに世界的に書き込み可能にすることは悪いことなので、2番目のオプションが望ましいです。
Linuxのユーザーは複数のグループに所属できます。この場合、新しいグループを作成するために、tomandruser
と呼びましょう。
Sudo groupadd tomandruser
グループが存在するので、2人のユーザーを追加します。
Sudo usermod -a -G tomandruser Tomcat6
Sudo usermod -a -G tomandruser ruser
あとは、ディレクトリにアクセス許可を設定するだけです。
Sudo chgrp -R tomandruser /path/to/the/directory
Sudo chmod -R 770 /path/to/the/directory
これで、tomandruserグループのメンバーのみが、ディレクトリ内の何かを読み取り、書き込み、または実行できます。 chmodコマンドとchgrpコマンドの-R引数に注意してください。これにより、ターゲットディレクトリのすべてのサブディレクトリに再帰し、見つかったすべてのファイルとディレクトリを変更するように指示されます。
また、770を774
のようなものに変更することもできます。他の人にファイルを読み取らせたい場合は775
、他の人にファイルの読み取りと実行などをさせたい場合などです。グループ割り当ての変更tは、ユーザーがログアウトして再度ログインするまで有効です。
ユーザーの1人がディレクトリ内に作成した新しいファイルをグループ内の他のユーザーが自動的に書き込み可能にしたい場合は、おそらく here を参照してください。
スクリプト例は、/path/to/the/directory
およびUSER1
に対して、指定されたフォルダパスUSER2
に対するw (write)/ r (read) / x (execute)
権限を付与する例を示しています。書き込みアクセスのみを許可したい場合は、rwx
をw
に置き換えてください。
#!/bin/bash
# Block others and people in the same group to do read/write/execute on give folder:
Sudo chmod 700 /path/to/the/directory
#Give read/write/execute access to USER1 on give folder:
Sudo setfacl -R -m user:USER1:rwx /path/to/the/directory
#Give read/write/execute access to USER2 on give folder:
Sudo setfacl -R -m user:USER2:rwx /path/to/the/directory