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

21

Par exemple, si je devais exécuter la commande adduser test, le .bashrc est-il créé automatiquement lors de la création du répertoire personnel 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 personnel d'un utilisateur, sera-t-il écrasé par le système d'exploitation?

Merci d'avance.

Michael
la source
2
Si vous venez de l'essayer, vous le découvrirez beaucoup plus rapidement qu'en demandant ici.
Stig Hemmer

Réponses:

30

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 «squelette», nommé /etc/skel. Il existe deux commandes principales:

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

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

    • L'option -s --shellchangera le nom du shell de connexion du nouvel utilisateur. Quel que soit le shell de connexion du nouvel utilisateur, tout le contenu du répertoire «squelette» /etc/skelsera rempli dans le répertoire de base du nouvel utilisateur.

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

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

  • adduserest un frontal convivial et interactif useradd. Cette commande copiera les fichiers depuis /etc/skeldans le répertoire de l'utilisateur $HOMEpar 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 shell de connexion du nouvel utilisateur est déterminée par la variable DSHELL=. Il pourrait également être spécifié via l'option --shell. Quel que soit le shell de connexion du nouvel utilisateur, tout le contenu du répertoire «squelette» /etc/skelsera rempli dans le répertoire de base du nouvel utilisateur.

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

    • L'option --no-create-homeforcera la commande adduserà ne pas créer de répertoire personnel pour l'utilisateur, respectivement le contenu du répertoire «squelette» ne sera pas copié.

    • S'il est appelé avec un argument non-option et l' --systemoption, adduserajoutera un utilisateur système ... Un répertoire personnel est créé selon les mêmes règles que pour les utilisateurs normaux. Le nouvel utilisateur système aura le shell /bin/false(à moins qu'il ne soit remplacé par l' --shelloption) et les connexions désactivées. Les fichiers de configuration squelette ne sont pas copiés. ... à partir de la page de manuel.


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


Les références:

pa4080
la source
2
useraddcréera également un répertoire personnel et le remplira avec une copie de /etc/skelsi l' -moption est fournie.
jwodder
4
Votre deuxième bloc de code utilise toujours useradddans la commande; était-ce censé être adduser?
David Z
2
De plus, les comptes d'utilisateurs utilisent adduser, n'est-ce pas?
Gunnar Hjalmarsson