그룹 파일 및 이와 관련된 모든 것 [닫기]

그룹 파일 및 이와 관련된 모든 것 [닫기]

저는 *nix 운영 체제를 처음 접했습니다. 나는 이 파일의 형식과 사용법(적어도 매뉴얼 페이지의 내용)을 이해합니다 /etc/group. 어느 날 그룹 파일을 백업 복사본으로 바꾸려고 했습니다. 파일 이름을 변경한 group.old후 내 컴퓨터의 모든 계정이 손실되었습니다.뿌리사용권. 이 문제를 해결하려면 단일 사용자 모드로 들어가야 했습니다. 이 그룹과 전체 UNIX 계정에 대한 심층적인 과정이 필요한 것 같습니다.

누군가 나에게 링크를 주거나 당신의 학습 경험을 나와 공유할 수 있습니까?

답변1

이 파일은 /etc/group어떤 사용자가 어떤 그룹의 구성원인지를 나타냅니다. 그룹은 액세스 제어에 사용되며 사용자를 보완합니다.

/etc/group로그인 시 읽어보세요. 각 프로세스는 사용자와 하나 이상의 그룹으로 실행됩니다. 로그인 프로세스는 모든 권한으로 실행되기 시작합니다. 사용자가 성공적으로 인증되면(예: 비밀번호 입력) 로그인 프로세스는 에 표시된 그룹 /etc/group과 에 표시된 그룹을 가정한 /etc/passwd다음 인증된 사용자 셸로 시작됩니다.

각 파일에는 세 가지 권한 세트(사용자, 그룹 및 기타)와 소유자 및 그룹이 있다는 것을 알 수 있습니다. 프로세스가 파일에 액세스하려고 시도하면 다음이 수행됩니다.

  1. 파일을 소유한 사용자로 프로세스가 실행되는 경우 적용 가능한 권한은 사용자 권한입니다.
  2. 그렇지 않고 프로세스의 그룹 중 하나가 파일을 소유한 그룹인 경우 적용 가능한 권한은 그룹 권한입니다.
  3. 그렇지 않은 경우 적용 가능한 권한은 다른 권한입니다.

예:

$ ls -l myfile
-rw-r-----  1 msh gutenberg 1234 Jul  4  1971 books.txt

사용자는 msh이 파일( )을 읽고 쓸 수 있습니다 rw-. 그룹의 모든 사용자는 gutenberg파일( r--)을 읽을 수 있습니다. 다른 사용자는 해당 파일에 전혀 접근할 수 없습니다( ---).

따라서 그룹을 사용하면 모든 사용자의 하위 집합이 파일에 액세스할 수 있도록 할 수 있습니다. 시스템 서비스 및 장치는 특정 사용자 또는 특정 그룹으로 제한될 수도 있습니다.

그룹에는 세 가지 일반적인 용도가 있습니다.

  • 위의 예에서와 같이 공통 프로젝트에서 작업하는 실제 사용자 그룹은 동일한 파일 세트에 액세스합니다.
  • 시스템 리소스에 대한 액세스를 제어하는 ​​데 사용되는 물리적 사용자 그룹입니다. 예를 들어, 경쟁 게임은 사용자와 그룹에 속하고 모든 사용자 만 쓸 수 있고 모든 사용자가 쓸 수 없는 root높은 점수의 파일을 저장하는 경우가 많습니다( ). 게임 프로그램은 높은 권한을 가진 그룹으로 실행됩니다 .gamesgamesrw-rw----games설정) 로 games인해 높은 점수의 파일을 읽고 쓸 수 있지만 다른 프로세스는 그렇지 않습니다.
  • 시스템 사용자 그룹. 예를 들어, 많은 시스템 서비스는 한 서비스의 버그나 손상이 다른 서비스에 영향을 줄 수 있는 위험을 최소화하기 위해 전용 사용자 및 그룹으로 실행됩니다.

귀하의 증상에 따라 귀하의 시스템은 그룹 멤버십을 통해 계정에 대한 액세스를 제어하도록 설정되었습니다 root. 이를 수행하는 방법에는 여러 가지가 있습니다. 가장 일반적인 설정은 다음과 같습니다.

  • 루트 계정에 대한 액세스는 다음을 통해 이루어집니다.스도. 사용자는 를 실행하려면 자신의 비밀번호를 입력해야 합니다 sudo. sudo사용자가 그룹에 있으면 루트로 실행 명령을 호출할 수 있습니다 admin. 이는 비유 %admin: ALL=(ALL) ALL에서 선으로 표현됩니다 /etc/sudoers. 때때로 그룹은 다른 이름을 가지고 있습니다. 이것이 우분투의 기본 설정입니다.
  • 루트 계정에 대한 액세스는 다음을 통해 이루어집니다.. 그룹 내 사용자만 wheel실행할 수 있습니다 su. 사용자는 를 실행하기 위해 루트 비밀번호를 입력해야 하며 su, 따라서 루트 계정에 침투하려면 공격자가 사용자의 비밀번호와 루트 비밀번호를 모두 얻어야 합니다. 이는 일부 BSD 시스템의 기본값이었지만 공격자가 더욱 정교해짐에 따라 더 이상 사용되지 않습니다(계정 손상, 키로거 실행, 루트 비밀번호 획득).

/etc교훈: 파일의 목적을 모른다면 파일을 변경하거나 삭제하지 마세요. 무언가를 변경한 경우 루트 쉘에서 수행하고 나중에 로그인할 수 있는지 테스트하십시오. 그렇지 않은 경우 변경 사항을 즉시 되돌리십시오.

/etc설치를 권장합니다관리자를 기다려주세요패키지하고 실행합니다 etckeeper init(루트로).

답변2

케이"리눅스 실행"Dalheimer와 Welsh의 책(O'Reilly, 2005) 또는 일부TLDP 가이드요구 조건을 충족하다. 귀하의 배포판에는 몇 가지 구체적인 지침이 있을 수 있습니다. 이를 확인하십시오. 구성 파일을 수정할 때 특히 주의하십시오. 백업해 두는 것도 좋지만, 변경사항이 있을 경우 미리 복사본을 만들어 두는 것이 좋습니다(이동하지 마세요). 대부분의 배포판에는 사용자 및 기타 다양한 구성을 관리하기 위한 도구가 있으며, 자신이 수행하는 작업을 완전히 확신하지 않는 한 알고 있을 때 다른 것에 대해 생각하지 마십시오.

답변3

질문을 할 때 사람들에게 자신이 실행 중인 소프트웨어를 알려주는 것이 유용할 것입니다. 이 경우에는 어떤 배포판을 실행하고 있는지 아는 것이 유용할 것입니다.

Fedora나 Redhat을 실행하고 계십니까? 그렇다면 SE Linux가 문제일 수 있습니다.

SE Linux를 실행 중인지 확인하려면 다음 명령을 실행하십시오. getenforce

SE Linux를 실행하는 경우 "enforcing"이 반환됩니다. SE Linux를 실행하는 경우 다음을 실행하십시오.

ls -lZ /etc/group.old /etc/group

그리고 차이점을 비교해 보세요. 새 파일에 많은 부분이 누락된 경우 다음과 같이 표시됩니다.

system_u:object_r:etc_t:s0

이전 파일 목록에서 SElinux 컨텍스트 정보가 누락되었을 수 있습니다.

다음 명령을 사용하여 이전 파일에서 SElinux 컨텍스트를 복사할 수 있습니다.

chcon --reference /etc/group.old /etc/group

방금 배우는 중이라면 SE Linux를 끄는 것이 현명한 대답일 수 있습니다. 다음 방법으로 이를 수행할 수 있습니다.

setenforce 0

재부팅할 때까지(또는 setenforce 1을 실행할 때까지) SELinux가 종료됩니다.

SElinux를 영구적으로 종료하려면 다음을 편집해야 합니다.

/etc/selinux/config

관련 정보