Zmień lokalizację katalogu domowego root

10

Chciałbym zmienić lokalizację katalogu domowego root z / root na / var / root. Kiedyś mogłem to zrobić za pomocą usermod:

usermod -d /var/root root

Jednak w najnowszej wersji usermod nie można zmienić katalogu aktualnie zalogowanego użytkownika. Próbuję zmienić katalog główny roota podczas uruchamiania systemu za pomocą skryptu konfiguracji systemu, który jest uruchamiany przy pierwszym uruchomieniu systemu, więc nie mogę być żadnym innym użytkownikiem.

Czy istnieje inny sposób zmiany katalogu domowego aktualnie zalogowanego użytkownika (w tym przypadku root)?

Mógłbym prawdopodobnie sed / etc / passwd, ale to wydaje się niechlujne.

Kevin S.
źródło
Hard-link / root to / var / root?
Garrett,
Myślę, że możesz zmodyfikować / etc / passwd ręcznie.
billc.cn

Odpowiedzi:

11
  1. Jedynym problemem związanym z ręczną edycją /etc/passwdjest to, że może wystąpić wyścig, jeśli jakiś inny użytkownik lub program zmieni ten plik, gdy będzie on otwarty w edytorze. W takim przypadku zmiana zostanie utracona podczas zapisywania pliku. Jeśli masz pewność, że ten problem Cię nie dotyczy (nie zalogowali się inni użytkownicy itp.), Możesz przejść do edycji/etc/passwd

  2. Upewnij się, że katalog główny root jest dostępny podczas uruchamiania w trybie pojedynczego użytkownika, np. Powinien on znajdować się w głównym systemie plików.

  3. Różne sztuczki, takie jak tworzenie dodatkowego użytkownika z identyfikatorem UID 0, przełączanie się na niego i zmiana katalogu domowego root'a, nie będą działać. Kontrole dla aktualnie zalogowanego użytkownika są oparte na UID.

haimg
źródło
5
Używanie vipwlub sudoeditmoże chronić przed # 1. Jeśli chodzi o nr 2, brakujący katalog domowy zwykle powoduje jedynie ostrzeżenie.
user1686,
@grawity: Dzięki za informacje vipw, nie wiedziałem o tym. Myślę, że używanie vipw jest prawdopodobnie najlepszym rozwiązaniem.
haimg,