Řešení 1:
Můžete také použít mkhomedir_helper
Usage: /sbin/mkhomedir_helper <username> [<umask> [<skeldir>]]
Řešení 2:
Adresář uživatelů budete muset vytvořit ručně. To vyžaduje tři kroky:
- Vytvořte adresář v souladu s
/etc/passwd
, obvykle tam již bude položka /home/login. - Zkopírujte počáteční soubory z /etc/skel
-
A nakonec nastavte správná oprávnění:
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
BTW:Vždy mi chybí -m
možnost i pro useradd. Alespoň systémy založené na Debianu by měly mít adduser
příkaz, který doporučuji před useradd. Pokud jste vynechali -m
možnost, kterou by také stálo za zvážení deluser
a poté znovu vytvořte uživatele se správnými možnostmi.
Edit:Přidáno -r
pro kopírování také adresářů.
Řešení 3:
Může to znít jako hloupý nápad, ale pokud uživatelé ve skutečnosti nic nedělají, můžete to udělat:
cat /etc/passwd | cut -f 1 -d : >/tmp/users.list
Potom upravte soubor /tmp/users.list tak, aby obsahoval pouze požadované uživatele. Pak proveďte:
for i in `cat /tmp/users.list`
do
userdel $i
useradd -m $i
done
Mnoho distribucí založených na Redhat vám však vytvoří nový domovský adresář při prvním přihlášení, pokud je to uvedeno v /etc/passwd, kde by měl být adresář.
Chcete-li to otestovat, proveďte "su -" a zjistěte, zda to dělá "správnou věc". Pokud ne, výše uvedený skript bude podle mě fungovat docela dobře.
Řešení 4:
mkdir -p /home/john
chown john:john /home/john
usermod -d /home/john john
To by mělo stačit, jak věřím
Řešení 5:
Můžete použít něco jako pam_mkhomedir, abyste zabránili tomu, aby to někdy v budoucnu představovalo problém s některými uživateli. pam_mkhomedir je modul PAM, který automaticky vytvoří domovský adresář uživatele při přihlášení, pokud neexistuje, a naplní jej soubory z /etc/skel (nebo jakéhokoli adresáře skel, který určíte).
Toto je také pěkně škálovatelný přístup, protože tento problém bude i nadále řešit, pokud někdy v budoucnu přepnete své uživatelské úložiště na adresářovou službu, jako je LDAP.