Linux에서 사용자에게 별칭을 효과적으로 추가하는 방법

Linux에서 사용자에게 별칭을 효과적으로 추가하는 방법

두 로그인이 실제로 동일한 사용자가 되도록 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.

관련 정보