Mic*_*ael 21 command-line bash bashrc
例如,如果我要运行命令adduser test,是否会在为用户创建主目录时自动创建 .bashrc test?如果它不是在用户创建时创建的,它是在什么条件下创建的?
另外,如果我将 .bashrc 文件添加到用户的主目录,它会被操作系统覆盖吗?
提前致谢。
pa4*_*080 30
在大多数情况下,初始用户文件(包括.bashrc)是在创建用户时创建的。它们是存储在“骨架”目录中的文件副本,名为/etc/skel. 有两个主要命令:
useradd 是后端命令,如果您直接使用它(没有任何选项),只会创建一个系统用户(及其组):
$ sudo useradd new-user
$ ls -la /home/new-user/
ls: cannot access '/home/new-user/': No such file or directory
Run Code Online (Sandbox Code Playgroud)
useradd将创建一个主目录,并/etc/skel在-m --create-home提供该选项的情况下使用 的副本填充它。感谢您对@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
Run Code Online (Sandbox Code Playgroud)
该命令的配置文件是/etc/adduser.conf.
新用户登录 shell 的默认值由变量 确定DSHELL=。它也可以通过选项指定--shell。无论新用户的登录 shell 是什么,“骨架”目录的全部内容/etc/skel都将填充到新用户的主目录中。
SKEL=此文件中的变量指定包含“骨架”用户文件的默认目录。
该选项--no-create-home将强制命令adduser不创建用户主目录,分别不会复制“骨架”目录的内容。
如果使用一个非选项参数和选项调用--system,adduser将添加一个系统用户...主目录的创建规则与普通用户相同。新系统用户将拥有 shell /bin/false(除非被该--shell选项覆盖),并禁用登录。不复制骨架配置文件。 ...从手册页。
此外,当用户使用任何 GUI 工具创建时User Accounts,结果与命令相同adduser。
参考:
| 归档时间: |
|
| 查看次数: |
4716 次 |
| 最近记录: |