Изменить пользователя, чтобы удалить домашний каталог

250
eponymous

Запись файла passwd для пользователя, связанного со службой (squeezelite), указывает, что у пользователя есть домашний каталог (/ home / squeezelite). Эта папка не существует (и я подозреваю, что она никогда не существовала).

Служба работает нормально, поэтому я склонен изменить файл passwd, чтобы указать, что у пользователя нет домашнего каталога. Есть ли способ сделать это с помощью usermod или я должен отредактировать файл passwd напрямую? Если ответ состоит в том, чтобы отредактировать файл passwd, что я должен изменить? Заменить /home/squeezeliteна/

1

2 ответа на вопрос

1
RalfFriedl

От man usermod

-d, --home HOME_DIR

Новый логин пользователя.

Если старый дом не имеет значения, новый дом, вероятно, также не будет иметь значения, но вы можете использовать что-то вроде того, /var/nonexistentчтобы показать, что домашний каталог не нужен или должен существовать.

0
Fanatique

Вы можете использовать ответ @ RalfFriedl и использовать -dопцию, которая используется в основном /nonexistentдля этого случая, или вы можете отредактировать /etc/passwdфайл:

Просто удалите /home/squeezelite:
из чего-то вроде:

squeezelite:x:1001:1001::/home/squeezelite: 

Вы можете сделать это:

squeezelite:x:1001:1001::: 

или же

squeezelite:x:1001:1001::/nonexistent: 

Вы также можете использовать корневой каталог /для домашнего каталога. Тем не менее, мое главное предложение - просто удалить /home/squeezeliteиз passwdфайла. Тогда у пользователя не будет домашнего каталога.

Будет ли указание `` / nonexistent`` и `` / var / nonexistent`` удовлетворять `` shadow.service``, который завершается ошибкой с `` user 'squeezelite': directory '/ home / squeezelite' не существует``. eponymous 5 лет назад 0
@eponymous нет, не будет. Это все еще скажет, что каталог не существует. Вот почему я предлагаю первый пример, сделав его `squeezelite: x: 1001: 1001 :::` Fanatique 5 лет назад 0
Интересно, что `` shadow.service`` возражал против того, чтобы оставить поле пустым, поэтому я ввел `` / ``, что и было принято. Благодарю. eponymous 5 лет назад 0
Я думаю, что Арч не принимает это тогда. У меня на Debian 9 это сработало. Fanatique 5 лет назад 0

Похожие вопросы