Answers:
在大多数情况下,初始用户文件(包括.bashrc
)是在创建用户时创建的。它们是存储在名为的“骨骼”目录中的文件的副本/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
。
新用户登录shell的默认值由变量确定DSHELL=
。也可以通过option指定--shell
。无论新用户的登录外壳是什么,“ skeletal”目录的全部内容/etc/skel
都将填充到新用户的主目录中。
该SKEL=
文件中的变量指定包含“骨架”用户文件的默认目录。
该选项--no-create-home
将强制命令adduser
不创建用户主目录,否则将不会复制“骨架”目录的内容。
如果使用一个非选项参数和该选项调用--system
,adduser
将添加系统用户...主目录的创建规则与普通用户相同。新的系统用户将拥有外壳程序/bin/false
(除非用该--shell
选项覆盖),并且禁用了登录名。不会复制骨架配置文件。 ...从手册页开始。
此外,使用as的任何GUI工具创建用户时User Accounts
,结果与command相同adduser
。
参考文献:
useradd
还将创建一个主目录,并使用提供/etc/skel
的-m
选项副本填充它。
useradd
命令中使用;那应该是adduser
吗?
adduser
,不是吗?