ユーザーを作成し、/etc/shadow ファイルへの読み取り権限を付与するにはどうすればよいでしょうか?

ユーザーを作成し、/etc/shadow ファイルへの読み取り権限を付与するにはどうすればよいでしょうか?

Web サーバーのユーザー (nginx) に /etc/shadow ファイルへの読み取りアクセス権を与えたいのですが、これを行うための手順を確認したいと思います。使用しているシステムは CentOS 7 です。

  1. まず、shadow というグループを作成しました。groupadd shadow
  2. 次に、Web サーバー ユーザー (nginx) をグループ shadow に追加しました。usermod -aG shadow nginx
  3. 次に、所有者を root に変更し、ファイル グループの所有者をグループ shadow に変更しました。chown root:shadow /etc/shadow
  4. 次に、shadow グループ内のすべてのユーザーに /etc/shadow ファイルの読み取り権限を許可しました。chmod g+r /etc/shadow

これらの手順を実行した後ls -l /etc/shadow、次の出力が表示されます。

----r-----. 1 ルート シャドウ 1390 8月 30日 12:51 /etc/shadow

私が実行しているこれらの手順は正しいでしょうか? お知らせください。必要に応じて追加情報を提供できます。

答え1

このような重要なファイルの所有者グループを変更すると、いくつかの機能が壊れる可能性があり、危険な

これを実現するための適切な安全な方法は、POSIX ACL を使用することです。

setfacl -m u:special_user:r /etc/shadow

ここでのもう一つの問題は、あなたがこの権利を与えたことですエンギンクス/etc/shadow、Web サーバーです。これは、何らかの Web アプリケーションを実行するものと思われます。Webアプリケーションから直接アクセスするのは非常に悪い考えです。

これは逆効果のように思えるかもしれないが、これはすべての本格的なシステムが行う方法である。プライベートセキュアプロキシサービスこれはすべてのセキュリティ チェックを実行し、Web フロントエンドのみがこのプロキシ サービスと通信して機密データにアクセスしたり、その他の機密事項を実行したりできます。たとえば、Proxmox VE は次のように構築されています。危険なことを実行する pvedaemon があり、pveproxy (Web サーバー) は、そのようなことを行う必要がある場合にのみ pvedaemon と通信します。

3 番目の問題は、このファイルにアクセスすることです。何をするつもりでしょうか? このファイルは PAM スイートの一部です。システム認証の一部が変更されてシャドウ ファイルを使用しないようにしたり、移動したりした場合はどうなるでしょうか? これらすべての作業を実行する PAM ライブラリ コールを使用する必要があります。

答え2

これは次の出力のようです

chmod g=r /etc/shadow

そしてそうではない

chmod g+r /etc/shadow

つまり、加算記号の代わりに誤って等号を使用したようです。

編集: システムで再度確認したところ、/etc/shadowファイルの権限は次のようになっています。

`----------. 1 root root 1183 20 Aug 11.53 /etc/shadow`

したがって、権限は期待どおりであるように見えます。

関連情報