특정 손님이 특정 명령을 실행하도록 허용


19

나는 명령을 사용하여 서버에 업데이트 할 수 내 데비안 / 우분투 호스트의 일부에 새 사용자 생성하고자하는 apt-get update과를 apt-get dist-upgrade,하지만 난 다른 작업을 수행 할 수 있도록 그들에게 완전한 sudo를 액세스 권한을 부여 wan't하지 않습니다. 이게 가능해? 어쩌면 편집 할 수 없지만 실행할 수있는 스크립트를 만드는 방법이있을 수 있습니다. 루트 사용자로 실행됩니까?


2
참조 man sudoerssudo cat /etc/sudoers.
goldilocks

고맙습니다 @ goldilocks 나는 항상 sudoers 파일이 사람들에게 루트 액세스 권한을 부여하는 것이라고 생각했습니다.
Programster

답변:


30

Sudo그리고 /etc/sudoers파일은 사용자에게 전체 루트 액세스 권한을 부여하기위한 것이 아닙니다.

다음 명령을 사용하여 기존 sudo 사용자로 sudoers 파일을 편집 할 수 있습니다 sudo visudo

다음과 같이 액세스 권한을 부여하려는 명령을 그룹화 할 수 있습니다.

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

그런 다음 해당 명령에 특정 사용자 권한을 부여 할 수 있습니다.

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

아래 이미지에서 볼 수 있습니다 여기에 이미지 설명을 입력하십시오.

이제 시도 sudo apt-get update하거나 암호를 묻지 않고sudo apt-get dist-upgrade 해당 명령이 실행됩니다 . 암호를 묻는 메시지가 표시되도록 하려면 사용자에게 명령 그룹에 대한 액세스 권한을 부여하는 비트를 제거하십시오 .NOPASSWD

sudo사용자 로 다른 것을 실행하려고 하면 비밀번호를 묻는 메시지가 표시되고 실패합니다.

참고 문헌


6
참고로 사용자에게 권한을 부여가 실행하는 것이 apt-get, 또는 단지 apt-get upgrade, 그들에게 전체 루트 액세스를 제공합니다 ! 많은 업그레이드 스크립트를 사용하면 대화식 사용자가 구성 파일이 변경된 경우와 같이 쉘을 실행할 수 있습니다. 안전 apt-get을 위해 특정 명령으로 제한 하고 비 대화식으로 만듭니다. 참조 내 SSH 사용자의 안전은 위해 암호없이 sudo를 부여 할 apt-get updateapt-get upgrade?
Gilles 'SO- 악 그만

제 경우에는 줄을 %sudo ...
Aleksey

명령 줄에서 바로 할 수 있습니까?
Kamil Dziedzic
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.