web-dev-qa-db-ja.com

WWWデータの正しい権限

私は完璧なウェブベースの許可に戻り続けています、私はそれをいくつかの方法で行いました。この投稿は少し長いほど複雑ではないので、いくつかのサンプルを提供したいと思います。

私は広範囲にわたって検索しましたが、事実上の標準があるかどうか疑問に思っています。お時間をいただきありがとうございます。

Q:以下の基本的な許可目標に従って、最善のアプローチを教えてもらえますか?

  • 許可の目標:
    • 0777モードを防止する
    • デフォルトのグループwww-dataはスティッキーです
    • myselfとしてのデフォルトユーザーはstick(可能であれば、setfaclにデフォルトは存在しないと思います)
  • クリフノート
    • 使用:Ubuntu 16.04および16.10(現時点でのデスクトップバージョン)

$ chmod g + rws

私はこれを以前に設定しましたが、なぜこれがファイルをオレンジ色で強調表示します。それは私に関係します。目標は、現在のファイルと新しいファイルをwww-dataとして保持することでした。

Sudo chgrp -R www-data /var/www
Sudo chmod -R g+rws /var/www  # <-- s or S?

上記はほとんどの部分で機能しますが私はそれを使用するのは悪いことを読んだ、なぜですか?そこで、setfaclを試しました。

$ 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

.bashrcsetfaclファイル/ディレクトリを個別に

ですから、私が持っていたクレイジーなアイデアは、.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ではないファイルがそれになるのを防ぐことでした。


私がこれについて間違った方向に進んでいるなら、どんなアドバイスもいただければ幸いです。気持ちのいい「スティッキースタンダード」が見つからないようです。

3
JREAM

この投稿がまだここにあることに気づかなかったので、自分の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が設定されていることを意味します。

お役に立てれば。

0
JREAM