В какой момент создается файл ~/.bashrc?

В какой момент создается файл ~/.bashrc?

Например, если я запущу команду adduser test, будет ли .bashrc создан автоматически при создании домашнего каталога пользователя test? Если он не создается при создании пользователя, то при каких условиях он создается?

Кроме того, если я добавлю файл .bashrc в домашний каталог пользователя, будет ли он перезаписан ОС?

Заранее спасибо.

решение1

В большинстве случаев начальные пользовательские файлы (включая .bashrc) создаются при создании пользователя. Они являются копиями файлов, хранящихся в каталоге 'skeletal', называемом /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изменит имя оболочки входа нового пользователя. Независимо от того, какая оболочка входа нового пользователя, все содержимое каталога 'skeletal' /etc/skelбудет загружено в домашний каталог нового пользователя.

    • С помощью этой опции можно определить другой «скелетный» каталог -k --create-home.

    • Файл конфигурации этой команды — /etc/default/useradd.

  • adduserудобный и интерактивный интерфейс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.

    • Значение по умолчанию для оболочки входа нового пользователя определяется переменной DSHELL=. Его также можно указать с помощью параметра --shell. Независимо от того, какая оболочка входа нового пользователя, все содержимое каталога 'skeletal' /etc/skelбудет загружено в домашний каталог нового пользователя.

    • Переменная SKEL=в этом файле указывает каталог по умолчанию, содержащий «скелетные» пользовательские файлы.

    • Эта опция --no-create-homeзаставит команду adduserне создавать домашний каталог пользователя, соответственно, содержимое каталога «skeletal» не будет скопировано.

    • Если вызвано с одним аргументом без опции и опцией --system, adduserдобавится системный пользователь... Домашний каталог создается по тем же правилам, что и для обычных пользователей. Новый системный пользователь будет иметь оболочку /bin/false(если не переопределено опцией --shell), а входы будут отключены.Файлы конфигурации скелета не копируются. ...со страницы руководства.


Кроме того, когда пользователь создается с помощью любого инструмента с графическим интерфейсом, напримерUser Accounts, результат идентичен результату команды adduser.


Использованная литература:

Связанный контент