W którym momencie tworzony jest plik ~ / .bashrc?

21

Na przykład, jeśli miałbym uruchomić polecenie adduser test, czy plik .bashrc jest tworzony automatycznie po utworzeniu katalogu domowego użytkownika test? Jeśli nie jest tworzony podczas tworzenia użytkownika, na jakich warunkach jest tworzony?

Ponadto, jeśli dodam plik .bashrc do katalogu domowego użytkownika, czy zostanie on nadpisany przez system operacyjny?

Z góry dziękuję.

Michael
źródło
2
Jeśli tylko spróbujesz, dowiesz się o wiele szybciej niż tutaj.
Stig Hemmer,

Odpowiedzi:

30

W większości przypadków początkowe pliki użytkownika (w tym .bashrc) są tworzone podczas tworzenia użytkownika. Są to kopie plików przechowywanych w katalogu „szkielet” o nazwie /etc/skel. Istnieją dwa główne polecenia:

  • useradd jest poleceniem back-end, jeśli użyjesz go bezpośrednio (bez żadnych opcji), zostanie utworzony tylko użytkownik systemu (i jego grupa):

    $ sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    • useraddutworzy katalog domowy i zapełni go kopią, /etc/skeljeśli -m --create-homeopcja jest podana. Dzięki za komentarz do @jwodder.

    • Opcja -s --shellzmieni nazwę powłoki logowania nowego użytkownika. Bez względu na to, jaka jest powłoka logowania nowego użytkownika, cała zawartość katalogu „szkielet” /etc/skelzostanie wypełniona do katalogu domowego nowego użytkownika.

    • Z -k --create-homeopcją można zdefiniować inny katalog szkieletowy .

    • Plik konfiguracyjny tego polecenia to /etc/default/useradd.

  • adduserjest przyjazny dla użytkownika i interaktywny interfejs użytkownika useradd. To polecenie domyślnie skopiuje pliki z /etc/skelkatalogu użytkownika $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
    • Plik konfiguracyjny tego polecenia to /etc/adduser.conf.

    • Domyślna wartość powłoki logowania nowego użytkownika jest określana przez zmienną DSHELL=. Można to również określić za pomocą opcji --shell. Bez względu na to, jaka jest powłoka logowania nowego użytkownika, cała zawartość katalogu „szkielet” /etc/skelzostanie wypełniona do katalogu domowego nowego użytkownika.

    • SKEL=Zmienna w tym pliku określa domyślny katalog „szkieletowe” pliki użytkownika.

    • Ta opcja --no-create-homewymusi, aby polecenie addusernie tworzyło katalogu domowego użytkownika, odpowiednio zawartość katalogu „szkielet” nie zostanie skopiowana.

    • Jeśli zostanie wywołany z jednym argumentem nie będącym opcją i --systemopcją, adduserdoda użytkownika systemowego ... Katalog domowy jest tworzony według tych samych reguł, co dla zwykłych użytkowników. Nowy użytkownik systemu będzie miał powłokę /bin/false(chyba że zostanie to zastąpione --shellopcją) i wyłączone logowanie. Szkieletowe pliki konfiguracyjne nie są kopiowane. ... ze strony podręcznika.


Dodatkowo, gdy użytkownik jest tworzony za pomocą dowolnego narzędzia GUI as User Accounts, wynik jest identyczny z wynikiem polecenia adduser.


Bibliografia:

pa4080
źródło
2
useraddutworzy również katalog domowy i zapełni go kopią, /etc/skeljeśli -mopcja jest podana.
jwodder
4
Drugi blok kodu nadal używa useraddpolecenia; czy to miało być adduser?
David Z
2
Konta użytkowników również korzystają adduser, prawda?
Gunnar Hjalmarsson,