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


80

ユーザーtomcat6が所有するフォルダーがあります。

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

別のユーザー(ruser)にドキュメントフォルダーへの書き込み権限を許可したい。2人のユーザー(tomcat6とruser)は同じグループに属していません。私は使用してみましたsetfacl

sudo setfacl -m  u:ruser:rwx document

しかし、これは私にsetfacl: document: Operation not supportedエラーを与えます。親切に私を助けてください。

回答:


144

これを行うには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許可したい場合、他のユーザーにファイルの読み取りおよび実行などを許可したい場合などに変更することもできます。グループ割り当ての変更は、ユーザーがログアウトして戻るまで有効になりませんに。

ユーザーの1人がディレクトリ内に作成した新しいファイルを、グループ内の他のユーザーが自動的に書き込み可能にすること(おそらくそうすること)が必要な場合は、こちらを参照してください


2
おそらく、自動的に右のグループが所有し、新しいファイルやサブディレクトリを作るために、また、ディレクトリのセットグループIDフラグを設定したい:sudo find /path/to/the/directory -type d -exec chmod 2770 '{}' \;
マルチェロNuccio

8
chmod 770、775などは使用しないでください。それは、すべてのファイルの許可を台無しにします。代わりに、chmod -R g+w他のすべてを壊すことなく書き込み許可を追加するようなものを使用します。
クリスチャンヴァルガ

2
ユーザーがそこに新しいファイル(たとえば、mysql by SELECT INTO OUTFILE)を作成すると、そのプライマリグループ(mysqlこの場合)にアクセス許可が設定され、とにかく別のユーザーがファイルにアクセスできなくなります。これを回避する方法は?
オレクサ

2
フォルダーの所有権を変更せずにフォルダーへの書き込みアクセスをユーザーに許可したい場合、例えば、public_htmlフォルダーに対するapacheの許可を台無しにしたくない場合はどうでしょうか?
codecowboy 14

2
注:「グループ割り当ての変更は、ユーザーがログアウトして再度ログインするまで有効になりません。」私はそれを見逃した:)
ウラジミールVukanac

3

スクリプト例は与える例を示しw (write)/ r (read) / x (execute)指定したフォルダパスに許可を/path/to/the/directoryためUSER1USER2。書き込みアクセスのみを許可する場合は、に置き換え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 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.