Próbuję zrozumieć administrację systemem w systemie Ubuntu. Na przykład tworzę fikcyjnego użytkownika przy użyciu
sudo useradd -d /home/linda linda
i passwd
aby utworzyć hasło. Sprawdzam, czy dokonano wpisu za pomocącat /etc/passwd
linda:x:1004:1004::/home/linda:/bin/sh
Jednak kiedy ja su - linda
to rozumiem
No directory, logging in with HOME=/
i faktycznie nie utworzono katalogu domowego. czego mi brakuje?
Dzięki.
command-line
bash
users
home-directory
tchakravarty
źródło
źródło
adduser
ale nadal utworzony katalog domowy zawiera tylko plikexamples.desktop
i nic więcej. Jak mogę zmusić Ubuntu do utworzenia domyślnych folderów Pulpit, Pobrane pliki i tak dalej? (Jestem zalogowany przez ssh)adduser
nie utworzy katalogu, jeśli ktoś zmienił CREATE_HOME w /etc/login.defs na „no”. Możesz to zmienić przy pomocy-m
flagi.możesz to naprawić, po prostu tworząc katalog domowy.
spróbuj zalogować się ponownie, a to powinno działać.
źródło
Zgodnie z
man useradd
,-d /home/linda
opcja ta nie będzie utworzyć katalog/home/linda
, jeśli tego brakuje. Musisz więc utworzyć go ręcznie. Aby to zrobić, uruchom następujące polecenia w terminalu:Zobacz także: Jak utworzyć folder domowy użytkownika po utworzeniu konta?
źródło
Sprawdź,
/etc/defaults/useradd
czy chcesz zmienić wartości domyślne. Posługiwać się:useradd -m -d /home/joe -s /bin/bash
.źródło
-m, --create-home Create the user's home directory if it does not exist. The files and directories contained in the skeleton directory (which can be defined with the -k option) will be copied to the home directory. useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.
@astrojuanluMożesz również zmodyfikować,
/etc/pam.d/common-session
aby katalog domowy użytkownika był tworzony przy pierwszym logowaniu. Dodaj następujący wiersz do tego pliku.Jest to szczególnie przydatne, jeśli system znajduje się w sieci, w której użytkownikami zarządza się zewnętrznie na komputerze, na przykład przez LDAP.
źródło
Użyj
-m
zamiast-d
, więc katalog zostanie utworzony dla Ciebie:sudo useradd -m linda
Ponadto, jeśli
linda
jest normalnym użytkownikiem, możesz użyć jej/bin/bash
jako domyślnejshell
:sudo useradd -m linda -s /bin/bash
źródło
Dodaj poniższy wpis
/etc/login.defs
i zapisz:Teraz spróbuj utworzyć konta użytkowników. Spowoduje to utworzenie katalogu domowego.
źródło
Użyj
adduser
.useradd
musisz sam dodać wszystkie opcje. W tym uprawnienia i niektóre inne rzeczy.adduser
robi to w oparciu o rozsądne wartości domyślne (i dodaje również sam katalog domowy).Jeśli potrzebujesz użyć addusera, prawdopodobnie potrzebujesz opcji -b razem z opcją -d!
źródło
Jeśli
/home/linda
nie jest obecny przed dodaniem linda jako użytkownik, musisz również dodać--create-home
.źródło
Najbardziej prawdopodobnym powodem dlaczego nie masz katalog domowy jest tworzony, ponieważ nie mają
CREATE_HOME yes
in/etc/login.defs
.Możesz to naprawić, postępując zgodnie z sugestiami @OmPS lub @Radu Rădeanu.
Ale jest wiele sposobów na rozwiązanie tego problemu w przyszłości za pomocą jednego z poniższych poleceń:
Wynik
sudo adduser linda
Domyślne wartości dla adduser są wybierane,
/etc/adduser.conf
jeśli--home
opcja nie jest określona. Pamiętaj, że kopiuje również/etc/skel
zawartość.Użyj adduser z
--home
Taki sam jak poprzednia opcja, z tą różnicą, że możesz tego chcieć, jeśli katalog domowy użytkowników jest inny niż nazwa użytkownika, którą przypisałeś.
Podaj katalog podstawowy do
useradd
polecenia:Użyj login.defs: zmodyfikuj
/etc/login.defs
i dodaj poniższy wiersz przed wykonaniemsudo useradd
:Uwaga: jeśli tak
man login.defs
, to obecnie mówiWiele funkcji, które były wcześniej oferowane przez pakiet haseł typu shadow, jest teraz obsługiwanych przez PAM. Zatem /etc/login.defs nie jest już używany przez passwd (1), a mniej używany przez login (1) i su (1). Zamiast tego zapoznaj się z odpowiednimi plikami konfiguracyjnymi PAM.
Użyj modułu PAM pam_mkhomedir: na
man pam_mkhomedir
stronie dodaj poniższy wiersz do/etc/pam.d/login
:źródło