나는 많은 Linux 배포판에서 새로운 사용자가 생성될 때마다 자체 이름을 가진 기본 그룹에 할당된다는 것을 확인했습니다.
예를 들어. "testuser"라는 사용자를 생성하면 기본적으로 "testuser" 기본 그룹에 할당됩니다.
이로 인해 모든 사용자는 고유한 기본 그룹을 갖게 됩니다. 이 그룹에 다른 사용자를 추가할 필요가 없기 때문에 이러한 모든 그룹에는 사용자가 1명만 있습니다. "그룹"은 일반적으로 "1개 이상"을 의미하므로 이는 다소 직관에 어긋납니다.
이러한 사용자 기본 그룹은 파일/폴더에 권한을 할당하려고 할 때 일반적으로 쓸모가 없습니다.
이것이 배포판의 기본 동작인 이유가 있습니까? 이 동작이 실제로 유용한 사용 사례가 있나요? 모든 새 사용자를 "사용자" 기본 그룹에 할당하지 않는 이유는 무엇입니까?
답변1
사용자를 자신의 그룹에 넣는 이유(내가 아는 한 유일한 이유)는 umask 002
올바른 umask 007
기본값을 갖기 위한 것입니다.
이것마스크새로 생성된 파일에 대한 기본 권한에 대한 마스크입니다. 숫자는 와 같은 의미입니다 chmod
. 첫 번째 숫자는 사용자를 나타내고, 두 번째 숫자는 그룹을 나타내고, 세 번째 숫자는 그 외 모든 사람을 나타냅니다. umask의 비트가 1이면 새로 생성된 파일의 권한에서 해당 비트가 제거(마스크)됩니다. 예를 들어, 애플리케이션이 특정 개인 정보 보호 요구 사항 없이 실행할 수 없는 파일을 생성하는 경우 파일 권한으로 666을 전달하고 umask 002가 있는 애플리케이션은 권한 664( 0666 & ~002
C와 유사한 표기법)를 사용하여 파일을 생성합니다. 사용자와 그룹( )만 읽고 쓸 수 있습니다 rw-rw-r--
.
umask 022를 사용하면 기본적으로 모든 사람이 파일을 읽을 수 있지만 작성자만 쓸 수 있습니다. umask 002를 사용하면 파일 소유자도 여기에 쓸 수 있습니다. 사용자의 기본 그룹이 유일한 사용자이고 umask가 002인 경우:
rw-rw-r--
기본적으로 권한이 있음에도 불구하고 그룹의 다른 사용자에게는 쓰기 권한이 없으므로 작성자만 파일을 쓸 수 있습니다 .- 특정 그룹의 구성원이 파일을 수정하도록 허용하려면 작성자가 를 사용하기만 하면 됩니다
chgrp
. 이는 파일이 다음에서 생성된 경우에도 자동으로 발생할 수 있습니다.setgid 비트가 있는 디렉토리또는 이에 상응하는전방십자인대.
022 umask에 비해 장점은 이 설정에서 사용자가 파일을 편집할 수 있도록 하기 위해 작성자가 그룹 설정 및 권한 확장( chmod g+w
)이라는 두 가지 작업을 수행해야 한다는 것입니다. 사람들은 두 번째 단계(또는 setgid 디렉토리의 유일한 단계)를 잊어버리는 경향이 있습니다.
특정 개인 정보 보호 요구 사항이 있는 파일의 예 : 암호화 키 , 이메일,/tmp
답변2
모든 사용자를 그룹에 추가하는 것이 일반적이지만 users
이로 인해 통제된 방식으로 파일을 공유하는 것이 어색해집니다(모든 사람이 액세스할 수 있도록 그룹 권한을 공개). 요즘에는 프로세스가 여러 그룹에 속할 수 있으므로 명시적인 그룹을 추가하여 액세스를 끄고 파일을 공유할 수 있도록 각 사용자에게 자신의 그룹을 제공하기만 하면 됩니다. 또는 (사용 가능한 경우)ACL.