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バイナリをコピーして名前を変更して使用できます。それでは、これを達成する方法は何ですか?
ベストアンサー1
bashでこれを行う方法はわかりませんが、ユーザーエクスペリエンスを制限する別のシェルは知っています。lshell (制限されたシェル)。
構成クイック概要
LshellはINIファイルを介して設定されます。デフォルトでは、許可されているコマンドのホワイトリストを保持しますが、ユーザーが特定のコマンドを使用しないように簡単に設定できます。
この構成(デフォルトのconf /etc/lshell.conf
)は、ユーザーが以下をfoo
使用することを禁止しますmkdir
。
[foo]
allowed = 'all' - ['mkdir', 'bash', 'sh', 'csh', 'dash', 'env']
デフォルトでは、lshellを使用するようにユーザーアカウントを設定するには、次の手順を実行する必要があります。
chsh -s /usr/bin/lshell foo
Lshellは、次のようなはるかに多くの作業を実行できます。
- 3つの詳細レベル:ユーザー、グループ、全体。
- システムの特定のパスへのアクセスが制限される可能性があります。
- 特定の文字(たとえば
|
)の使用を制限できます。 - SSHを介してのみ特定のコマンドの使用を制限できます。
そしてもっと。
アップデート1#テスト結果を追加:
rahul:~$ which bash
/bin/bash
rahul:~$ dd if=$(which bash) of=my_bash
*** forbidden syntax: dd if=$(which bash) of=my_bash
rahul:~$ bash
*** forbidden command: bash
rahul:~$ cp /bin/bash my_bash
*** forbidden path: /bin/bash
rahul:~$ /bin/bash
*** forbidden command: /bin/bash
rahul:~$ sh
*** forbidden command: sh
rahul:~$ dash
*** forbidden command: dash
rahul:~$ env bash
*** forbidden command: env
rahul:~$ cp /bin/mkdir mycreatedir
*** forbidden path: /bin/mkdir