Cron 작업 콘솔 연결 및 루트 권한

Cron 작업 콘솔 연결 및 루트 권한

저는 아래에 표시된 관련 부분을 사용하여 Bob 사용자를 위한 스크립트를 작업 중입니다. 내가 겪고 있는 문제는 이 cronjob을 사용자 Bob에게 넣으면 zenity는 작동하지만 종료는 작동하지 않는다는 것입니다. 그리고 루트 종료 상태에 놓으면 작동하지만 콘솔에는 zenity가 표시되지 않습니다.

#!/bin/bash
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u Bob gnome-session)/environ)";
someValue=`DISPLAY=:0.0 zenity --text="tell me your value" --entry`
...
...
/sbin/shutdown -h "now"

또한 루트에서 실행하고 zenity를 위해 Bob에게 su를 사용하고 종료하기 위해 루트로 다시 종료하려고 시도했지만 작동하지 않았습니다.

이를 수행할 수 있는 방법이 있습니까?

기타 정보

OS는 Linux Mint이고 Bob은 이 시스템의 유일한 사용자입니다.

답변1

권한이 없는 사용자는 명령줄에서 시스템을 종료할 수 없습니다. Bob으로 종료를 보내야 하는 경우 를 사용하여 그를 sudoers에 추가할 수 있습니다 visudo.

sudo visudo

is에 다음 줄을 추가합니다.

bob ALL = (root) NOPASSWD: /sbin/shutdown -h "now"

파일을 저장. 그런 다음 subob으로 명령을 테스트 할 수 있습니다 .

sudo /sbin/shutdown -h "now"

관련 정보