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를 사용하고 루트 종료로 다시 종료하려고 시도했지만 작동하지 않았습니다.

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

기타 정보

운영 체제는 Linux Mint이고 Bob은 해당 시스템의 유일한 사용자입니다.

답변1

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

sudo visudo

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

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

아카이브를 저장합니다. 그런 다음 subob 역할을 수행하고 명령을 테스트 할 수 있습니다.

sudo /sbin/shutdown -h "now"

관련 정보