Змінення місця розташування домашнього каталогу root


10

Я хотів би змінити розташування домашнього каталогу root з / root на / var / root. Раніше я міг це робити з usermod:

usermod -d /var/root root

Однак із останньою версією usermod ви не можете змінити каталог поточно зареєстрованого користувача. Я намагаюся змінити домашній каталог root під час завантаження в сценарії налаштування системи, який запускається під час першого завантаження системи, тому я не можу бути іншим користувачем.

Чи є інший спосіб змінити домашню директорію користувача, який наразі увійшов (корінь у цьому випадку)?

Я, певно, міг sed / etc / passwd, але це здається неохайним.


Жорстке посилання / root на / var / root?
Гаррет

Я думаю, ви можете змінювати / etc / passwd вручну.
billc.cn

Відповіді:


11
  1. Єдина проблема з редагуванням вручну /etc/passwdполягає в тому, що може відбутися перегони, якщо якийсь інший користувач або програма змінить цей файл, поки ви тримаєте його відкритим у своєму редакторі. У цьому випадку ця зміна буде втрачена під час збереження файлу. Якщо ви впевнені, що ця проблема не стосується вас (не ввійшли інші користувачі тощо), ви можете продовжити та редагувати/etc/passwd

  2. Будьте впевнені, що домашній dir root доступний під час завантаження в однокористувацькому режимі, наприклад, він повинен бути в кореневій файловій системі.

  3. Різні хитрощі, такі як створення вторинного користувача з uid 0, перехід на нього та зміна домашнього режиму root, не спрацюють. Перевірки на даний момент увійшли користувач на основі uid.


5
Використання vipwабо sudoeditзахист від №1. Що стосується №2, відсутній домашній каталог зазвичай призводить лише до попередження.
користувач1686

@grawity: Дякую за інформацію vipw, я про це не знав. Я думаю, що використання vipw - це, мабуть, найкраще рішення в цілому.
haimg
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.