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 더 많은 매개변수로 실행 |