ホーム ディレクトリを共有する 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