사용자에게 종료 권한을 부여하는 방법


9

우분투 11.04를 사용하고 있습니다. 실행중인 프로세스를 확인하고 해당 프로세스가 끝나면 시스템을 종료하는 스크립트를 실행하고 싶습니다. 이렇게하려면 암호를 요구하지 않고 스크립트를 실행할 수 있도록 사용자에게 시스템 종료 액세스 권한이 필요합니다.

이 페이지를 참조하여 sudoers 파일에 텍스트를 추가했습니다. 그러나 실행할 때마다 여전히 암호를 묻습니다 sudo shutdown -h now. 또한 sudo없이 shutdown을 실행할 때 루트 권한이 필요하다는 오류가 발생합니다.

내 sudoers 파일은 다음과 같습니다.

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
myusername    ALL = NOPASSWD: SHUTDOWN

암호를 수동으로 입력하지 않고 사용자에게 shutdown 명령을 실행할 권한을 부여하려면 어떻게해야합니까?

감사.


1
실제 sudoers파일 과 전체 파일 을 게시 할 수 있습니까?
enzotib 2016 년

답변:


6

사용자 이름 / 암호를 입력하지 않아도되는 HAL 또는 ConsoleKit을 사용하여 종료하거나 다시 시작할 수 있습니다.

HAL (이전 Ubuntu 버전) :

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

ConsoleKit (Ubuntu 11.04에서 테스트 된 최신 Ubuntu 버전) :

dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

7

나는 대답 에서처럼 그것을 완벽하게 수행했습니다. 어쩌면 당신의 접근 방식이 visudo부분을 그리워 합니까?

명령 행을 열고 다음을 입력하십시오.

sudo visudo 

열린 파일에서 끝에 다음 줄을 추가하십시오.

yourusername ALL=NOPASSWD: /sbin/halt

그런 다음 편집기를 종료하고 보호하십시오 (CTRL + x).

이제 명령 줄에서 컴퓨터를 종료 할 수 있습니다 (예 : 무언가를 다운로드 한 후).

wget UrlOfTheFileYouWantToDownload ; sudo halt

1

얼마 전에 suid (Set User ID)를 설정하여이 작업을 수행했습니다. 이렇게하면 프로그램을 실행하는 사용자가 아니라 파일의 소유자로 프로그램이 실행됩니다. shutdown은 root 소유이므로 sudo없이 종료 할 수 있습니다.

chmod u+s /sbin/shutdown

누구나 종료를 실행할 수 있기 때문에 보안에 영향을 미칩니다. http://en.wikipedia.org/wiki/Setuid


일반적으로의 구성 파일 이외의 패키지에서 설치 한 파일 또는 파일의 메타 데이터는 수정하지 않는 것이 좋습니다 /etc.
enzotib 2016 년

흠 ... 사실! 그러나 공식적인 방법은 무엇입니까? 폴킷으로 놀아? 그리 좋은 중 하나 ...
터보

sudo내 의견으로는 올바른 방법이지만 불행히도 사용자는 sudoers파일 을 볼 수있는 기회를주지 않으며 파일에 문제가 있습니다.
enzotib 2016 년

이것이 나를 위해 일한 유일한 것입니다.
Mark Stewart

0

스크립트 자체를 루트로 실행하려는 것처럼 들립니다. 무언가가 끝나기를 기다린 다음 컴퓨터 전원을 끄는 스크립트를 실행하려면 sudo를 사용하여 스크립트를 실행하면됩니다. 스크립트를 실행할 때 암호를 묻는 메시지가 표시되지만 스크립트 자체는 추가 개입없이 시스템을 자유롭게 종료 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.