root/sudo パスワードを入力せずにソフトウェアをインストールする権限をグループに付与したいと思います。私はLinux Mint 20.3 Cinnamonを使用しています。
「basicsudo」というグループを作りました。
私は最初に打者を打つ
$ which apt-get
/usr/bin/apt-get
それから
sudo visudo
その後、次の行を追加しました。
%basicsudo ALL=(ALL) NOPASSWD: /usr/bin/apt-get install
到着/etc/sudoers.tmp
[...]
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
%basicsudo ALL=(ALL) NOPASSWD: /usr/bin/apt-get install
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
Groups and Users
メニューのGUIを使用してユーザーにグループを割り当てます。これを確認するために実行しました。
$ groupname Alice
Alice, basicsudo
私のアカウントから。
Aliceとしてログインすると確認されます。
$ groups
Alice, basicsudo
しかし、Aliceとして次の行を実行しようとすると成功しません。
$ sudo apt-get install python3-pip
[sudo] password for Alice:
Sorry, user Alice is not allowed to execute '/usr/bin/apt-get install python3-pip' as root on computername.
明らかに、a)パスワードを入力するように求められ、b)パスワードを入力しても実行できません。
これを行う正しい方法は何ですか?
ベストアンサー1
変更:
%basicsudo ALL=(ALL) NOPASSWD: /usr/bin/apt-get install
到着
%basicsudo ALL=(ALL) NOPASSWD: /usr/bin/apt-get install *
からman sudoers
:
コマンド名は、シェルスタイルのワイルドカードを含むことができる完全修飾ファイル名です。単純なファイル名を使用すると、ユーザーは希望の引数を使用してコマンドを実行できます。ただし、コマンドラインパラメータ(ワイルドカード文字を含む)を指定することもできます。または、 ""を指定して、コマンドライン引数なしでコマンドを実行できることを示します。
Cmndに接続されたコマンドライン引数がある場合、Cmndの引数は、ユーザーがコマンドラインで指定した引数と正確に一致する必要があります(またはワイルドカードがある場合は一致する必要があります)。
だから:
Sudoers | 重要性 |
---|---|
%basicsudo ALL= /usr/bin/apt-get "" |
apt-get パラメータなしで実行 |
%basicsudo ALL= /usr/bin/apt-get |
apt-get 任意のパラメータで実行 |
%basicsudo ALL= /usr/bin/apt-get install |
apt-get install 追加の引数なしで実行 |
%basicsudo ALL= /usr/bin/apt-get install * |
apt-get install より多くのパラメータで実行 |