Tại thời điểm nào thì tệp ~ / .bashrc được tạo?


21

Chẳng hạn, nếu tôi chạy lệnh adduser test, .bashrc có được tạo tự động khi tạo thư mục chính cho người dùng testkhông? Nếu nó không được tạo khi người dùng tạo, thì trong điều kiện nào nó được tạo?

Ngoài ra, nếu tôi thêm tệp .bashrc vào thư mục chính của người dùng, liệu nó có bị ghi đè bởi HĐH không?

Cảm ơn trước.


2
Nếu bạn chỉ thử nó, bạn sẽ tìm ra nhanh hơn nhiều so với bằng cách hỏi ở đây.
Stig Hemmer

Câu trả lời:


30

Trong hầu hết các trường hợp, các tệp người dùng ban đầu (bao gồm .bashrc) được tạo khi người dùng được tạo. Chúng là bản sao của các tệp được lưu trữ trong thư mục 'bộ xương', được đặt tên /etc/skel. Có hai lệnh chính:

  • useradd là lệnh back-end, nếu bạn sử dụng trực tiếp (không có bất kỳ tùy chọn nào), chỉ người dùng hệ thống (và nhóm của nó) sẽ được tạo:

    $ sudo useradd new-user
    $ ls -la /home/new-user/
    ls: cannot access '/home/new-user/': No such file or directory
    
    • useraddsẽ tạo một thư mục chính và điền vào đó một bản sao /etc/skelnếu -m --create-hometùy chọn được cung cấp. Cảm ơn vì nhận xét này cho @jwodder.

    • Tùy chọn -s --shellsẽ thay đổi tên của vỏ đăng nhập của người dùng mới. Bất kể shell đăng nhập của người dùng mới là gì, toàn bộ nội dung của thư mục 'bộ xương' /etc/skelsẽ được đưa vào thư mục chính của người dùng mới.

    • Một thư mục 'bộ xương' khác được xác định với -k --create-hometùy chọn.

    • Các tập tin cấu hình của lệnh này là /etc/default/useradd.

  • adduserlà giao diện người dùng thân thiện và tương tác useradd. Lệnh này sẽ sao chép các tệp từ thư mục /etc/skelcủa người dùng $HOMEtheo mặc định:

    $ 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
    
    • Các tập tin cấu hình của lệnh này là /etc/adduser.conf.

    • Giá trị mặc định cho vỏ đăng nhập của người dùng mới được biến đổi theo biến DSHELL=. Nó cũng có thể được chỉ định thông qua tùy chọn --shell. Bất kể shell đăng nhập của người dùng mới là gì, toàn bộ nội dung của thư mục 'bộ xương' /etc/skelsẽ được đưa vào thư mục chính của người dùng mới.

    • Các SKEL=biến trong tập tin này xác định thư mục mặc định chứa tập tin người dùng 'xương'.

    • Tùy chọn --no-create-homesẽ buộc lệnh adduserkhông tạo thư mục gốc của người dùng, tương ứng nội dung của thư mục 'bộ xương' sẽ không được sao chép.

    • Nếu được gọi với một đối số không phải tùy chọn và --systemtùy chọn, addusersẽ thêm người dùng hệ thống ... Một thư mục chính được tạo theo cùng quy tắc như đối với người dùng bình thường. Người dùng hệ thống mới sẽ có hệ vỏ /bin/false(trừ khi được ghi đè bằng --shelltùy chọn) và đã tắt đăng nhập. Tập tin cấu hình bộ xương không được sao chép. ... từ trang hướng dẫn.


Ngoài ra, khi người dùng được tạo bằng bất kỳ công cụ GUI nào User Accounts, kết quả sẽ giống hệt với lệnh adduser.


Tài liệu tham khảo:


2
useraddcũng sẽ tạo một thư mục chính và điền vào đó một bản sao /etc/skelnếu -mtùy chọn được cung cấp.
jwodder

4
Khối mã thứ hai của bạn vẫn sử dụng useraddtrong lệnh; đó có phải là adduser?
David Z

2
Ngoài ra, Tài khoản người dùng sử dụng adduser, phải không?
Gunnar Hjalmarsson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.