一般ユーザーが一般ユーザーと一般グループにのみsudoコマンドを実行するように制限する方法

一般ユーザーが一般ユーザーと一般グループにのみsudoコマンドを実行するように制限する方法

foobarグループの一般ユーザーとして、そのユーザーが実行しているユーザーのパスワードを知っている場合は、管理者以外のユーザー(たとえば)のようにコマンドを実行できるusersようにしたいです。たとえば、次のことが可能でなければなりません。sudoraboof:usersfoobar

$ sudo -u raboof echo Hello World!
[sudo] Password for raboof:
$ sudo -g users echo Hello World!
$ sudo -u raboof -g users Hello World!

ただし、拒否は上記の2番目と3番目の変形の文脈でsudo機能します。echo Hello World!

私が設定したsudo標準プラグインsudoersは次のとおりです。

User_Alias USER_ADMIN = #0, %#0, %wheel
Runas_Alias RUNAS_ADMIN = #0, %#0, %wheel

User_Alias USER_USER = ALL, !USER_ADMIN
Runas_Alias RUNAS_USER = ALL, !RUNAS_ADMIN

Defaults:USER_USER targetpw

USER_ADMIN ALL = (ALL:ALL) ALL

USER_USER ALL = (RUNAS_USER:RUNAS_USER) ALL

私が望む方法で動作するには、sudoプラグインをどのように設定する必要がありますか?sudoers

ベストアンサー1

Runas_Alias上記で定義された式を使用して、多くの問題の最後に管理者以外のユーザー(例:sudoraboof:users

User_Alias USER_USER = ALL, !#0, !%#0, !%wheel
Runas_Alias RUNAS_USER_USER = ALL, !#0, !%#0, !%wheel
Runas_Alias RUNAS_USER_GROUP = ALL, !#0, !wheel

Defaults:USER_USER targetpw

USER_USER ALL = (RUNAS_USER_USER:RUNAS_USER_GROUP) ALL

foobar $ sudo -u raboof id
uid=1000(raboof) gid=100(users) groups=100(users)
foobar $ sudo -g users id
uid=1000(foobar) gid=100(users) groups=100(users)
foobar $ sudo -u raboof -g users id
uid=1000(raboof) gid=100(users) groups=100(users)

不明な理由により、Runas_Alias次のように以前に定義された定義をネストして否定することは機能しません。

Runas_Alias RUNAS_ADMIN_USER = #0, %#0, %wheel
Runas_Alias RUNAS_ADMIN_GROUP = #0, wheel
Runas_Alias RUNAS_USER_USER = ALL, !RUNAS_ADMIN_USER
Runas_Alias RUNAS_USER_GROUP = ALL, !RUNAS_ADMIN_GROUP

おすすめ記事