両方のログインが実際に同じユーザーになるように、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を持つ2人のユーザーが同じホームディレクトリを共有し、両方がグループに属している必要があります$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
。