web-dev-qa-db-ja.com

グループのメンバーであるディレクトリにアクセスできません

私のWebサーバーには、Apacheがアクセスできるように、許可drwxrwxr--およびuser:group root:www-dataを持つディレクトリ「www」があります。

これで、www-dataグループにアカウントを追加しました。

Sudo usermod -g www-data myuser

groupsを実行するとwww-dataも含まれますが、単純にcdしようとすると「Permission denied」と表示されます。

ユーザーを「myuser」に変更するか、グループを自分がメンバーになっている他のグループに設定すると、参加できます。

何か不足していますか?

9
dazz

プロセスのグループリストはログイン時に設定されるため、変更を有効にするには再度ログインする必要があります。

また、プライマリグループではなくwww-dataを追加グループとして追加することをお勧めします(これは、メンバーであるグループのみに設定されます。次のコマンドでこれを行うことができます。

# Reset to your original primary group
Sudo usermod -g myuser myuser
# Add an extra supplementary group
Sudo usermod --append -G www-data group

作成したファイルをwww-dataグループの他のメンバーが読めるようにするには、それに応じてumaskを調整します。

umask 002

プライマリグループのメンバーシップは個人グループであるため、作成するファイルのセキュリティには影響しません。

ファイルを作成するディレクトリにsetgidビットを設定する価値もあります。これにより、ファイルは親ディレクトリのグループ所有権を継承します。

chmod g+s www/
13

私にとっては、このエラーを引き起こす別のものでした

2つの異なるUIDを持つ同じユーザー名

UID = 123でローカルに設定されたユーザー "Apache"と、同じ名前( "Apache")で異なるUID = 456を持つNISディレクトリに設定されています。開始順序とサービスの依存関係によっては、NISユーザーが使用可能になる前にローカルユーザーが使用される場合があります。また、ユーザー名を表示すると混乱を招き、両方とも「Apache」と表示されます。数値のUIDを見るときのみ(たとえば、ls -lnを実行すると違いがわかります。例:[root@mymachine]# ls -l drwxr-x--- 4 Apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 Apache ppp2 88 May 31 17:12 file2 UIDはfile2(123ではなく456)で異なります:[root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

apache configで定義された異なるグループ

ユーザーの不一致とその結果発生する許可エラーで発生した別の問題は、「httpd」グループを使用してファイルへのアクセスを制限していたときです。これはユーザー「Apache」(idまたはgetentを使用して表示された)のプライマリグループでした。Apacheはrootとして起動し、設定されたユーザーに切り替えて権限を削除します。切り替え先のユーザーは、/etc/httpd/conf/httpd.conf by Userパラメーターで定義されます。問題はここにあります-プロセスがそのまま実行されるグループ(GID)は、そのユーザーのプライマリグループではなくです。グループは、Groupパラメーターによって同じ構成ファイルで定義されます。

したがって、私の場合は(/ etc/httpd/conf/httpd.conf):User Apache Group Apache

そして、ディレクトリには次のようなアクセスが許可されました:drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

Httpd(GID = 444)がそのユーザーのプライマリグループだったため:[root@somemachine]# id Apache uid=48(Apache) gid=444(httpd) groups=444(httpd)

構成ファイルのGroupが "httpd"ではなく "Apache"であることに気付くまで、デバッグに時間がかかりました。

/ var/log/httpd/error_log[Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txtからのエラー

これがお役に立てば幸いです。

0
Pik Master