Tento stručný průvodce vysvětluje, jak vytvořit domovský adresář pro stávajícího uživatele v operačních systémech Linux a Unix pomocí mkhomedir_helper
příkaz.
Úvod
Jak již víte, můžeme vytvořit nového uživatele v Linuxu a systémech podobných Unixu pomocí adduser
příkaz, jo? Ano to je správně! Když přidáme nového uživatele, ve výchozím nastavení se automaticky vytvoří domovský adresář příslušného uživatele.
Existuje také další příkaz pro vytváření uživatelů v Linuxu. Jmenuje se useradd
.
Poté, co jsem vytvořil několik uživatelů pomocí useradd
příkazu v Alpine Linuxu, všiml jsem si, že adresáře $HOME pro uživatele nejsou vytvořeny. Předtím si toho nejsem vědom.
Po přečtení useradd
manuálových stránek příkazu jsem si uvědomil, že jsem měl zahrnout -m
(nebo --create-home
) možnost vytvořit nové uživatele s adresářem $HOME jako níže:
$ sudo useradd -m user_name
Nebo,
$ sudo useradd --create-home user_name
Ale zapomněl jsem zahrnout tuto možnost a pokračoval jsem k vytvoření několika nových uživatelů. Pokud jste něco jako já, nemažte stávající uživatele a vytvořte je znovu pomocí -m
volba.
Můžete snadno vytvořit domovský adresář pro stávajícího uživatele v Linuxu pomocí mkhomedir_helper
bez smazání a opětovného vytvoření uživatele.
Vytvoření domovského adresáře pro stávajícího uživatele v Linuxu
mkhomedir_helper
je pomocný program pro pam_mkhomedir
modul. pam_mkhomedir
Modul PAM vytvoří domovský adresář uživatele, pokud při zahájení relace neexistuje.
Nejprve tento modul vytvoří domovské adresáře a poté je naplní obsahem zadaného adresáře skel. Výchozí hodnota umask
je 0022
a výchozí hodnota path-to-skel je /etc/skel
.
Dovolte mi ukázat vám příklad, který vysvětluje, jak vytvořit domovský adresář pro stávajícího uživatele pomocí mkhomedir_helper
příkaz.
Nejprve vytvořte nového uživatele s názvem ostechnix pomocí useradd
příkaz:
$ useradd ostechnix
Nastavte heslo pro uživatele:
$ passwd ostechnix
Nyní přepněte na nového uživatele:
$ su - ostechnix
Zobrazí se následující chybová zpráva:
su: warning: cannot change directory to /home/ostechnix: No such file or directory
Jak vidíte ve výše uvedeném výstupu, domovský adresář pro uživatele ostechnix neexistuje, proto tato chyba.
Pojďme si to ověřit pohledem do /home
adresář:
$ ls -l /home/ total 0 drwx------ 1 vagrant vagrant 72 Dec 15 13:19 vagrant
Je pravda, že pro uživatele ostechnix neexistuje žádný domovský adresář.
Vytvořme tedy domovský adresář pro stávajícího uživatele (tj. v našem případě ostechnix) pomocí mkhomedir_helper
příkaz.
Chcete-li tak učinit, nejprve se odhlaste od uživatele ostechnix, pokud jste již přihlášeni:
$ exit
A spusťte následující příkaz k vytvoření domovského adresáře pro uživatele s názvem ostechnix :
$ sudo mkhomedir_helper ostechnix
Upozorňujeme, že výše uvedený příkaz musíte spustit jako root
uživatel nebo jiný sudo
uživatel.
Nyní přepněte na uživatele otechnix:
$ su - ostechnix
Tentokrát neobdržíte žádnou varovnou zprávu, protože domovský adresář pro uživatele s názvem ostechnix byl vytvořen pomocí mkhomedir_helper
příkaz.
[[email protected] ~]$ pwd /home/ostechnix
Další podrobnosti naleznete na manuálových stránkách:
$ man mkhomedir_helper
Nyní víte, jak vytvořit domovské adresáře po vytvoření uživatelů. To může být užitečné, když zapomenete zahrnout -m
při vytváření uživatelů pomocí useradd
příkaz.
Místo použití useradd
, můžete použít adduser
příkaz, který automaticky vytvoří domovské adresáře uživatele bez jakýchkoli voleb.
Související čtení:
- Jak přesunout domovský adresář do nového oddílu nebo disku v systému Linux
- Přidávání, odstraňování a udělování oprávnění sudo uživatelům v systému Alpine Linux
- Přidat, odstranit a udělit uživatelům v Arch Linuxu oprávnění Sudo
- Přidat, odstranit a udělit uživatelům ve Fedoře oprávnění sudo
- Přidávání, odstraňování a udělování oprávnění sudo uživatelům v systému CentOS
- Přidávání, odstraňování a udělování oprávnění sudo uživatelům v Ubuntu
Vybraný obrázek od FreeCliparts z Pixabay.