web-dev-qa-db-fra.com

À quel moment le fichier ~ / .bashrc est-il créé?

Par exemple, si je devais exécuter la commande adduser test, le fichier .bashrc est-il créé automatiquement lors de la création du répertoire de base de l'utilisateur test? S'il n'est pas créé lors de la création de l'utilisateur, dans quelles conditions est-il créé?

De plus, si j'ajoute un fichier .bashrc au répertoire de base d'un utilisateur, sera-t-il écrasé par le système d'exploitation?

Merci d'avance.

20
Michael

Dans la plupart des cas, les fichiers utilisateur initiaux (y compris .bashrc) sont créés lors de la création de l'utilisateur. Ce sont des copies des fichiers stockés dans le répertoire 'squelettique', nommé /etc/skel. Il y a deux commandes principales:

  • useradd est la commande dorsale, si vous l'utilisez directement (sans aucune option), seul un utilisateur système (et ses groupe) sera créé:

    $ Sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    
    • useradd va créer un répertoire de base et le remplir avec une copie de /etc/skel si l'option -m--create-home est fournie. Merci pour ce commentaire à @jwodder.

    • L'option -s--Shell modifiera le nom du nouvel identifiant Shell de l'utilisateur. Quel que soit le shell de connexion du nouvel utilisateur, l'intégralité du contenu du répertoire 'squelettique' /etc/skel sera renseignée dans le répertoire de base du nouvel utilisateur.

    • Un répertoire 'squelettique' différent peut être défini avec l'option -k--create-home.

    • Le fichier de configuration de cette commande est /etc/default/useradd.

  • adduser est une interface conviviale et interactive de useradd. Cette commande copiera les fichiers de /etc/skel dans le répertoire $HOME de l'utilisateur par défaut:

    $ Sudo adduser new-user
    Adding user `new-user' ...
    Adding new group `new-user' (1002) ...
    Adding new user `new-user' (1002) with group `new-user' ...
    Creating home directory `/home/new-user' ...
    Copying files from `/etc/skel' ...
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    Changing the user information for new-user
    Enter the new value, or press ENTER for the default
            Full Name []: New User
            Room Number []:
            Work Phone []:
            Home Phone []:
            Other []:
    Is the information correct? [Y/n]
    
    $ ls -a /home/new-user/
    .   ..   .bash_logout   .bashrc   .config   examples.desktop   .profile   .Xdefaults
    
    • Le fichier de configuration de cette commande est /etc/adduser.conf.

    • La valeur par défaut du nouvel utilisateur de connexion Shell est définie par la variable DSHELL=. Il pourrait également être spécifié via l'option --Shell. Quel que soit le shell de connexion du nouvel utilisateur, l'intégralité du contenu du répertoire 'squelettique' /etc/skel sera renseignée dans le répertoire de base du nouvel utilisateur.

    • La variable SKEL= de ce fichier spécifie le répertoire par défaut contenant les fichiers utilisateur "squelettiques".

    • L'option --no-create-home force la commande adduser à ne pas créer de répertoire de base utilisateur. Le contenu du répertoire "skeletal" ne sera pas copié.

    • S'il est appelé avec un argument non-option et l'option --system, adduser ajoutera un utilisateur système ... Un répertoire de base est créé selon les mêmes règles que pour les utilisateurs normaux. Le nouvel utilisateur du système aura le Shell /bin/false (sauf en cas de substitution avec l’option --Shell) et les connexions seront désactivées. Les fichiers de configuration squelettiques ne sont pas copiés. ... à partir de la page de manuel.


De plus, lorsque l'utilisateur est créé avec n'importe quel outil graphique en tant que User Accounts , le résultat est identique à celui de la commande adduser.


Références:

29
pa4080