web-dev-qa-db-ja.com

Ubuntuのフォルダの複数のユーザーに書き込み権限を与える

ユーザー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エラーを与えます。親切に助けてください。

78
TheVillageIdiot

これを行うには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 を参照してください。

141
Andrew Lambert

スクリプト例は、/path/to/the/directoryおよびUSER1に対して、指定されたフォルダパスUSER2に対するw (write)/ r (read) / x (execute)権限を付与する例を示しています。書き込みアクセスのみを許可したい場合は、rwxwに置き換えてください。


#!/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 
2
alper