종료 vs 지금 종료 - 루트가 아닌 사용자로 시스템 종료

종료 vs 지금 종료 - 루트가 아닌 사용자로 시스템 종료

방금 이상한 점을 발견했습니다.

권한이 없는 사용자로 Archlinux 시스템에 로그인하여 shutdown. 예상대로 돌아왔습니다Must be root.

놀랍게도 shutdown now그것을 실행하면 (분명히!)~ 아니다현재 사용자에게 루트 권한이 있는지 확인하십시오. 단순히 기계를 종료합니다.

나는 이것을 Plasma DE의 tty와 터미널 모두에서 재현해 보았습니다.

tty의 화면 녹화


저는 현재 패키지와 함께 4.2.2 커널로 Archlinux를 실행하고 있습니다.

내 생각엔 이 일과 관련이 없을 것 같아GUI 정책.

tl;dr: 루트가 아닌 사용자로 시스템 종료shutdown now

답변1

실제로 내 답변은 아닙니다. 슬프게도 알 수 없는 이유로 삭제된 답변을 다시 게시하는 것입니다.

원천:http://web.archive.org/web/20151014220049/https://superuser.com/questions/985661/shutdown-vs-shutdown-now-shutting-down-system-as-non-root


Arch Linux에서는 특정 상황에서 루트 권한 없이 PC를 종료/재부팅/최대 절전 모드로 전환할 수 있습니다.

Systemd의 전원 관리에 대한 Arch Linux Wiki 페이지상태:

polkit은 권한이 없는 사용자로서 전원 관리를 위해 필요합니다. 로컬 systemd-logind 사용자 세션에 있고 다른 세션이 활성화되어 있지 않은 경우 다음 명령은 루트 권한 없이 작동합니다.

systemctl 전원 끄기

systemctl 재부팅

systemctl 일시 중지

systemctl 최대 절전 모드

이 작업이 허용되는지 확인하려면(, polkit이 설치되어 있고 세션이 중단되지 않은 경우) 다음 명령을 사용할 수 있습니다.

$  loginctl show-session $XDG_SESSION_ID --property=Active
   Active=yes

내 Debian 8과 같은 다른 systemd시스템에서는 다음 명령에 대해 동일한 응답이 있음에도 불구하고 이것이 불가능합니다.

$  loginctl show-session $XDG_SESSION_ID --property=Active
   Active=yes
$ systemctl reboot
 ==== AUTHENTICATING FOR org.freedesktop.login1.reboot ===
 Authentication is required for rebooting the system.
 Authenticating as: ,,, (myusername)
 Password: 

이는 polkitArch Linux와 Debian에서 기본적으로 다른 방식으로 설정되었음을 나타냅니다. Arch Linux 사람들은 sudo다음과 같이 말하면서 이것에 비해 이점을 봅니다.Polkit의 위키 페이지:

Polkit은 시스템 전체 권한을 제어하는 ​​데 사용됩니다. 이는 권한이 없는 프로세스가 권한이 있는 프로세스와 통신할 수 있는 체계적인 방법을 제공합니다. sudo와 같은 시스템과 달리 전체 프로세스에 루트 권한을 부여하지 않고 중앙 집중식 시스템 정책을 보다 세밀하게 제어할 수 있습니다.

평소처럼 YMMV.

의 경우 , 권한이 없는 사용자에게 허용되는 으로 shutdown now의 리디렉션인 것 같습니다 .systemctl poweroff

--https://superuser.com/users/255732/mariusmatutiae

관련 정보