web-dev-qa-db-ja.com

特定のグループのユーザーがsudoなしでコマンドを実行できるようにする

/ etc/sudoersを編集して、パスワードを入力しなくてもSudoとしてコマンドを実行できるようにする方法を知っていますが、グループのすべてのユーザーがSudoなしでプログラムを完全に実行できるようにする方法はあります。 (実行したいプログラムは「mount」と「umount」です)。

11
w4etwetewtwet

パスワードなしでmountおよびumountを実行できるユーザーのグループを追加したいとします。最初に「anyname」というグループを追加します

Sudo groupadd anyname

次に、/etc/groupを編集してユーザーを追加する必要があります

anyname:x:407:

存在するため、追加するユーザーをカンマで区切って追加します。

anyname:x:407:user1,user2,...

次に、「anyname」グループのメンバーが実際にmountおよびumountコマンドを呼び出すことができるようにSudoを構成する必要があります。

/ etc/sudoersに次の行を追加するだけです

%anyname ALL=NOPASSWD: /sbin/mount, /sbin/umount

これでSudo mountはパスワードを要求しなくなりますが、いつもSudoを入力するのは面倒なので、次のように入力することで回避できます。

「/ usr/bin/mount」と呼ばれる次のスクリプト(およびumountの同様のスクリプト)を作成できます。

#! /bin/sh
Sudo /sbin/mount $*

これをもう少し安全にするために、これらのスクリプトの所有権を「anyname」グループに変更することができます。

chgrp anyname /usr/bin/mount /usr/bin/umount

そして、「anyname」グループに対してのみ実行可能にします

chmod g+x /usr/bin/mount  /usr/bin/umount

[〜#〜] edit [〜#〜]:お使いのOSに応じて、mountコマンドとumountコマンドの場所を確認してください。/sbinではなく/ bin /にある可能性があるため、必要な変更を行う必要がある場合があります

[〜#〜]重要[〜#〜]:ところで、すべてのbinフォルダーが相互にシンボリックリンクされているArchベースのシステムではスクリプトを実行しません。

13
Stormvirux