Linux에서 admin/root/superuser는 어떻게 작동합니까?

Linux에서 admin/root/superuser는 어떻게 작동합니까?

우리는 학교 다닐 때 Windows에 대해 배웠습니다. 그러다가 컴퓨터 공학 학사 학위 프로그램을 선택했고 우리는 Windows 대신 Linux를 사용해야 했습니다. 그들은 Linux 기본 사항을 가르치지 않고 프로그래밍을 직접 가르치기 시작합니다. 나는 Linux에 어느 정도 익숙하기 때문에 이것은 어렵지 않았습니다. 하지만 Linux의 관리자, 루트 또는 수퍼유저 시스템에 대해 여전히 몇 가지 질문이 있습니다. 이제 내 문제는 여러 가지 하위 문제로 구성됩니다. 그래서 문제는 다음과 같습니다:

  1. #터미널 프롬프트의 (해시)는 슈퍼유저로 실행 중임을 의미하고 $(달러)는 슈퍼유저로 실행되지 않음을 의미한다는 것을 알고 있습니다 . 그런데 내 계정이 관리자 계정인데도 #터미널 프롬프트에 표시되지 않습니다. 대신 su관리 권한을 가지려면 명령을 사용하여 로그인 해야 합니다 . 왜 그런 겁니까?

  2. 관리자, 루트, 수퍼유저라는 용어가 동일합니까? Windows에는 "관리자"라는 용어가 하나만 있고 귀하의 계정이 관리자 계정인 경우 기본적으로 항상 관리자 권한으로 로그인되어 있기 때문에 혼란스럽습니다. 즉, Linux에서와 같이 반드시 그런 것은 아닙니다.

  3. 대학 컴퓨터에 Ubuntu가 설치되어 있으며 관리자로 로그인해야 하는 경우 비밀번호를 입력해야 하며 su비밀번호를 입력하라는 메시지가 표시되며 슈퍼유저가 되려면 현재 계정 비밀번호를 입력해야 합니다. 하지만 저는 Ubuntu 디자인이 마음에 들지 않았기 때문에 대신 노트북에 Fedora를 설치했는데, 설치 과정에서 두 개의 비밀번호를 입력하라는 메시지가 나타났습니다. 하나는 일반 계정(관리자 권한이 있는)이고 다른 하나는 "루트" 사용자용입니다. 그렇다면 일반 계정을 사용하여 관리자로 로그인해야 할 때마다 일반 비밀번호 대신 "루트" 비밀번호로 로그인해야 한다는 의미입니까? 그렇다면 소프트웨어가 관리자 권한을 직접 부여하지 않는데 왜 일반 비밀번호를 요구합니까?

편집하다:

누군가 나에게 Linux의 관리 시스템을 설명해 줄 수 있나요? 루트란 무엇입니까? 관리자인데 관리자 권한이 없는 이유는 무엇입니까?

답변1

Unix/Linux 시스템의 모든 계정에는 숫자 식별자, "사용자 ID" 또는 UID가 있습니다. 관례적으로 UID 0(영)은 "root"로 명명되며 특별한 권한(일반적으로 시스템의 모든 항목에 액세스할 수 있는 권한)이 부여됩니다.

할 수 있다루트 비밀번호가 있는 경우 루트 사용자로 로그인하면 됩니다. 그러나 그렇게 하는 것은 일반적으로 나쁜 습관으로 간주됩니다.

한편으로 Unix/Linux는 종종 다음을 제공합니다.충분한보안 없이는 총격을 가할 여지가 없습니다. 오타와 사고가 많으며 가장 쉬운 복구는 전체 재설치 및/또는 백업에서 복원하는 것입니다. 따라서 원하지 않는 일을 실수로 수행하는 것을 방지하려면 필요할 때 실제로 루트로 전환해야 합니다.

또한 맬웨어의 확산을 제한하는 데도 도움이 됩니다. 웹 브라우저가 UID 0("루트로"라고 함)에서 실행 중인 경우 원격 웹 사이트가 프로그래밍 오류를 악용하여 컴퓨터를 완전히 제어할 수 있습니다. "일반" 사용자 계정을 유지하면 이러한 피해가 제한됩니다.

이 두 가지 모두 "최소 권한의 원칙"이라는 일반적인 모범 사례를 따릅니다. 이는 솔직히 일반 시스템 설계에 있어서 좋은 점입니다. 항상 루트로 실행되지 않는 구체적인 이유에 대해 자세히 알아볼 수 있습니다.루트로 로그인하는 것이 과대평가되어 걱정되시나요?

이제 남은 질문은 어떻게 하느냐는 것입니다.할 수 있는루트가 아닌 사용자로 보호된 콘텐츠에 액세스합니다. su와 의 두 가지 기본 방법이 있습니다 sudo. 첫 번째는 루트 비밀번호가 필요하고 두 번째는 일반적인 구성에 필요합니다.당신의비밀번호. 일반적으로 sudo전체 세션에 대해 루트 계정으로 전환하는 대신 "루트로"를 사용하여 단일 명령을 실행합니다. ( su -c문서에서 자주 볼 수 있는 를 사용하여 이 작업을 수행할 수도 있습니다 .) 이들의 상대적 장점에 대한 자세한 설명은 다음을 참조하세요.sudo, su 또는 login 중 루트 권한을 얻는 가장 안전한 방법은 무엇입니까?. (그리고 완벽함을 위해 sudo가 아니지만 GUI 애플리케이션에 일반적으로 사용되는 PackageKit과 같이 동일한 방식으로 작동하는 다른 메커니즘도 있습니다.)

"루트", "수퍼유저" 및 "관리자"라는 용어가 동일한지 질문하셨습니다. "루트"와 "수퍼유저"는 기본적으로 둘 다입니다. 정확하게 말하면 "계좌 root는 다음과 같습니다.이것수퍼유저의 UID가 0이기 때문입니다. "

"행정직원"할 수 있다의미는 동일하지만 Fedora에서는* 약간 다른 방식으로 사용됩니다. 시스템의 모든 사용자가 sudo를 통해 루트에 액세스할 수 있는 것은 아닙니다. Fedora의 기본 설정에서는 그룹 구성원이 wheel이 작업을 수행할 수 있습니다. 그리고 설치 프로그램, 문서 및 다른 곳에서는 이를 호출합니다.이것"관리자 계정". 루트는 아니지만 루트 액세스 권한이 있습니다.

(아, 마지막으로 한 가지: 프롬프트의 #vs는 $결정적이지 않은 시각적 규칙일 뿐입니다. PS1프롬프트가 다양한 작업을 수행하도록 환경 변수를 변경할 수 있습니다.)

* 저는 Fedora에서 작업합니다.

답변2

  1. 보안 문제는 참조하세요.https://askubuntu.com/questions/16178/why-is-it-bad-to-login-as-root

  2. su대체 사용자를 사용하여 명령을 실행할 수 있습니다. 이는 인수 없이 호출할 때 기본적으로 대화형 셸을 루트로 실행하도록 설정됩니다. 바라보다http://www.linfo.org/su.html이를 위해서는 루트 비밀번호가 필요합니다.

    실행하여 이를 무시할 수 있습니다 sudo su(실행이 허용된 경우). Sudo를 사용하면 허용된 사용자가 슈퍼유저 또는 보안 정책에 지정된 다른 사용자로 명령을 실행할 수 있습니다. (/etc/sudoers 파일에 지정됨) 자세한 내용은 여기를 참조하세요:https://www.sudo.ws/man/1.8.15/sudo.man.html

    마지막 질문입니다. 첫 번째는 그렇습니다. 그러나 대부분의 사람들은 사용하기 쉬운 것을 선호합니다 sudo. 마지막으로 말씀드리자면, 무슨 말씀이신지 잘 모르겠지만, 계정마다 비밀번호를 다르게 설정하는 것이 더 좋습니다.

답변3

Windows와 Linux는 관리 권한을 다르게 관리합니다.

Windows에서 시스템 관리 작업은 높은 권한 수준에서 실행되는 프로세스에 의해서만 수행될 수 있습니다. 일반 프로세스는 일반 권한 수준으로 실행됩니다. 사용자 계정이 관리자로 표시되면 사용자는 일반적으로 높은 권한 수준에서 프로세스를 실행할 수 있으며 이를 수행하려면 비밀번호를 다시 입력해야 합니다("공동지원센터"빠르게") 따라서 관리자는 권한을 상승시킬 수 있는 권한을 가진 계정을 가진 사용자입니다.

Linux(및 기타 Unix 시스템)에서 시스템 관리 작업은 다음을 통해서만 수행할 수 있습니다.루트 사용자. 이는 사람이 로그인하는 것이 아닌 시스템 작업에 사용되는 사용자 계정입니다. 루트 사용자는 사용자 ID(0)로 정의됩니다(계정을 일반적으로 부르지만 계정을 root특별하게 만드는 것은 이름이 아니라 사용자 ID입니다). 관리자는 루트 계정에 대한 액세스 권한이 있는 사용자입니다.

Linux에서 루트 계정에 액세스하는 방법에는 두 가지 주요 방법이 있습니다. 시스템 관리자는 이들 중 하나 또는 둘 다를 활성화할 수 있습니다(드물게는 동일한 도구를 사용하는 다른 방법이나 다르게 구성된 다른 도구).

  • 이것su이 명령을 사용하면 루트 계정의 암호를 알고 있는 모든 사용자가 루트 계정에 액세스할 수 있습니다. 일부 설정에서는 전통적으로 그룹 구성원으로 알려진 특정 사용자만wheelsu루트로 명령을 실행할 수 있습니다 .
  • 이것sudosudoers명령을 사용하면 명령이 sudo 구성 파일( )에 직접 선언되거나 그룹 멤버십을 통해 선언된 경우 사용자가 루트로 명령을 실행할 수 있습니다. 사용자는 일반적으로 sudo자신의 비밀번호를 입력해야 합니다. 이는 주로 사용자가 터미널을 떠나는 경우 sudo를 사용하는 통행인을 피하기 위한 것입니다.

따라서 Linux에 관리자 계정이 있으면 루트로 명령을 실행하거나 sudo실행할 수 있다는 의미입니다 su. 루트로 명령을 실행하지 않는 경우에는 일반 권한이 있습니다.

관련 정보