![Linux에서 사용자에게 별칭을 효과적으로 추가하는 방법](https://linux55.com/image/225107/Linux%EC%97%90%EC%84%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%20%EB%B3%84%EC%B9%AD%EC%9D%84%20%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
두 로그인이 실제로 동일한 사용자가 되도록 Linux에서 사용자 별칭을 만드는 가장 좋은 방법은 무엇입니까?
그래서 나는 (또는 아주 가까운 일을) 할 수 있습니다:
sudo adduser primary_user
sudo useradd -d /home/primary_user -G primary_user -K UMASK=022 alias_user
sudo passwd alias_user
이 프로세스가 시작될 때 이러한 사용자는 동일한 작업을 수행합니다. 그러나 내가 달리면
usermod -aG docker $USER
별칭 사용자가 어떻게 갑자기 docker 그룹의 일부가 되었는지 이해가 되지 않습니다. 내가 뭐 놓친 거 없니? 2번의 로그인과 1개의 사용자 계정을 원합니다:
jbrown -> jbrown
jbro -> jbrown
이것이 효율적으로 이루어질 수 있습니까? 이에 대한 배포판별 답변이 있을 수 있습니다.
답변1
사용자는 UID를 공유하여 동일한 사용자 권한을 부여할 수 있습니다.
일부 빠른 테스트에 따르면 어떤 별칭으로 로그인하든 시스템은 사용자를 데이터베이스의 UID와 일치하는 첫 번째 사용자로 인식합니다 passwd
(일반적 /etc/passwd
으로 고급 설정의 다른 곳에서도 가능).
그룹이 동일한 방식으로 동작하는 것을 본 적이 없습니다. 각 별칭을 각 그룹에 명시적으로 추가해야 합니다. 사용자는 UID에서 매핑되는 반면 그룹은 이름에서 매핑되는 것처럼 보입니다( /etc/group
무슨 뜻인지 보려면 콘텐츠를 확인하세요).
시작한 내용을 기반으로 한 간단한 예는 다음과 같습니다.
#!/bin/sh
USER1=primary
USER2=alias
sudo adduser $USER1
sudo useradd -d /home/$USER1 -G $USER1 -K UMASK=022 --non-unique --uid $(id -u $USER1) --no-create-home --no-user-group $USER2
sudo passwd $USER2
# --non-unique: Allow the creation of a user account with duplicate UID
# --uid: The numerical value of the user's ID
# --no-create-home: Do not create the user's home directory.
# --no-user-group: Do not create a group with the same name as the user.
이 시점에서 동일한 UID를 가진 두 명의 사용자가 동일한 홈 디렉터리를 공유하고 둘 다 그룹에 속해야 합니다 $USER1
.
docker
그룹 에 추가하려면 개별적으로 추가해야 합니다.
usermod -aG docker $USER1
usermod -aG docker $USER2
docker
별칭을 만들 때 그룹을 추가하는 것이 더 쉬울 수도 있습니다.
sudo useradd -d /home/$USER1 -G ${USER1},docker -K UMASK=022 --non-unique --uid $(id -u $USER1) --no-create-home --no-user-group $USER2
$USER1
또는 그룹 대신 인증을 위해 이러한 사용자 간에 공유된 그룹을 사용하도록 Docker 구성을 변경할 수 있습니다 docker
.