私は完璧なウェブベースの許可に戻り続けています、私はそれをいくつかの方法で行いました。この投稿は少し長いほど複雑ではないので、いくつかのサンプルを提供したいと思います。
私は広範囲にわたって検索しましたが、事実上の標準があるかどうか疑問に思っています。お時間をいただきありがとうございます。
Q:以下の基本的な許可目標に従って、最善のアプローチを教えてもらえますか?
0777
モードを防止するwww-data
はスティッキーですmyself
としてのデフォルトユーザーはstick(可能であれば、setfaclにデフォルトは存在しないと思います)Ubuntu 16.04
および16.10
(現時点でのデスクトップバージョン)私はこれを以前に設定しましたが、なぜこれがファイルをオレンジ色で強調表示します。それは私に関係します。目標は、現在のファイルと新しいファイルをwww-data
として保持することでした。
Sudo chgrp -R www-data /var/www
Sudo chmod -R g+rws /var/www # <-- s or S?
上記はほとんどの部分で機能しますが私はそれを使用するのは悪いことを読んだ、なぜですか?そこで、setfacl
を試しました。
ここで私はsetfacl
、問題はそれがユーザーのために現在のすべてのファイルを+x
にすることです、私はそれを望んでいません。
# For Current Files | User/Group
Sudo setfacl -Rm u:myself:rwx /var/www
Sudo setfacl -Rm g:ww-data:rwx /var/www
# For Future Files | User/Group
Sudo setfacl -Rmd u:myself:rwx /var/www
Sudo setfacl -Rm g:www-data:rwx /var/www
ですから、私が持っていたクレイジーなアイデアは、.bashrc
関数を作成することでした。まだ完全には正しくありませんが、あなたはそのアイデアを理解しています。
function facl_file() {
echo "(+) Set ACL for $USER:www-data rw [Files Only, Persist]"
# Files cannot have defaults -d permissions
while IFS= read -r -d $'\0' file; do
echo " Setting $file"
# Default Mode: RW
mode="rw"
# If Executable, Add RWX
if [[ -x "$file" ]]; then
mode="rwx"
fi
Sudo setfacl -m u:$USER:$mode $file
Sudo setfacl -m g:www-data:$mode $file
done < <(find $CREATE -type f -print0)
echo "(+) Done with Files"
}
function facl_dir() {
echo "(+) Set ACL for $USER:www-data rwx [Directories Only, Persist]"
while IFS= read -r -d $'\0' dir; do
echo " Setting $dir"
Sudo setfacl -m u:$USER:rwx $dir
Sudo setfacl -dm u:$USER:rwx $dir
Sudo setfacl -m g:www-data:rwx $dir
Sudo setfacl -dm g:www-data:rwx $dir
done < <(find $CREATE -type d -print0)
echo "(+) Done with Directories"
}
上記の目的は、Directories
が+x
を失うのを防ぎ、+x
ではないファイルがそれになるのを防ぐことでした。
私がこれについて間違った方向に進んでいるなら、どんなアドバイスもいただければ幸いです。気持ちのいい「スティッキースタンダード」が見つからないようです。
この投稿がまだここにあることに気づかなかったので、自分のQに答えます。X
の代わりにx
を使用してみてください。私は最初にテストフォルダでそれを行います:
cd ~; mkdir test; touch test/{default,run.sh};chmod +x test/run.sh
# Ensure this fellow is in here!
Sudo usermod -aG www-data $USER
Sudo setfacl -R -m g:www-data:rwX ~/test
Sudo setfacl -Rd -m g:www-data:rwX ~/test
Sudo getfacl ~/test
これにより、フォルダxとrun.sh xが保持されるように設定されます。表示される唯一の変更は、次のように最後の+です。-rwxrwxr-x+
-それは単にaddtl`faclが設定されていることを意味します。
お役に立てれば。