Pada titik manakah file ~ / .bashrc dibuat?

21

Sebagai contoh, jika saya menjalankan perintah adduser test, apakah .bashrc dibuat secara otomatis saat membuat direktori home untuk pengguna test? Jika tidak dibuat saat membuat pengguna, dalam kondisi apa ia dibuat?

Juga, jika saya menambahkan file .bashrc ke direktori home pengguna, apakah akan ditimpa oleh OS?

Terima kasih sebelumnya.

Michael
sumber
2
Jika Anda baru mencobanya, Anda akan menemukan lebih cepat daripada dengan bertanya di sini.
Stig Hemmer

Jawaban:

30

Dalam kebanyakan kasus, file pengguna awal (termasuk .bashrc) dibuat ketika pengguna dibuat. Itu adalah salinan dari file yang disimpan ke direktori 'skeletal', dinamai /etc/skel. Ada dua perintah utama:

  • useradd adalah perintah back-end, jika Anda menggunakannya secara langsung (tanpa opsi apa pun), hanya pengguna sistem (dan grupnya) yang akan dibuat:

    $ sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    • useraddakan membuat direktori home dan mengisinya dengan salinan /etc/skeljika -m --create-homeopsi disediakan. Terima kasih atas komentar ini ke @jwodder.

    • Opsi ini -s --shellakan mengubah nama shell login pengguna baru. Tidak peduli apa shell login pengguna baru, seluruh konten direktori 'skeletal' /etc/skelakan diisi ke direktori home user baru.

    • Direktori 'skeletal' yang berbeda dapat didefinisikan dengan -k --create-homeopsi.

    • File konfigurasi dari perintah ini adalah /etc/default/useradd.

  • adduseradalah front-end yang ramah pengguna dan interaktif useradd. Perintah ini akan menyalin file dari /etc/skelke $HOMEdirektori pengguna secara default:

    $ 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
    • File konfigurasi dari perintah ini adalah /etc/adduser.conf.

    • Nilai default untuk shell login pengguna baru ditentukan oleh variabel DSHELL=. Bisa juga ditentukan melalui opsi --shell. Tidak peduli apa shell login pengguna baru, seluruh konten direktori 'skeletal' /etc/skelakan diisi ke direktori home user baru.

    • The SKEL=variabel dalam file ini menentukan direktori default yang berisi 'kerangka' file pengguna.

    • Opsi ini --no-create-homeakan memaksa perintah adduseruntuk tidak membuat direktori home user, masing-masing isi dari direktori 'skeletal' tidak akan disalin.

    • Jika dipanggil dengan satu argumen non-opsi dan --systemopsi, adduserakan menambah pengguna sistem ... Direktori rumah dibuat dengan aturan yang sama seperti untuk pengguna normal. Pengguna sistem baru akan memiliki shell /bin/false(kecuali ditimpa dengan --shellopsi), dan telah menonaktifkan login. File konfigurasi kerangka tidak disalin. ... dari halaman manual.


Selain itu, ketika pengguna dibuat dengan alat GUI apa pun User Accounts, hasilnya identik dengan perintah adduser.


Referensi:

pa4080
sumber
2
useraddjuga akan membuat direktori home dan mengisinya dengan salinan /etc/skeljika -mopsi disediakan.
jwodder
4
Blok kode kedua Anda masih menggunakan useradddalam perintah; apakah itu seharusnya adduser?
David Z
2
Juga, Akun Pengguna memanfaatkan adduser, bukan?
Gunnar Hjalmarsson