У меня есть два сервера Ubuntu, которые совместно используют домашние каталоги. Каталог /home с сервера server1 смонтирован как каталог /home на сервере server2. У меня возникла проблема при попытке предоставить новому человеку доступ к обоим серверам. Я использую команду 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. (не надо).
Другой вариант — использовать инструмент управления конфигурацией для создания учетных записей и синхронизировать UID. Таким образом, вы можете создавать учетные записи с помощью puppet и определять конкретные UID/GID, которые вам нужны.
Вы можете использовать NFS ID Mapper для преобразования идентификаторов между системами, но это может стать кошмаром для управления.
решение2
Решение, которое мы выбираем:
Проверьте оба файла /etc/passwd и выберите следующие подходящие GID и UID. Затем укажите их во время процесса создания пользователя, как здесь.
addgroup -g $GID $username
adduser -g $GID -u $UID $username