ソフトリンクを生成してsudo制限コマンドを実行する

ソフトリンクを生成してsudo制限コマンドを実行する

テストマシンの1つにアクセスできsudo、私を制限するコマンドは次のとおりです。

user_sree@sel8585:~> sudo -l
user_sree's password:
User user_sree may run the following commands on this host:
    (ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,
    !/usr/sbin/visudo

これは私が走ることができないvisudoことを意味します/usr/sbin/visudo。私はこれを確認しました:

user_sree@sel8585:~> sudo /usr/sbin/visudo
Sorry, user user_sree is not allowed to execute '/usr/sbin/visudo' as root on sel8585.

これで好奇心にシンボリックリンクを作成しました/usr/sbin/visudo

ln -s /usr/sbin/visudo myvi`

このソフトリンクを呼び出してsudoersファイルにアクセスしようとしましたが、うまくいきました。

user_sree@sel8585:~> sudo /home/user_sree/myvi
myvi: /etc/sudoers.tmp unchanged

同様に、ソフトリンクを生成して他の制限されたコマンドを実行できます。

他の人のために設定したい場合は、sudo他の人が設定できないようにするにはどうすればよいですか?私は彼らがソフトリンクを生成することを制限したくありません。

user_sree@sel8585:~> sudo -l | grep bash
    (ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,

同様に:

user_sree@sel8585:~> sudo sh -c 'ls'
Sorry, user user_sree is not allowed to execute '/usr/bin/sh -c ls' as root on sel8585.

これでシンボリックリンクはmybash次のようにリンクされます/bin/bash。 (私のシステムでは、/usr/bin/sh次のように接続されています/bin/bash。)

user_sree@sel8585:~> sudo /home/user_sree/mybash -c 'ls'

空のmybash myvi sudoers.back test.pp

user_sree@sel8585:~> ll my*
lrwxrwxrwx 1 user_sree users  9 Jul 16 14:10 mybash -> /bin/bash
lrwxrwxrwx 1 user_sree users 16 Jul 16 14:13 myvi -> /usr/sbin/visudo

添付:

Cmnd_Alias   NSHELLS = /bin/sh,/bin/bash,/bin/ksh
Cmnd_Alias   NSU = /bin/su
Cmnd_Alias   NCMDS = /usr/bin/passwd,/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod,/usr/sbin/visudo

user_sree ALL=(ALL) ALL, !NSHELLS, !NSU, !NCMDS

/etc/sudoers上記はファイルのエントリです。

ベストアンサー1

正直なところ、ユーザーがいくつかのコマンドを除いてすべてを実行することを許可した場合、問題が発生します。

user*たとえば、コマンドへのアクセスを無効にしても、ユーザーはvipwテキストエディタを使用してパスワードとシャドウファイルを実行または編集できます。たとえば、アクセスをロックすると、vi他のテキストエディタをインストールして使用するのを防ぐのはなぜですか?または、cat組み込みシェルを使用してecho新しいユーザーを追加できますか?

sudo「このコマンドを除くすべて」にアクセスできません。代わりにALL、エントリを削除して許可されるエントリを定義してから、許可されたコマンドにのみアクセス権を付与してください。

おすすめ記事