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
新しいディレクトリを作成できます770
か750
?新しいファイルを作成すると、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
これが質問に対する答えであることを願っています。