Come posso fare? Ho creato un utente senza una home directory e ora voglio crearne una. Non solo una cartella chiamata new_user, voglio la home directory di default con tutte le sue cartelle e i file nascosti, ecc.
Le sottodirectory (Documenti, Download, ecc...) sono create automaticamente quando l'utente effettua il primo accesso attraverso GNOME, a condizione che la directory home sia creata con i permessi corretti. Ecco una dimostrazione:
pre> alaa@aa-lu:~$ sudo useradd testinguser suaa@aa-lu:~$ sudo passwd testinguser Inserire la nuova password UNIX: Riscrivi la nuova password UNIX: passwd: password aggiornata con successo alaa@aa-lu:~$ sudo ls -l /home totale 20 drwxr-xr-x 55 alaa alaa 4096 22 agosto 22:00 alaa drwx------ 2 root 16384 Jun 5 09:46 lost+found alaa@aa-lu:~$ sudo mkdir /home/testinguser alaa@aa-lu:~$ sudo chown testinguser:testinguser /home/testinguser alaa@aa-lu:~$ ls -l /home totale 24 drwxr-xr-x 55 alaa alaa 4096 22 agosto 22:00 alaa drwx------ 2 root 16384 Jun 5 09:46 lost+found drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:03 testinguser alaa@aa-lu:~$ ls -l /home/testinguser/ totale 0 alaa@aa-lu:~$ /pre>
Puoi controllare che la home directory dell'utente sia impostata correttamente controllando la voce in /etc/passwd
. Dovresti, per default, vedere la home directory impostata su /home/testinguser
:
pre> alaa@aa-lu:~$ grep testinguser /etc/passwd testinguser:x:1001:1001::/home/testinguser:/bin/sh /pre>
Se non vedi la directory home /home/testinguser
lì, dovrai eseguire il comando sudo usermod -d /home/testinguser testinguser
per aggiornarla, anche se non dovresti aver bisogno di usare questo comando perché dovrebbe essere impostato di default (secondo le manpages di useradd
).
Ho quindi effettuato il logout dal mio account, e ho effettuato nuovamente il login con testinguser
, ed ecco le sottodirectory create automaticamente:
pre> alaa@aa-lu:~$ ls -l /home/testinguser/ totale 36 drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Desktop drwxr-xr-x 2 testinguser testinguser 4096 23 agosto 10:05 Documenti drwxr-xr-x 2 testinguser testinguser 4096 23/08 10:05 Download drwxr-xr-x 2 testinguser testinguser 4096 23/08 10:05 Musica drwxr-xr-x 2 testinguser testinguser 4096 23 agosto 10:07 Immagini drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Pubblico drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Modelli drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Video Prego;
Non ho avuto bisogno di copiare il contenuto di /etc/skel
.
Se possibile, puoi provare a seguire questi passi, creando un altro nuovo utente? Una volta che hai fatto, puoi rimuovere questo nuovo utente con sudo deluser testinguser && sudo rm -r /home/testinguser
.
Se tutto questo non ha funzionato con voi, allora credo che sia un bug.
**Aggiornamento: la soluzione è rotta e non funziona anche per me.
Se volete creare la home directory dell'utente se non esiste, eseguite il comando useradd
con il flag -m
. Questo copierà tutti i file dalla directory /etc/skel
.
useradd -m username
Potrebbe essere necessario configurare le impostazioni per il proprio sistema. Secondo la pagina man :
-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.
By default, if this option is not specified and CREATE_HOME is not enabled, no
home directories are created.
e indica ulteriormente :
CONFIGURATION
The following configuration variables in /etc/login.defs change the behavior
of this tool:
CREATE_HOME (boolean)
Indicate if a home directory should be created by default for new users.
Se avete creato il nuovo utente con il comando adduser
, non avete bisogno di creare una home directory per il nuovo utente. Una directory home chiamata con il nome dell'utente nella directory /home
, con le seguenti sottodirectory: Desktop, Download, Documenti, Musica, Immagini, Video (e altre), per il nuovo utente sarà creata automaticamente.
Se hai creato il nuovo utente con il comando useradd
, allora esegui i seguenti comandi nel terminale:
-- lingua: bash -->
sudo -i #enter your user password when you are asked
gedit /etc/passwd
per modificare il file /etc/passwd
come root (questo è il passo più importante). Trovate la linea con il nome del nuovo utente e impostate la home directory di default per lui in qualcosa del genere:
new_username:x:1001:1001::/home/new_username:/bin/sh
In questa linea potete anche aggiungere un nome reale per il nuovo utente, o impostare la shell di default. Qualcosa del genere:
new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash
Fate attenzione, non fate altre modifiche.
Dopo aver salvato il file, prima di uscire dall'account di root, eseguite i seguenti comandi:
-- lingua: bash -->
mkdir /home/new_username #to create the directory /home/new_username
cp -r /etc/skel/. /home/new_username #to copy skeleton files to /home/new_username
chown -R new_username:new_username /home/new_username #to change the owner of /home/new_username to the new user
Dopo tutto questo la cartella home per il nuovo utente sarà automaticamente popolata dopo il primo login.
Vedi anche: https://askubuntu.com/questions/152707/how-to-make-user-home-folder-after-account-creation