ไฟล์ ~ / .bashrc ถูกสร้างขึ้นที่จุดใด


21

ตัวอย่างเช่นถ้าฉันต้องรันคำสั่งadduser testจะมีการสร้าง. bashrc โดยอัตโนมัติเมื่อสร้างโฮมไดเร็กตอรี่สำหรับผู้ใช้testหรือไม่? หากยังไม่ได้สร้างเมื่อสร้างผู้ใช้ภายใต้เงื่อนไขใดที่สร้างขึ้น

นอกจากนี้หากฉันเพิ่มไฟล์. bashrc ลงในโฮมไดเรกทอรีของผู้ใช้ระบบปฏิบัติการนั้นจะถูกเขียนทับหรือไม่

ขอบคุณล่วงหน้า.


2
ถ้าคุณลองมันคุณจะรู้ได้เร็วกว่าการถามที่นี่
เฮมเมอร์

คำตอบ:


30

ในกรณีส่วนใหญ่ไฟล์ผู้ใช้เริ่มต้น (รวมถึง.bashrc) จะถูกสร้างขึ้นเมื่อผู้ใช้ถูกสร้างขึ้น พวกเขาเป็นสำเนาของไฟล์ที่เก็บไว้ในไดเรกทอรี 'โครงเหล็ก' /etc/skelชื่อ มีสองคำสั่งหลัก:

  • useradd เป็นคำสั่งแบ็คเอนด์หากคุณใช้โดยตรง (โดยไม่มีตัวเลือกใด ๆ ) เพียงแค่ผู้ใช้ระบบ (และกลุ่ม) จะถูกสร้างขึ้น:

    $ sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    • useraddจะสร้างโฮมไดเร็กตอรี่และเติมด้วยสำเนา/etc/skelหาก-m --create-homeมีการจัดหาตัวเลือก. ขอบคุณสำหรับความคิดเห็นนี้ที่ @jwodder

    • ตัวเลือก-s --shellจะเปลี่ยนชื่อของเปลือกเข้าสู่ระบบของผู้ใช้ใหม่ ไม่ว่าเชลล์ล็อกอินของผู้ใช้ใหม่จะเป็นอะไรเนื้อหาทั้งหมดของไดเรกทอรี 'โครงกระดูก' /etc/skelจะถูกใส่ลงในโฮมไดเร็กตอรี่ของผู้ใช้ใหม่

    • เย็นไดเรกทอรี 'โครงกระดูก' ที่แตกต่างกันจะถูกกำหนดด้วย-k --create-homeตัวเลือก

    • /etc/default/useraddแฟ้มการกำหนดค่าของคำสั่งนี้คือ

  • adduserคือใช้งานง่ายและการโต้ตอบ front-end useraddของ คำสั่งนี้จะคัดลอกไฟล์จาก/etc/skelไปยัง$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
    • /etc/adduser.confแฟ้มการกำหนดค่าของคำสั่งนี้คือ

    • ค่าเริ่มต้นสำหรับเปลือกเข้าสู่ระบบของผู้ใช้ใหม่เป็น deteminated DSHELL=โดยตัวแปร --shellมันอาจจะยังระบุผ่านทางตัวเลือก ไม่ว่าเชลล์ล็อกอินของผู้ใช้ใหม่จะเป็นอะไรเนื้อหาทั้งหมดของไดเรกทอรี 'โครงกระดูก' /etc/skelจะถูกใส่ลงในโฮมไดเร็กตอรี่ของผู้ใช้ใหม่

    • SKEL=ตัวแปรในไฟล์นี้ระบุไดเรกทอรีเริ่มต้นที่มี 'โครงเหล็ก' ไฟล์ของผู้ใช้

    • ตัวเลือก--no-create-homeจะบังคับให้คำสั่งadduserไม่สร้างโฮมไดเรกทอรีผู้ใช้ตามลำดับเนื้อหาของไดเรกทอรี 'โครงกระดูก' จะไม่ถูกคัดลอก

    • หากถูกเรียกพร้อมกับอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกหนึ่งตัว--systemเลือกadduserจะเพิ่มผู้ใช้ระบบ ... โฮมไดเรกทอรีถูกสร้างขึ้นโดยกฎเดียวกันกับผู้ใช้ปกติ ผู้ใช้ระบบใหม่จะมีเชลล์/bin/false(ยกเว้นแทนที่ด้วย--shellตัวเลือก) และปิดการเข้าสู่ระบบ ไฟล์การกำหนดค่าโครงกระดูกจะไม่ถูกคัดลอก ... จากหน้าคู่มือ


นอกจากนี้เมื่อผู้ใช้ถูกสร้างขึ้นด้วยเครื่องมือ GUI ใด ๆ ก็ตามUser Accountsผลลัพธ์จะเหมือนกันกับคำสั่งadduserนั้น


อ้างอิง:


2
useraddจะสร้างโฮมไดเร็กตอรี่และเติมด้วยสำเนา/etc/skelหาก-mมีการจัดหาตัวเลือก.
jwodder

4
รหัสบล็อกที่สองของคุณยังคงใช้useraddในคำสั่ง คือการที่ควรจะเป็นadduser?
David Z

2
นอกจากนี้บัญชีผู้ใช้ยังใช้ประโยชน์adduserใช่หรือไม่
Gunnar Hjalmarsson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.