Я хотел бы изменить местоположение домашнего каталога root с / root на / var / root. Я имел обыкновение делать это с usermod:
usermod -d /var/root root
Однако с последней версией usermod вы не можете изменить каталог текущего пользователя. Я пытаюсь изменить домашний каталог root во время загрузки в сценарии настройки системы, который запускается при первой загрузке системы, поэтому я не могу быть другим пользователем.
Есть ли другой способ изменить домашний каталог текущего пользователя, вошедшего в систему (в данном случае root)?
Я мог бы, вероятно, sed / etc / passwd, но это кажется небрежным.
linux
user-accounts
home-directory
Кевин С.
источник
источник
Ответы:
Единственная проблема с ручным редактированием
/etc/passwd
заключается в том, что может возникнуть гонка, если какой-то другой пользователь или программа изменит этот файл, пока вы будете держать его открытым в редакторе. В этом случае это изменение будет потеряно при сохранении файла. Если вы уверены, что эта проблема не относится к вам (другие пользователи не вошли в систему и т. Д.), Вы можете продолжить и редактировать/etc/passwd
Убедитесь, что домашний каталог root доступен при загрузке в однопользовательском режиме, например, он должен быть в корневой файловой системе.
Различные приемы, такие как создание дополнительного пользователя с uid 0, переключение на него и изменение домашнего каталога root, не будут работать. Проверки для текущего зарегистрированного пользователя основаны на uid.
источник
vipw
илиsudoedit
может защитить от # 1. Что касается # 2, отсутствующий домашний каталог обычно приводит только к предупреждению.