An welchem ​​Punkt wird die Datei ~/.bashrc erstellt?

An welchem ​​Punkt wird die Datei ~/.bashrc erstellt?

Wenn ich beispielsweise den Befehl ausführe adduser test, wird die .bashrc-Datei dann automatisch bei der Erstellung des Home-Verzeichnisses für den Benutzer erstellt test? Wenn sie nicht bei der Benutzererstellung erstellt wird, unter welchen Bedingungen wird sie dann erstellt?

Wenn ich dem Home-Verzeichnis eines Benutzers eine .bashrc-Datei hinzufüge, wird diese dann vom Betriebssystem überschrieben?

Dank im Voraus.

Antwort1

In den meisten Fällen werden die ersten Benutzerdateien (einschließlich .bashrc) bei der Erstellung des Benutzers erstellt. Sie sind Kopien der Dateien, die im „Skelett“-Verzeichnis mit dem Namen gespeichert sind /etc/skel. Es gibt zwei Hauptbefehle:

  • useraddist 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
    
    • useraddwird ein Home-Verzeichnis erstellen und es mit einer Kopie füllen, /etc/skelwenn die -m --create-homeOption angegeben ist. Vielen Dank fürdieser Kommentaran @jwodder.

    • Die Option -s --shelländert den Namen der Login-Shell des neuen Benutzers. Unabhängig davon, wie die Login-Shell des neuen Benutzers lautet, /etc/skelwird der gesamte Inhalt des Verzeichnisses „Skeletal“ in das Home-Verzeichnis des neuen Benutzers übertragen.

    • -k --create-homeMit der Option kann ein anderes „Skelett“-Verzeichnis definiert werden .

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

  • adduserist benutzerfreundliches und interaktives Frontend vonuseraddDieser Befehl kopiert die Dateien standardmäßig /etc/skelin das Verzeichnis des Benutzers :$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 ist /etc/adduser.conf.

    • Der Standardwert für die Login-Shell des neuen Benutzers wird durch die Variable bestimmt DSHELL=. Er kann auch über die Option angegeben werden --shell. Unabhängig von der Login-Shell des neuen Benutzers /etc/skelwird der gesamte Inhalt des Verzeichnisses „skeletal“ in das Home-Verzeichnis des neuen Benutzers übertragen.

    • Die SKEL=Variable in dieser Datei gibt das Standardverzeichnis an, das die „Skelett“-Benutzerdateien enthält.

    • Die Option --no-create-homeerzwingt, adduserdass das Kommando kein Benutzer-Home-Verzeichnis erstellt bzw. der Inhalt des „Skelett“-Verzeichnisses nicht kopiert wird.

    • Wenn es mit einem Argument ohne Option und der --systemOption aufgerufen wird, adduserwird ein Systembenutzer hinzugefügt. Ein Home-Verzeichnis wird nach denselben Regeln wie für normale Benutzer erstellt. Der neue Systembenutzer hat die Shell /bin/false(sofern nicht mit der --shellOption überschrieben) und die Anmeldung ist deaktiviert.Skelettkonfigurationsdateien werden nicht kopiert. ...von der Handbuchseite.


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


Verweise:

verwandte Informationen