一般ユーザーがRHELで制限されたコマンドセットを実行しないように制限する方法は?
ベストアンサー1
ユーザーに強制的に使用させることができます。限られた殻。
オプション1 -方法:制限付きシェル(rssh)を使用するようにユーザーアカウントを構成する
オプション#2 -ここ説明ですRed Hatで制作RHELでこれを行う方法
免責事項:これは単なるハッキングであり、実際の本番用途にはお勧めできません。
一般ユーザーには、/bin/ および /usr/local/bin/ で使用可能な特定のコマンドを実行する権限が付与されているため、これらの権限を削除してユーザーが特定のコマンドセットのみを実行するように制限するには、次の手順が役立ちます。
制限されたシェルを作成します。
# cp /bin/bash /bin/rbash
シェルのターゲットユーザーを制限されたシェルに変更します。
ユーザーを作成するとき:
# useradd -s /bin/rbash localuser
既存のユーザーの場合:
# usermod -s /bin/rbash localuser
詳細についてはKBaseの記事8349をご覧ください。
その後、ユーザーlocaluserはルートが変更され、ホームディレクトリである/home/localuser以外のリンクにアクセスできなくなります。
/home/localuser/ 以下にプログラムのようなディレクトリを作成します。
# mkdir /home/localuser/programs
これで、ユーザーlocaluserは実行が許可されているすべてのコマンドにアクセスできます。これらのコマンドは、/home/localuser/.bash_profile で設定された環境 PATH 変数から取得されます。次のように修正してください。
# cat /home/localuser/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$HOME/programs export PATH
ここで PATH 変数は ~/programs ディレクトリに設定されます。 /usr/local/bin は /home/username/bin にバインドされ、/bin は /home/username/bin にバインドされます。
これで、ユーザーはユーザー名localuserとしてログインした後に単純なコマンドを実行できなくなります。出力は次のとおりです。
[localuser@example ~]$ ls -rbash: ls: command not found [localuser@example ~]$ less file1 -rbash: less: command not found [localuser@example ~]$ clear -rbash: clear: command not found [localuser@example ~]$ date -rbash: date: command not found [localuser@example ~]$ ping redhat.com -rbash: ping: command not found
これで、ユーザーlocaluserが/home/localuser/programsディレクトリから必要なコマンドを実行できるように、ソフトリンクを作成します。
# ln -s /bin/date /home/localuser/programs/ # ln -s /bin/ls /home/localuser/programs/ # ll /home/localuser/programs/ total 8 lrwxrwxrwx 1 root root 9 Oct 17 15:53 date -> /bin/date lrwxrwxrwx 1 root root 7 Oct 17 15:43 ls -> /bin/ls
以下は、dateコマンドとlsコマンドを使用した例です。
localuserユーザーとして再度ログインし、コマンドを実行してみてください。
[localuser@example ~]$ date Mon Oct 17 15:55:45 IST 2011 [localuser@example ~]$ ls file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 programs [localuser@example ~]$ clear -rbash: clear: command not found
ユーザーが.bash_profileを変更できるため、ユーザーが.bash_profileを変更できないように制限する手順を追加することもできます。
次のコマンドを実行して、ユーザーlocaluserの.bash_profileファイルを変更できないようにします。これにより、root / localuserはrootが変更できない権限を削除するまでファイルを変更できません。
# chattr +i /home/localuser/.bash_profile
不変タグを削除するには、
# chattr -i /home/localuser/.bash_profile
ユーザーlocaluserが環境パスを変更できないように.bash_profileファイルを変更できないようにします。