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

21

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

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

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

Майкл
источник
2
Если бы вы просто попробовали это, вы бы узнали об этом гораздо быстрее, чем просто спросив здесь.
Стиг Хеммер,

Ответы:

30

В большинстве случаев исходные пользовательские файлы (в том числе .bashrc) создаются при создании пользователя. Это копии файлов, хранящихся в «скелетном» каталоге с именем /etc/skel. Есть две основные команды:

  • useradd это команда back-end, если вы используете ее напрямую (без каких-либо опций), будет создан только системный пользователь (и его группа):

    $ 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это удобный и интерактивный интерфейс 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. Независимо от того, что представляет собой оболочка для входа нового пользователя, все содержимое каталога «скелет» /etc/skelбудет заполнено в домашнем каталоге нового пользователя.

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

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

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


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


Ссылки:

pa4080
источник
2
useraddтакже создаст домашний каталог и заполнит его копией, /etc/skelесли -mопция включена.
jwodder
4
Ваш второй блок кода все еще используется useraddв команде; это должно было быть adduser?
Дэвид З
2
Кроме того, учетные записи пользователей используют adduser, не так ли?
Гуннар