web-dev-qa-db-ja.com

別のユーザーからフォルダーにアクセスする

私はPHPを使用していますが、別のユーザーのフォルダーにアクセスしようとしていますが、常に「Permission denied」というエラーが表示されます。

グループを作成し、ユーザーを追加してアクセスを許可しました。それは助けにはならず、ここに私がやったことがあります(ルートアクセスから):

Sudo usermod -a -G mygroup tools
Sudo usermod -a -G mygroup user2

Sudo chgrp -R mygroup /home/tools/domains/domain.tools.com/public_html/storage/users

Sudo chmod -R 2775 /home/tools/domains/domain.tools.com/public_html/storage/users

chmod ug+rwx -R /home/tools/domains/domain.tools.com/public_html/storage/users

これで、ユーザー「ツール」(このフォルダーのある場所)からフォルダーにアクセスしようとすると、問題なく簡単にアクセスできます。

[tools@server ~]$ ls -l /home/tools/domains/domain.tools.com/public_html/storage/users
total 4
drwxrwsr-x 7 root mygroup 4096 Dec 18 17:36 id

しかし、同じグループ内の別のユーザーからこのフォルダーにアクセスしようとすると、次のエラーが表示されます。

[user2@server ~]$ ls -l /home/tools/domains/domain.tools.com/public_html/storage/users
ls: cannot access /home/tools/domains/domain.tools.com/public_html/storage/users: Permission denied

この問題を修正するにはどうすればよいですか?

2
Eran Levi

user2へのアクセスを特定のサブフォルダーに与えました:/home/tools/domains/domain.tools.com/public_html/storage/users

user2でそのフォルダーにアクセスできなかった理由は、user2がフォルダー階層の上位レベルにある一部のフォルダーにアクセスできないからだと思います。

これを解決する1つの方法として、x(ディレクトリの変更)パーミッションをすべてのユーザーに対するそのフォルダの上のすべてのディレクトリに追加することができます。

ユーザーtools(またはrootを使用してSudoとして)すべてのディレクトリ(たとえば)にxパーミッションを付与できます。

chmod +x /home/tools
chmod +x /home/tools/domains
chmod +x /home/tools/domains/domain.tools.com
chmod +x /home/tools/domains/domain.tools.com/public_html
chmod +x /home/tools/domains/domain.tools.com/public_html/storage
chmod +x /home/tools/domains/domain.tools.com/public_html/storage/users
3
Yaron