特定のフォルダ内のホイールグループにRM権限を付与します。

特定のフォルダ内のホイールグループにRM権限を付与します。

特定のフォルダ(この場合、私のフォルダは「CT」)でホイールグループにrmを与えたいと思います。

Visudoに次の行を追加してみました。

%wheel All=(ALL) /bin/rm /CT/

CTフォルダにテストファイル"test1"があり、Wheelユーザーを使用してRMを試みると、実行する権限がないというメッセージが表示されます。/bin/rm test1

答え1

ディレクトリ自体からのみファイルを削除したい/CTのでsudo

最初は、グループの所有権と権限をrootに設定する必要があります。

chgrp wheel /CT
chmod g+rwx /CT

これで、グループのユーザーには、wheel以下を使用せずにこのディレクトリ内のすべてのファイルを作成(作成)および削除する権限がありますsudo

rm -f /CT/unwanted.txt

答え2

コマンドを使用すると、ホイールグループのユーザーがを実行できますrm /CT/。それはすべてです。それ以下ではありません。

/CT/ここで指定したのと同じフラグを使用している場合は、ユーザーがコンテンツを削除できるようにこの方法を試すことができます。

%wheel ALL=(ALL) /bin/rm -rf /CT/*

私が一般的に好むコントロールは、パラメータをsudo検証し、そのスクリプトを通過させるスクリプトを作成することですsudo。宛先がフォルダ内のファイルであることを確認するのと同じであれば十分です。/CT

#!/bin/bash
#
ss=0
for item in "$@"
do
    real=$(readlink "$item")
    if [[ "$real" =~ ^/CT/. ]] && [[ -f "$real" ]]
    then
        rm -f -- "$item"
    else
        [[ -t 2 ]] && echo "Refusing to remove '$item'" >&2
        ss=1
    fi
done
exit $ss

ターゲットがディレクトリである必要があり、特定の所有権が必要であるという条件を追加できます。

関連情報