재부팅 및 종료에 루트 권한이 필요한 이유는 무엇입니까? [복사]

재부팅 및 종료에 루트 권한이 필요한 이유는 무엇입니까? [복사]

터미널에서 Linux를 다시 시작하거나 종료하려면 각각 reboot및 를 사용할 수 있습니다 poweroff. 그러나 두 명령 모두 루트 권한이 필요합니다. 왜 그럴까요? 루트 권한이 필요하지 않을 때 발생하는 보안 위험은 무엇입니까? GUI는 모든 사용자가 종료하거나 재부팅할 수 있는 방법을 제공하는데 왜 터미널 명령을 루트로 실행해야 합니까?

GUI의 옵션에 대해 말하자면, Linux 컴퓨터를 종료하거나 다시 시작하기 위해 터미널에 루트 권한이 필요한 경우 GUI가 비밀번호를 입력하지 않고 동일한 작업을 수행할 수 있는 옵션을 어떻게 제공할 수 있습니까?

답변1

경고: 이 답변을 읽은 후에는 Linux에 대해 원하는 것보다 더 많이 알게 될 수도 있습니다.

루트 권한이 필요한 이유 reboot와 이유poweroff

GNU/Linux 운영 체제는 다중 사용자입니다., 그것의유닉스 시스템상위. 시스템은 공유 리소스이며 여러 사용자가 사용할 수 있습니다.동시에.

예전에는 이런 일이 자주 있었는데컴퓨터 터미널에 연결하다미니컴퓨터또는메인프레임.

플라즈마 11

인기 있는 PDP-11 미니컴퓨터. 요즘 기준으로는 좀 크네요 :)

오늘날 이는 네트워크를 통해 원격으로 발생할 수 있습니다(일반적으로 다음을 통해).SSH), 존재하다씬 클라이언트또는다중 좌석 구성, 여러 로컬 사용자가 동일한 컴퓨터에 하드웨어를 연결한 경우.

여러 좌석

다중 좌석 구성. 사진 제공: Thiago Vignati

실제로는 동일한 컴퓨터를 동시에 사용하는 사용자가 수백 또는 수천 명일 수 있습니다.어떤 사용자가 컴퓨터를 종료하고 다른 사람이 컴퓨터를 사용하지 못하게 할 수 있다면 별 의미가 없습니다.

루트 권한이 필요하지 않을 때 발생하는 보안 위험은 무엇입니까?

다중 사용자 시스템에서는 이를 효과적으로 방지합니다.서비스 거부 공격

GUI는 모든 사용자가 종료하거나 재부팅할 수 있는 방법을 제공하는데 왜 터미널 명령을 루트로 실행해야 합니까?

많은 Linux 배포판은 GUI를 제공하지 않습니다. 데스크탑 Linux 배포판은 일반적으로 단일 사용자 모드에 맞춰져 있으므로 GUI에서 이를 허용하는 것이 합리적입니다.

명령에 여전히 루트 권한이 필요한 가능한 이유는 다음과 같습니다.

  • 데스크탑 지향 배포판을 사용하는 대부분의 사용자는 명령줄이 아닌 GUI를 사용하므로 문제를 일으킬 가치가 없습니다.
  • 허용되는 UNIX 규칙과 일치
  • (아마도 오해의 소지가 있는) 보안 - 순진한 프로그램이나 스크립트가 시스템 전원을 끄는 것을 방지합니다.

루트 권한 없이 GUI가 닫힌 것처럼 보이려면 어떻게 해야 합니까?

실제 메커니즘은 특정 데스크탑 관리자(GUI)에 따라 다릅니다. 일반적으로 이러한 작업에 사용할 수 있는 몇 가지 메커니즘이 있습니다.

  • GUI 자체를 루트로 실행하십시오(올바른 구현에서는 이런 일이 발생하지 않기를 바랍니다...)
  • 설정값
  • sudo 및 NOPASSWD
  • 이러한 권한이 있는 다른 프로세스에 명령을 전달하려면 일반적으로 다음을 사용합니다.D-버스. 널리 사용되는 GUI에서는 일반적으로 다음과 같이 수행됩니다.폴킷.

요컨대

Linux는 메인프레임, 서버, 데스크톱부터 슈퍼컴퓨터, 휴대폰, 컴퓨터에 이르기까지 매우 다양한 환경에서 사용됩니다.전자 레인지. 모두를 항상 행복하게 유지하는 것은 정말 어렵습니다! :)

답변2

Linux는 원래 다중 사용자 운영 체제로 개발된 Unix에 뿌리를 두고 있습니다. 다른 사용자에게 해를 끼치도록 시스템을 재부팅하려는 사용자가 있을 수 있습니다. 루트 권한이 있는 관리자만 이 작업을 수행할 수 있습니다.

답변3

이는 자연스러운 정책과 편의의 문제이며 컴퓨터에 물리적으로 로그인되어 있으므로 GUI에서 허용해야 합니다. (GUI가 루트로 실행되지 않고 Centos 6을 사용하고 있으며 사용자에게 GUI 종료/다시 시작 옵션도 없고 로그아웃 및 잠금 옵션만 있는 경우 일부 Linux 배포판에서는 여전히 비밀번호를 묻습니다.)

의사 터미널에서는 루트이거나 sudo 권한이 있어야 합니다. 사용자가 서버나 컴퓨터에 SSH로 접속하여 종료하거나 다시 시작하는 것을 원하지 않을 것이기 때문입니다.

답변4

첫 번째 질문 의 경우 :

루트 권한이 필요하지 않을 때 발생하는 보안 위험은 무엇입니까? GUI는 모든 사용자가 종료하거나 재부팅할 수 있는 방법을 제공하는데 왜 터미널 명령을 루트로 실행해야 합니까?

예, 명시된 대로이것대답은 Linux가 기본적으로 다중 사용자 시스템으로 설계되었다는 것입니다. 한 시스템에서 여러 명의 사용자가 작업하고 있다는 점을 고려하면, 다른 사용자가 작업하는 동안 일반 사용자가 시스템을 종료하도록 허용하는 것은 좋지 않습니다. 멀리 떨어진 사용자에 의해 웹 서버가 종료된다면 어떤 일이 일어날지 상상해 보십시오!따라서 시스템 관리자(루트 사용자)만이 시스템에 poweroff접근 할 수 있습니다.reboot

다음 사항도 알아낼 수 있습니다.

$ which poweroff reboot
/sbin/poweroff
/sbin/reboot

따라서 poweroffreboot위치는 다음과 같습니다./sbin디렉토리에는 유틸리티와 루트 전용 명령은 물론 시스템 부팅, 복구, 복원 및/또는 복구를 위한 기본 바이너리도 포함되어 있습니다.

따라서 이러한 명령은 시스템 관리자/루트 사용자가 실행해야 합니다. 맨페이지를 방문하십시오.

DESCRIPTION
       These programs allow a system administrator to reboot, halt or poweroff the system.

또한 관련 질문을 방문하십시오:종료하고 다시 시작하려면 왜 터미널에서 루트여야 합니까?


두 번째 질문 의 경우 :

GUI의 옵션에 대해 말하자면, Linux 컴퓨터를 종료하거나 다시 시작하기 위해 터미널에 루트 권한이 필요한 경우 GUI가 비밀번호를 입력하지 않고 동일한 작업을 수행할 수 있는 옵션을 어떻게 제공할 수 있습니까?

GUI는 편의성의 문제입니다. 분명히 사용자는 GUI에 로그인하여 무슨 일이 일어나고 있는지, 무엇을 하고 있는지 알고 있습니다. 따라서 사용자로부터 비밀번호 프롬프트/요구 사항을 기대하지 않습니다. 즉, 어떤 방법으로든 종료 또는 재부팅을 허용합니다.기구좋다정책 툴킷. 하지만 그렇다면명령줄상황이 전혀 다르네요...

물론 데스크탑 환경에서 제공하는 동일한 명령을 사용할 수 있습니다. 예를 들어 gnome다음을 사용할 수 있습니다.gnome-session-quit루트 권한이 필요하지 않은 적절한 옵션을 사용하십시오.

또한 관련 질문을 방문하십시오:루트 권한 없이 전원 버튼을 눌러 컴퓨터를 종료하는 방법은 무엇입니까?

관련 정보