コマンドをブロックする方法mkdir
、特定のユーザー向けに言ってみましょうか?
読み取り専用関数を作成し、ユーザープロファイルに保存したところ ~/.bashrc
/bin/mkdir() {
echo "mkdir command not allow for you"
}
mkdir() {
echo "mkdir command not allow for you"
}
./mkdir() {
echo "mkdir command not allow for you"
}
readonly -f /bin/mkdir
readonly -f mkdir
readonly -f ./mkdir
テスト:
rahul@ubuntu:~$ cd /bin/
rahul@ubuntu:/bin$ ./mkdir /home/rahul/ggg
mkdir command not allow for you
rahul@ubuntu:/bin$ cd
rahul@ubuntu:~$ mkdir testing
mkdir command not allow for you
rahul@ubuntu:~$ /bin/mkdir testing
mkdir command not allow for you
だから私の質問はこれを達成する方法は何ですか?これのためのツールはありますか?
アップデート1#しかし、ユーザーが賢い場合、mkdirバイナリをコピーして名前を変更し、使用できます。それでこれを達成する方法は?
cp /bin/mkdir mkdir2
使用できます:(
cp -r /usr/local/lib ggg
という名前のディレクトリを作成しますggg
(のコンテンツのコピーが含まれている/usr/local/lib
場合、ユーザーはそのコピーを削除できます)。を使用find / -type d -empty
して、コピーする空のディレクトリを見つけることができます。
mkdir
でコンパイルして名前を変更したり、既存のバイナリを単にコピーして名前を変更したりできるため、この例は失敗します。また、エイリアスと関数をオーバーライドするためのシェルビルトインがあります。