在什么时候创建了〜/ .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的终端命令