Ab wann wird die ~ / .bashrc-Datei erstellt?

21

Wenn ich zum Beispiel den Befehl ausführen würde adduser test, wird die .bashrc-Datei beim Erstellen des Basisverzeichnisses für den Benutzer automatisch erstellt test? Wenn es nicht bei der Benutzererstellung erstellt wird, unter welchen Bedingungen wird es erstellt?

Auch wenn ich eine .bashrc-Datei zum Ausgangsverzeichnis eines Benutzers hinzufüge, wird diese vom Betriebssystem überschrieben?

Danke im Voraus.

Michael
quelle
2
Wenn Sie es nur probiert hätten, würden Sie es viel schneller herausfinden, als wenn Sie hier nachfragen.
Stig Hemmer

Antworten:

30

In den meisten Fällen werden die anfänglichen Benutzerdateien (einschließlich .bashrc) erstellt, wenn der Benutzer erstellt wird. Sie sind Kopien der Dateien, die im Verzeichnis 'skeletal' mit dem Namen gespeichert sind /etc/skel. Es gibt zwei Hauptbefehle:

  • useradd ist der Back-End-Befehl, wenn Sie ihn direkt (ohne Optionen) verwenden, wird nur ein Systembenutzer (und seine Gruppe) erstellt:

    $ sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    • useradderstellt ein Ausgangsverzeichnis und füllt es mit einer Kopie von, /etc/skelwenn die -m --create-homeOption angegeben ist. Danke für diesen Kommentar an @jwodder.

    • Die Option -s --shelländert den Namen der Anmeldeshell des neuen Benutzers. Unabhängig von der Anmeldeshell des neuen Benutzers wird der gesamte Inhalt des Verzeichnisses 'skeletal' /etc/skelin das Ausgangsverzeichnis des neuen Benutzers eingefügt.

    • Mit der -k --create-homeOption kann ein anderes 'Skelett'-Verzeichnis definiert werden .

    • Die Konfigurationsdatei dieses Befehls lautet /etc/default/useradd.

  • adduserist ein benutzerfreundliches und interaktives Front-End von useradd. Dieser Befehl kopiert die Dateien standardmäßig /etc/skelin das Benutzerverzeichnis $HOME:

    $ 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
    • Die Konfigurationsdatei dieses Befehls lautet /etc/adduser.conf.

    • Der Standardwert für die Anmeldeshell des neuen Benutzers wird durch die Variable festgelegt DSHELL=. Dies kann auch über die Option festgelegt werden --shell. Unabhängig von der Anmeldeshell des neuen Benutzers wird der gesamte Inhalt des Verzeichnisses 'skeletal' /etc/skelin das Ausgangsverzeichnis des neuen Benutzers eingefügt.

    • Die SKEL=Variable in dieser Datei gibt das Standardverzeichnis an, in dem sich die Benutzerdateien befinden.

    • Die Option --no-create-homezwingt den Befehl adduser, kein Benutzer- Ausgangsverzeichnis zu erstellen, bzw. der Inhalt des Verzeichnisses 'skeletal' wird nicht kopiert.

    • Bei einem Aufruf mit einem Argument ohne Option und der --systemOption adduserwird ein Systembenutzer hinzugefügt ... Ein Basisverzeichnis wird nach denselben Regeln wie für normale Benutzer erstellt. Der neue Systembenutzer verfügt über die Shell /bin/false(sofern diese nicht mit der --shellOption überschrieben wird ) und hat Anmeldungen deaktiviert. Skelettkonfigurationsdateien werden nicht kopiert. ... von der Manualseite.


Wenn der Benutzer mit einem GUI-Tool wie erstellt wird User Accounts, ist das Ergebnis mit dem des Befehls identisch adduser.


Verweise:

pa4080
quelle
2
useradderstellt auch ein Basisverzeichnis und füllt es mit einer Kopie von, /etc/skelwenn die -mOption angegeben ist.
Jwodder
4
Ihr zweiter Codeblock wird useraddim Befehl weiterhin verwendet . sein war das denn adduser?
David Z
2
Auch Benutzerkonten Marken verwenden adduser, nicht wahr?
Gunnar Hjalmarsson