私が所属するスタッフグループが所有するディレクトリにファイルを作成したい。なぜこれができないのですか?
bmccann@bmccann-htpc:~$ ls -l /usr/local/lib/R/
total 4
drwxrwsr-x 2 root staff 4096 2010-07-31 16:21 site-library
bmccann@bmccann-htpc:~$ id -nG bmccann
bmccann adm dialout cdrom plugdev staff lpadmin admin sambashare
bmccann@bmccann-htpc:~$ touch /usr/local/lib/R/site-library/tmp
touch: cannot touch `/usr/local/lib/R/site-library/tmp': Permission denied
グループを変更した後、ログアウトして再度ログインしましたか?見る:
タッチ許可の失敗を含むスーパーユーザーの回答
Linuxユーザーが自分が所属するグループのファイルを編集できないのはなぜですか
私はUbuntu 12.04を使用していますが、ユーザーがグループアクセスを許可されているファイルに書き込むことができないという同じ問題がありました。例えば:
whoami //I am user el
el
touch /foobar/test_file //make a new file
Sudo chown root:www-data /foobar/test_file //User=root group=www-data
Sudo chmod 474 /foobar/test_file //owner and others get only read,
//group gets rwx
Sudo groupadd www-data //create group called www-data
groups //take a look at the groups and see
www-data //www-data exists.
groups el //see that el is part of www-data
el : www-data
ここでターミナルを再起動して、ユーザーとグループが有効になっていることを確認します。 elとしてログインします。
vi /foobar/test_file //try to edit the file.
警告を生成します:
Warning: W10: Warning: Changing a readonly file"
何?私はすべてを正しくしましたが、なぜうまくいかないのですか?
回答:
コンピューターを完全に再起動します。これらの問題を解決するには、ターミナルを停止するだけでは不十分です。
Apache2もwww-dataグループを使用しているので、ユーザーとグループが正しく強制されるのを何らかの形で妨げるタスクだったと思います。ログアウトするだけでなく、グループを使用するサービスを停止して再起動する必要があります。再起動しても取得できない場合は、より大きな問題が発生しています。
同じ問題がありましたフォルダーにACLルールがまだあるかどうかを確認してください!
フォルダを一覧表示するときに+(プラス記号)が表示される場合、それは特別なアクセスルールがあることを意味します。例えば:
[user_in_Apache_group@web02 html]$ ls -l
total 16
drwxrwxr-x 16 Apache apache 4096 Sep 4 13:46 ilias
drwxrwxr-x+ 15 Apache apache 4096 Sep 4 13:46 ilias5
許可を表示します。
[user_in_Apache_group@web02 html] getfacl ilias5
# file: ilias5
# owner: Apache
# group: Apache
user::rwx
user:user_in_Apache_group:r-x
group::rwx
mask::rwx
other::r-x
つまり、ユーザー(user_in_Apache_group)にはそのフォルダーに対する書き込み権限がありません。
解決策は@techtonikが言ったことであり、ユーザーに書き込み許可を追加します。
[user_in_Apache_group@web02 html]$ Sudo setfacl -m u:user_in_Apache_group:rwx ./ilias5
許可を再度確認します。
[user_in_Apache_group@web02 html] getfacl ilias5
...
user:user_in_Apache_group:rwx
...
それが役に立てば幸い。 ;)
Linux ACL(アクセス制御リスト)を使用します-これは許可システムのよりきめの細かいバージョンです。
setfacl -R -m 'group:staff:rwx' -m 'd:group:staff:rwx' /usr/local/lib/R/
これにより、ディレクトリのアクティブな権利と、内部で作成されたすべてのデフォルトの権利の両方が設定されます。
staff
グループに自分を追加したばかりの場合、これは再ログインなしでは機能しませんが、現在のセッションに対してのみ自分に許可を設定できます。
ユーザーがbar
ディレクトリへのアクセス権を持っていなかったため、ユーザーが許可を持っていても/foo/bar/baz
ディレクトリにアクセスできないという問題がありました。
そのファイルにコンテンツを追加する前に、親ディレクトリに権限があるかどうかを確認してください
Sudo chmod -R 777 /yourDir/file.log