こんにちは、Linuxユーザーの皆さん。私はDebian 11を使用しています。複数のサイトを持つnginx Webサーバーを実行しています。各サイトのルートディレクトリは、特定のユーザーが所有しています。私の目標は、あるユーザーのネットワークファイルを他のユーザーに完全に見えないようにすることです。。user1
所有し/var/www/site1
てuser2
所有してください/var/www/site2
。user1
フォルダが存在することがわかりますが、その人がディレクトリにsite2
アクセスしたり、その中にあるファイルにアクセスしたくありません。ls
ディレクトリが他のユーザーに完全に不透明になることを望みます。
まず、そのディレクトリの権限をに変更しましたが750
、Webサーバーのユーザーはwww-data
そのフォルダの内容にアクセスできませんでした。その後、読み取りアクセスを許可するようにACLを設定しましたwww-data
。
私の(クレイジー)効果的なステップ:
chown -R user1: .
find . -type f -exec chmod 640 {} +
find . -type d -exec chmod 2750 {} +
setfacl -Rdm u::rwx,g::rx,o::0,u:www-data:rx . # this didn't set up ACLs for individual files, hence the next line
find . -type f -exec setfacl -m u::rw,g::r,o::0,u:www-data:r {} +
質問:他のユーザーを制限しながら、Webサーバーがフォルダのコンテンツにアクセスできるようにする簡単な方法はありますか?それとも私が取ったよりも簡単なステップはありますか?
(注:ユーザーをグループwww-data
に追加しようとしましたuser1
が、その逆も同様です。グループに読み取り権限があり、nginxが実行されていても、user www-data www-data;
nginxはまだフォルダの内容にアクセスできません...)