Назад | Перейти на главную страницу

Как удалить домашний каталог пользователя, не удаляя пользователя?

[root@Acheron ~]# systemctl status shadow
● shadow.service - Verify integrity of password and group files
   Loaded: loaded (/usr/lib/systemd/system/shadow.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2019-05-14 13:59:34 EDT; 1s ago
  Process: 25502 ExecStart=/bin/sh -c /usr/bin/pwck -r || r=1; /usr/bin/grpck -r && exit $r (code=exited, status=1/FAILURE)
 Main PID: 25502 (code=exited, status=1/FAILURE)

May 14 13:59:34 Acheron systemd[1]: Started Verify integrity of password and group files.
May 14 13:59:34 Acheron sh[25502]: user 'netdata': directory '/home/netdata' does not exist
May 14 13:59:34 Acheron sh[25502]: pwck: no changes
May 14 13:59:34 Acheron systemd[1]: shadow.service: Main process exited, code=exited, status=1/FAILURE
May 14 13:59:34 Acheron systemd[1]: shadow.service: Failed with result 'exit-code'.

У этого пользователя не должно быть домашнего каталога. Я хочу обновить его запись в /etc/passwd чтобы удалить домашний каталог. Я мог бы редактировать этот файл напрямую, но это кажется небезопасным. Есть ли способ лучше?

Ваше намерение, похоже, состоит в том, чтобы убедиться, что учетная запись пользователя существует, но не может использоваться для входа в систему.

Предполагая, что я прав, я бы сделал три шага.

  • Измените запись пользователя и укажите общий домашний каталог
  • Измените запись пользователя и укажите оболочку nologin
  • Удалите предыдущий домашний каталог пользователя.

Сначала удалите домашний каталог пользователя (это важно сделать перед изменением домашнего каталога пользователя). rm -rf ~username

Первые два могут быть достигнуты с помощью команды usermod: usermod -d /new/shared/directory -s /sbin/nologin

Обратите внимание: при создании новых учетных записей с помощью useradd вы можете указать эти параметры (и многие другие).

Примеры usermod, по большей части useradd работает одинаково

Это зависит от вашего намерения. Вы хотите, чтобы пользователь входил в систему с помощью интерактивной оболочки или вы хотите, чтобы учетная запись пользователя была непригодной для использования с помощью обычных средств входа в систему? У меня нет репутации, чтобы напрямую комментировать ваш вопрос, поэтому я задаю уточняющие вопросы с помощью «ответа».

Глядя на другие записи в /etc/passwd кажется, что пользователи «без домашнего каталога» на самом деле просто установили свой домашний каталог на /.

я использовал usermod -d / netdata чтобы обновить домашний каталог пользователя до соответствия.