Linux如何创建用户?创建新用户时,通常使用标准命令(如useradd)或实用工具(如User Manager),将配置文件的默认设置从/etc/skel目录复制到用户的主目录。
1.主目录
主目录是用户登录RHEL系统时的起始位置。对于大多数用户来说,主目录是/home/ username,其中username是用户的登录名。通常,每个用户在其主目录里都有写权限,因此每个用户都可以自由读写自己的文件。
2. /etc/skel
/etc/skel目录包含新账户的默认环境文件。useradd命令和Red Hat User Manager将新用户的这些文件复制到主目录。/etc/skel的内容可能会有所不同。虽然该目录中的标准文件是隐藏的,但管理员可以自由为新用户添加更多文件。/etc/skel某个副本的标准文件如表1所示。
表1 /etc/skel目录中的标准文件
Linux包含许多以点(.)开头的隐藏文件。要列出这些文件,可以运行ls -a命令。例如,如果想要列出/etc/skel目录中的所有文件,可以运行ls -a /etc/skel命令。
如果在RHEL上安装了多个软件程序包的标准设置,其他配置文件和子目录可能出现在/etc/skel目录里。例如,某些程序包的安装可能在此目录里包含与emacs相关的配置文件和z shell(zsh)。
作为系统管理员,可以编辑这些文件或者在/etc/skel目录里存放自定义文件。创建新用户时,这些文件将被移植到新用户的主目录。
3. /etc/bashrc
/etc/bashrc文件用于系统范围内的别名和函数。在选择的文本编辑器中打开该文件,仔细阅读文件的每一行代码。即使不理解编程命令,也会发现该文件为每个用户设置了下列bash shell参数:
● 它指定umask的值,为新建文件创建默认权限。它支持一组用于根用户和系统用户(用户ID在200以下)的许可,还支持一组用于一般用户(实际上RHEL预留用户ID在1000以上的用户作为一般用户,但在/etc/bashrc中没有反映出这一点)的许可。
● 它分配和定义提示,仅在命令提示符的光标之前可以看到它。
● 它包含/etc/profile.d/目录中*.sh文件的设置。
这里的设置由每个用户主目录中的.bashrc文件补充,对于登录shell,则由/etc/profile、.bash_profile和.bash_logout文件补充,对于登录shell,则由/etc/profile、.bash_profile和.bash_logout文件补充。
4. /etc/profile和/etc/profile.d
/etc/profile文件用于系统范围内的环境和启动文件,当把bash作为登录shell调用时,就使用该文件。
该文件的第一部分设置搜索命令的PATH。使用pathmunge命令将其他目录添加到PATH(除非使用Korn shell,否则忽略ksh workaround节)。然后它导出PATH、USER、LOGNAME、MAIL、HOSTNAME、HISTSIZE和HISTCONTROL变量,最后设置umask并运行/etc/profile.d目录中的脚本。可使用echo $variable命令检查这些变量的当前值。
5. /etc/profile.d
/etc/profile.d目录用来包含要在登录或交互式shell中(也就是说,并不是在作为bash -c command运行的脚本或命令中)执行的脚本。如果执行“Server with GUI安装,下面列出的只是部分文件,那些扩展名为.sh的文件则应用于默认的bash shell。
256term.csh colorls.csh PackageKit.sh 256term.sh colorls.sh vim.csh abrt-cosole-notifiction.sh lang.csh vim.sh bash_completion.sh lang.sh vte.sh colorgrep.csh less.csh which2.csh colorgrep.sh less.sh which2.sh
大多数情况下,存在为不同shell环境自定义的两个版本的脚本。查看/etc/profile.d脚本目录中的文件,就会发现该目录中以.sh结尾的所有脚本都是/etc/profile配置的一部分。扩展名为其他形式(如.csh)的脚本与C shell有关。