在什么时候创建了〜/ .bashrc文件?

例如,如果我要运行命令adduser test ,是否在创建用户test的主目录时自动创建.bashrc? 如果它不是在用户创建时创建的,那么它在什么条件下创建?

另外,如果我将.bashrc文件添加到用户的主目录中,它是否会被操作系统覆盖?

提前致谢。

在大多数情况下,创建用户时会创建初始用户文件(包括.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 
    • 如果提供了-m --create-home选项, useradd将创建一个主目录并使用/etc/skel的副本填充它。 感谢@jwodder的评论 。

    • 选项-s --shell将更改新用户的登录shell的名称。 无论新用户的登录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

    • 新用户登录shell的默认值由变量DSHELL= 。 它也可以通过选项--shell指定。 无论新用户的登录shell是什么,“骨架”目录/etc/skel的整个内容都将填充到新用户的主目录中。

    • 此文件中的SKEL=变量指定包含“骨架”用户文件的默认目录。

    • 选项--no-create-home将强制命令adduser不创建用户主目录,分别不会复制’skeletal’目录的内容。


此外,使用任何GUI工具创建用户作为User Accounts ,结果与命令adduser的结果相同。


参考文献:

  • adduser和useradd有什么区别?

  • “adduser”和“useradd”有什么区别?

  • 主目录未创建

  • AddUsersHowto – Ubuntu文档社区Wiki

  • 什么是* nix命令来查看用户的默认登录shell?

  • 用于列出可用shell的终端命令