サーバー間でホームディレクトリを共有しながらユーザーを管理する

サーバー間でホームディレクトリを共有しながらユーザーを管理する

ホーム ディレクトリを共有する Ubuntu サーバーが 2 台あります。server1 の /home ディレクトリは、server2 の /home ディレクトリとしてマウントされます。両方のサーバーへのアクセス権を新しいユーザーに付与しようとすると問題が発生します。各サーバーで同じユーザー名を使用して adduser コマンドを使用します。ただし、これを行うと UID が一致しないため、server2 のアカウントでホーム ディレクトリにアクセスしたときに、ユーザーにはホーム ディレクトリ内のファイルへのアクセス許可が与えられません。

ユーザーがホーム ディレクトリとともに作成されたサーバー 1 上。(問題ないようです)

selah@server1:~$ tail -n 2 /etc/passwd
dfulgon:x:1083:1087:,,,:/home/dfulgon:/bin/bash
swartp:x:1085:1089:,,,:/home/swartp:/bin/bash

selah@server1:~$ ll -a /home/dfulgon | tail -n 3
-rw-rw----  1 dfulgon dfulgon   25 Jun  2 13:41 .my.cnf~
-rw-r--r--  1 dfulgon dfulgon  675 Jun  2 13:35 .profile
drwxrwxr-x  2 dfulgon dfulgon 4096 Jun  2 14:27 .ssh/

同じ名前のユーザー アカウントが作成されているが、他のサーバーのホーム ディレクトリが使用されているサーバー 2: (アクセス許可が間違っており、間違ったユーザーを指しています)

selah@server2:~$ tail -n 2 /etc/passwd
bslf:x:1083:1087:,,,:/home/bslf:/bin/bash
dfulgon:x:1087:1091:,,,:/home/dfulgon:/bin/bash

selah@server2:~$ ll -a /home/dfulgon | tail -n 3
-rw-rw----  1 bslf bslf   25 Jun  2 13:41 .my.cnf~
-rw-r--r--  1 bslf bslf  675 Jun  2 13:35 .profile
drwxrwxr-x  2 bslf bslf 4096 Jun  2 14:27 .ssh/

共有ホームディレクトリの利便性を維持しながら、この問題を克服する良い方法はありますか?

答え1

最も簡単な方法は、何らかの中央データベースにアカウントを作成することです。最近では、ほとんどの人が何らかの形式の LDAP データベースを使用しています。ただし、安全でない旧式の方法を採用したい場合は、NIS も検討できます (やめてください)。

もう 1 つのオプションは、構成管理ツールを使用してアカウントを作成し、UID を同期しておくことです。つまり、Puppet を使用してアカウントを作成し、必要な特定の UID/GID を定義できます。

NFS ID マッパーを使用してシステム間で ID を変換することはできますが、管理上の悪夢になる可能性があります。

答え2

私たちが採用する解決策は次のとおりです。

両方の /etc/passwd ファイルをチェックして、次の適切な GID と UID を選択します。次に、ユーザー作成プロセス中に次のように指定します。

addgroup -g $GID $username
adduser -g $GID -u $UID $username 

関連情報