일부 일반적인 Linux 배포판(각각 ArchLinux 및 Debian)에서 기본 사용자 및 그룹 관리를 살펴보면서 이에 대해 두 가지 사항과 기본 설정 및 구성을 수정한 결과에 대해 알고 싶었습니다.
USERGROUPS_ENAB
in의 기본값은 /etc/login.defs
"yes"로 나타나며 이는"기본적으로 새 사용자를 위한 그룹도 생성됩니다."man 에서 찾을 수 있으므로 useradd
새로운 사용자가 생성될 때마다 동일한 이름의 그룹이 생성되고 해당 그룹에는 새로운 사용자만 포함됩니다. 이것의 용도는 무엇입니까, 아니면 이것은 단지 자리 표시자입니까?
권리 관리의 일부가 손실되는 것 같습니다.사용자/그룹/기타이렇게함으로써. 자신만의 그룹을 갖는 대신 "사용자" 또는 "자주 사용하는" 그룹을 모든 사용자의 기본 그룹으로 부르고 싶은 그룹을 갖는 것이 나쁘지 않을까요?
내 질문의 두 번째 부분은 여전히 내가 Arch와 Debian에서 본 내용을 기반으로 합니다. 많은 사용자가 기본적으로 생성됩니다(FTP, HTTP 등). 그들은 어떤 목적을 가지고 있습니까, 아니면 역사적인 이유로만 존재합니까?
나는 그것들을 제거하려고 생각하고 있지만 그것을 사용할 수 있는 것을 부수고 싶지는 않습니다. 그러나 나는 그런 것을 본 적이 없으며 무엇을 해야할지 모릅니다. 사용자가 속한 것을 본 적이 없는 기본 그룹(tty, mem 등)의 경우에도 마찬가지입니다.
답변1
사용자 그룹당
또한 각 사용자 그룹에 대한 유틸리티가 많지 않습니다. 주요 사용 사례는 사용자가 "친구"가 자신의 파일에 액세스하도록 허용하려는 경우 친구 사용자를 자신의 그룹에 추가할 수 있다는 것입니다. 내가 접한 시스템 중 실제로 이런 방식으로 사용하는 시스템은 거의 없습니다.
USERGROUPS_ENAB
in을 /etc/login.defs
"no"로 설정 하면 생성된 모든 사용자가 이 필드 useradd
에서 정의된 그룹에 추가됩니다 . 대부분의 배포판에서 이는 일반적 으로 그룹의 GID에 해당하도록 설정됩니다. 이를 통해 사용자를 보다 일반적으로 관리할 수 있습니다. 그런 다음 보다 세부적인 제어가 필요한 경우 이러한 그룹을 수동으로 추가하고 의미 있는 사용자를 추가할 수 있습니다./etc/default/useradd
GROUP
100
users
기본적으로 생성된 그룹
대부분은 역사적인 이유로 만들어졌지만 오늘날에도 여전히 유효한 용도로 사용되는 경우가 많습니다.
- disk는 디스크 드라이브 장치가 가장 많은 그룹입니다.
- lp는 병렬 포트를 소유합니다(때때로 cup에 대한 관리자 권한으로 구성됨).
- uucp에는 종종 직렬 포트(USB 직렬 포트 포함)가 있습니다.
- CD 드라이브에 대한 설치 권한에는 CDROM이 필요합니다.
- 일부 시스템은 sudo 권한을 위해 휠을 사용합니다.
- 등.
다른 그룹은 백그라운드 스크립트에서 사용됩니다. 예를 들어, man
런타임은 임시 파일 등을 생성합니다. 해당 프로세스는 man 그룹을 사용하여 이러한 파일 중 일부를 처리하고 일반적으로 자체적으로 정리합니다.
~에 따르면Linux 표준 기본 핵심 사양하지만,세 명의 사용자 root, bin 및 daemon만 절대적으로 필수입니다.. 이것이유다른 그룹은 다음과 같습니다.
선택적 사용자 및 그룹을 지정하는 목적은 응용 프로그램과 배포 간의 이름 충돌 가능성을 줄이는 것입니다.
따라서 이러한 그룹을 유지하는 것이 가장 좋습니다. 그것은이론적으로일부 "신비한" 작업이 제대로 작동하지 않을 수도 있지만(예: 그룹을 종료하면 일부 매뉴얼 페이지가 렌더링되지 않음), 깨지지 않고 제거할 수 있습니다. 거기에 놔둬도 아무런 해가 없으며 일반적으로 모든 Linux 시스템이 이를 가질 것이라고 가정합니다.
답변2
질문 1: 동일한 사용자 및 그룹에 대한 추론
안녕하세요 여러분 저는 ecyoung이고 여러분은 horgix입니다. 우리는 매일 출근하고 프로그래머와 동일한 Linux 서버에 로그인합니다. 얼마 전 어느 날, 우리 시스템 관리자는 사용자를 더 쉽게 만들고 유지하기로 결정하여 해당 USERGROUPS_ENAB
옵션을 끄고 모든 기존 사용자를 새 users
그룹에 넣었습니다.
이렇게 하면 사용자 생성이 더 쉬워지지만 모든 사용자가 다른 모든 사용자 파일에 액세스할 수 있으므로 유지 관리가 어렵습니다. 기업 환경에서는 이것이다.큰 안돼 안돼그런 일들 때문에사베인 옥슬리법그리고직무 분리. 파일 A를 생성하면 그룹 비트가 사용자 그룹으로 설정됩니다. 이는 모든 사용자가 최소한 파일 A를 읽을 수 있음을 의미합니다. 시스템 관리자가 게으른 경우 특정 상황에서는 모든 사용자가 파일 A를 RW할 수 있습니다. 다른 부서에서는 다른 사람의 문서를 작성하는 것은 물론이고 다른 사람의 문서를 읽을 수도 없어야 하기 때문에 이는 Sarbanes Oxley와 SoD를 무너뜨립니다.
사용자/그룹이 활성화된 상태에서 ecyoung으로 문서를 생성하면 해당 문서에 대한 rwx 권한은 나에게만 부여됩니다. 내 그룹에는 다른 사람이 없으므로 내 문서를 열면 경고가 포함된 빈 페이지가 표시됩니다. 이는 Sarbanes-Oxley 및 SoD를 시행합니다. 내가 다른 사용자를 초대하면 해당 사용자에게는 읽기 및 쓰기 액세스가 허용되며, 그렇게 함으로써 그들이 보는 것이 나나 그들을 물려고 다시 돌아오지 않을 것이라는 것을 알고 있습니다. 다른 사람들이 말했듯이, 당신이 집에 있다면 이 별거는 당신에게 중요하지 않을 수 있습니다. 이를 확신하는 경우 이 옵션을 안전하게 끌 수 있으며 모든 사용자는 users
GID 100을 사용하여 그룹에 추가됩니다. 아래 질문 2를 참조하세요.
상상의:
당신은 IT 부서에서 일하고 Louis는 급여 부서에서 일합니다. Louis는 자신의 홈 디렉터리에 세금과 급여를 보관하지만 귀하는 둘 다 사용자 그룹에 있으므로 Louis의 홈 디렉터리를 열고(사용자의 +r로 표시되어 있으므로) Louis의 스프레드시트를 찾습니다. Joe와 Fred의 급여 금액과 함께 귀하의 급여 금액이 나열되어 있습니다. Joe와 Fred가 자신의 급여를 알기를 원한다고 생각합니까?
질문 2: 그룹 ID 0~500
그룹 ID와 반대로 사용자 ID 0 - 500은 시스템 계정 및 장치 액세스용으로 예약되어 있습니다. 보다사전 구성된 시스템 그룹 테이블표준 계정 목록을 봅니다. 이러한 계정을 수동으로 삭제하지 마십시오. 예를 들어, 사용자 ftp를 제거하려면 패키지 관리 시스템을 사용하여 ftp 데몬을 제거하십시오. 그렇게 하면 시스템 계정도 삭제됩니다. 시스템 서비스에는 다음이 포함되지만 이에 국한되지는 않습니다.
- CUPS 인쇄 서비스
- MySQL 서버 데몬
- FTP 서버 데몬
- Apac 웹 서버
- 원격 연결을 위한 X 서버 소켓
- ALSA 사운드 시스템 데몬
- DBUS 서비스
다른 서비스도 있으므로 위 서비스 목록에 다른 독자들이 추가하거나 삭제하고 싶은 경우에는 그렇게 하시기 바랍니다.
답변3
이전과 마찬가지로 모두 기본 그룹을 공유하는 경우 해당 그룹을 차단하려면 umask를 077로 설정해야 합니다. 기본값이 me인 경우 umask를 027로 설정할 수 있으며 이제 디렉터리나 파일을 공유 그룹으로 설정하면 그룹에서 읽을 수 있습니다. 패턴을 망칠 필요도 없습니다.
이는 단지 예일 뿐이지만 일반적으로 필요할 때까지 그룹을 비활성화하여 그룹을 더 쉽게 열고 관리할 수 있는 방법입니다.
답변4
chgrp(1)
원래 Unix 프로세스는 한 번에 하나의 그룹에만 속할 수 있었습니다(예전 에는 잔여 비밀번호 필드에 저장된 그룹 비밀번호를 요청하는 명령이 있었습니다 /etc/groups
). Plus 시스템은 긴밀한 사용자 그룹이 사용합니다. 모든 사람을 users
그룹 으로 구성하고 그룹 권한을 통해 시스템 전체에 콘텐츠를 공유하는 것이 합리적입니다. 다른 12명의 사용자들은 보안에 대한 실질적인 감각이 없었고 의심도 거의 없었습니다. 모든 것이 동일한 시스템에서 로컬입니다. 블로그 등을 통해 정보를 공유할 수 있는 네트워크가 없습니다.
오늘날의 Unix 시스템에는 수백 명의 사용자가 있고 보안 요구 사항은 더욱 엄격하며 사용자(및 프로세스)는 여러 그룹에 속할 수 있습니다. 각(더 무지한) 사용자에게 홈 그룹을 제공하고 홈 그룹 외부에서 공유를 허용합니다. 아니면 ACL을 사용하세요.