저는 반세기가 넘는 Unix 경험을 확인해 보았는데 제 동료나 나 자신 모두 그룹( sg
및 gpasswd
)에 비밀번호를 설정한 적이 없습니다. 그룹 비밀번호의 일반적인 사용 사례는 무엇입니까? 아니면 역사적 이유로 존재합니까?
답변1
또한 이 기능이 사용되는 것을 한 번도 본 적이 없습니다. 대부분의 SA는 시설이 존재하는지조차 모릅니다. 매뉴얼 페이지를 보면 gpasswd
다음과 같은 메모가 있습니다.
그룹 비밀번호에 관한 주의사항
Group passwords are an inherent security problem since more than one person is permitted to know the password. However, groups are a useful tool for permitting co-operation between different users.
그들은 왜 존재하는가
비밀번호를 가지고 있는 사용자를 모델로 삼는 것은 자연스러운 생각이고, 그룹에 사용 사례 모델을 복사하는 것도 의미가 있다고 생각합니다. 그러나 실제로는 거의 쓸모가 없습니다.
그룹 비밀번호를 사용하는 아이디어는 특정 그룹(구성원으로 나열되지 않은 그룹)에 액세스해야 하는 경우 명령을 사용하여 newgrp
해당 그룹에 대한 비밀번호를 통해 액세스할 수 있다는 것입니다. 여러 떼.
이들의 큰 문제는 그룹당 비밀번호가 하나만 있기 때문에 여러 사람이 특정 그룹에 액세스해야 할 때 사람들이 해당 비밀번호를 공유해야 한다는 것입니다.
그룹
내가 접한 대부분의 환경은 일반적으로 사람들을 보조 그룹에 넣은 다음 해당 그룹에 파일 시스템의 파일에 대한 액세스 권한을 부여합니다. 이는 거의 모든 사용 사례에서 발생합니다.
스도
추가 권한의 출현으로 sudo
필요에 따라 그룹에 권한을 부여할 수 있으므로 그룹 비밀번호가 제공할 수 있는 모든 사용 사례가 더욱 무효화됩니다. 사용자에게 더 많은 권한을 허용해야 하는 경우 역할을 생성한 sudo
다음 해당 사용자가 속한 사용자 이름이나 그룹만 허용하고 특정 작업을 수행할 수 있도록 해당 권한을 승격시키는 권한을 허용하는 것이 더 쉽습니다.
ACL
마지막으로 ACL(액세스 제어 목록)을 생성하는 기능은 사용자/그룹/기타 권한 모델만으로는 제공할 수 없는 마지막 유연성을 제공하므로 그룹 비밀번호가 전혀 필요하지 않습니다.
답변2
로그에 내 계정이 무차별 대입(또는 사전 공격)을 당하고 있음이 표시되었으므로 이는 내 작업 서버에서 나 자신을 위해 구현한 그룹 비밀번호를 실제로 사용하는 것입니다.
나는 내 워크스테이션과 가정용 컴퓨터에서 사용하기 위해 별도로 키 쌍을 사용 ssh-keygen
하고 생성합니다. puttygen
집에서 사용하는 열쇠에는 코드가 필요합니다. 두 개의 공개 키를 추가하여 .ssh/authorized_keys
비밀번호는 있지만 구성원은 없는 그룹을 만들었습니다. marionette
나는 루트로서 visudo
다음 줄을 추가하곤 했습니다.
Cmnd_Alias SUDOING = /bin/bash, /usr/bin/sudo -i
%marionette ALL=NOPASSWD:SUDOING
내 계정 비밀번호를 비활성화했는데 누구도 이 방법으로 로그인할 수 없습니다. 이제는 내 키를 사용하여 newgrp marionette
root 가 될 수 있는 비밀번호로 보호된 그룹에만 로그인합니다 sudo -i
.
해당 옵션이 없으면 NOPASSWD:
당신이 필요합니다사용자 계정비밀번호. 비활성화되어 있고 그룹에 해당 그룹이 없으면 NOPASSWD
계속 진행할 수 없습니다 sudo -i
. 또한 귀하의사용자 계정/bin/bash
비밀번호(명령 목록에 루트가 기본적으로 사용하는 쉘이 하나도 없는 경우 ).
이렇게 하면 sudoing 경로가 몇 단계 더 길어지지만 보안이 강화됩니다. 이와 같은 모든 계정을 생성하기로 선택한 경우 비밀번호와 sudo 권한이 있는 로컬 계정을 생성하되 /etc/ssh/sshd_config
다음을 추가하여 ssh 액세스를 거부하세요.
DenyUsers root caan
DenyGroups root daleks
재설치하고 액세스 키를 백업하는 것을 잊어버린 경우 로컬 액세스에 필요합니다.
답변3
나 또한 이 비밀번호의 사용 사례를 본 적이 없습니다. 약 20년 간의 *nix 경험입니다.
염두에 두어야 할 유일한 사용 사례는 "!"로 설정하는 것입니다. 즉, 누구도(그룹의 구성원이 아닌) newgrp
명령을 사용하여 그룹을 변경할 수 없도록 설정하는 것입니다.
SLES의 /etc/group 또는 RedHat 기반 시스템의 /etc/gshadow를 살펴보면 이것이 "일반적인" 사용 사례인 것 같습니다. SLES는 암호에 대한 섀도우 메커니즘을 생성하는 데 신경 쓰지도 않습니다.
답변4
사용 사례를 제안하겠습니다.
우리는 "사용자"라는 단어에 너무 익숙해서 그것에 대해 생각조차 하지 않는다는 점부터 시작하겠습니다. 하지만 "사용자"는 실제로는 그렇지 않습니다.사용자. 예를 들어, 집에는 아내의 노트북, 제 노트북, 일반 데스크톱 컴퓨터 등 세 대의 컴퓨터가 있습니다. 저는 아내의 노트북을 사용할 때 아내의 사용자 계정으로 로그인합니다. 그녀는 내 노트북을 사용할 때 내 사용자 계정을 사용하여 로그인합니다. 데스크톱이 필요한 사람은 범용 계정을 사용합니다. 여기서 우리는 컴퓨터 시스템이 "사용자"라고 부르는 것이 실제로는 사용자가 아니라는 것을 알 수 있습니다.사용자하지만 하나작업 과정- 일련의 활동.
문제는 왜 내가 하나 이상의 활동을 가질 수 없는가입니다. 즉, 내가 가진 모든 직업에 대해 하나씩 활동을 할 수 있습니까? 저 할 수 있어요. 내 작업 컴퓨터에서 나는 (실험적으로) 현재 작업에 집중할 수 있도록 다양한 사용자를 만들었습니다. 현재 어떤 사용자를 사용하고 있든 내 파일에 액세스할 수 있도록 이러한 모든 사용자를 동일한 그룹에 넣습니다.
그렇다면 gpasswd는 어떤 역할을 할까요?
Ubuntu의 기본 동작은 각 사용자에 대해 특수 그룹을 생성하는 것입니다.
우리가 이러한 주요 그룹을 다음과 같이 취급하기로 결정한 경우사용자시스템 사용자를 다음과 같이 취급합니다.작업 과정?
이러한 신규 사용자는 로그인하려면 비밀번호가 필요합니다. 그렇죠? gpasswd가 있는 곳입니다. 여전히 그룹에 로그인하는 방법을 알아내야 합니다(지금까지는 이미 로그인한 경우 gpasswd를 사용하여 그룹을 전환할 수 있다는 것을 알고 있습니다).