rootユーザーが特定のコマンドを実行できないように制限する方法

rootユーザーが特定のコマンドを実行できないように制限する方法

mv /*ディレクトリから実行するとLinuxシステムが破損しています。

など/* *の特定のコマンドの引数にほとんどの使用を制限したいと思います。rmmv

私のものを使いたいです~/.bashrc。 bashシェルが制限されていることはわかっていますが、rbashルートの現在のデフォルトシェルを変更したので満足できません。

パラメータをキャプチャするには、コマンドでいくつかの手順を実行し、ユーザーに警告する条件文を$0作成$1します。if私のファイルにスクリプトを入れると、実装は機能しますか~/.bashrc?それとも他のより良い方法を見逃しているのでしょうか?

私が書く方向を教えてくれる人が必要です。

あなたの助けに事前に感謝の言葉を伝えたいと思います。

答え1

Unixではrootすべてが可能です。 Unixがユーザーに足を撃つのに十分なロープを提供したように、システム全体をrootホースで結ぶことも可能でした。

これただ解決策は非常に注意することです。特に破壊的な可能性がある場合は、すべてのコマンドを2回読んで確認することに慣れてください。システムの一部を台無しにするたびに慎重に考え、Dockerなどのテスト環境を設定して何かを試してください。インストールメディアを準備し、それを使用して回復する方法を知ってください。バックアップを維持してください。重要なコンテンツをバージョン管理システムに保存すると、以前のバージョンにロールバックしたり、緊急時にリモートコピーを入手したりできます。

答え2

@Nasir Rileyとこの問題に貢献した他のすべての方々のアドバイスに心から感謝します。私はたくさん学んだ。

*または/*使用を制限する投稿を偶然発見しました。 set -f noglobber

また、システムにSafermが設定されており、ほとんどの場合sudoを使用しています。

しかし、これはset -f nogloberzshでは動作しません

答え3

使用Sudo変える、ここで必要な権限を設定できます。Sudoers文書。

sudo コマンドを使用するたびにパスワードを入力したくない場合は、(あなたの意見では、「私は広範なアクセスが必要な場合にのみrootとしてログインし、sudoは常に短い時間内にパスワードを要求します」と言ったので、これを行わないことを知っています。)次に sudo 行に NOPASSWD を追加します。つまり、

## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL

関連情報