ACLが完全に機能するようにする

ACLが完全に機能するようにする

ACLと権限について多くの質問と回答があることを知っていますが、正直なところ、ACLはあまりにも弱く、一貫した理解ができません!整理されていない情報が混在しているのと同じです。

この質問でこの混乱が終わることを願っています。

質問:

私のUbuntu 14.04 Webサーバーで次のことをしたいと思います。

  • すべてのfiles/future_files権限を有効にします640
  • みんな許可をfolders/future_folders受けて750
  • そしてAdmin:www-data唯一基本所有者

私の解決策:

私はACLを使います:

setfacl -Rdm u:admin:rwX /path/to/parent //capital X apply for folders
setfacl -Rdm g:www-data:rX /path/to/parent
setfacl -Rdm o::- /path/to/parent 

もう今存在するファイルとフォルダは規則に正確に従います。

質問:

これでユーザーとしてログインしたので、admin新しいディレクトリを作成できます770750?新しいファイルを作成すると、640ではなく660が表示されますか?ルールを採用しませんか! ?


getfacl出力は次のとおりです。

# owner: admin
# group: www-data
# flags: ss-
user::rwx
group::r-x
other::---
default:user::rwx
default:user:admin:rwx
default:group::r-x
default:group:www-data:r-x
default:mask::rwx
default:other::---

ルール間に衝突があるようです!新しいルールを適用する前にすべてのACLを削除しましたが。

PS:以下のように1つのコマンドで組み合わせたことを覚えています。以前は働いていましたが…うまくいきません!

etfacl -Rdm u:admin:rwX,g:www-data:rwX,o::- /path/to/parent

正しいショートバージョンをご存知でしたら、お気軽にお知らせください:)

ベストアンサー1

ついに解決策を見つけて、次のようにここで解決策を更新することを完全に忘れました。

1:すべての人の所有者を定義し、所有者グループを継承可能にします。

- sudo chown -R admin:www-data /var/www/html 
- sudo chmod g+s  /var/www/html (inherit owner group)

2:フォルダとファイルにデフォルトのアクセス許可を適用する(それぞれ750および640、デフォルトは保護されています)

- sudo chmod -R 750 /var/www/html
- sudo find /var/www/html -type f -print0 | sudo xargs -0 chmod 640 (apply for files only)

** repeat file permissions for each sub-directory

3: 書き込み可能なファイルとフォルダに対する権限を申請します。

- sudo chmod -R 770 /var/www/html/images
- sudo find /var/www/images -type f -print0 | sudo xargs -0 chmod 660

4: 自動継承規則 (ACL) 適用

- setfacl -Rdm u::rwX,g::rwX,o::- /path/to/parent  (Capital X only apply to directories)

5: ACL 確認:

- getfacl /var/www/html

これが質問に対する答えであることを願っています。

おすすめ記事