为什么以及如何自定义UNIX/Linux用户帐户?
时间:2020-01-09 10:40:08 来源:igfitidea点击:
问题描述:您能否提供一些有关UNIX用户帐户自定义的信息以及一些示例配置?
解决方法:通常,useradd/adduser和passwd命令用于在/etc/passwd,/etc/shadow和/etc/group文件中为用户创建条目。
但是,在文件中添加用户可能无法提供所需的所有功能。
您需要通过修改/etc或~/(用户主目录)中的各种脚本来设置用户自定义设置。
这些脚本在每个控制台(基于文本)登录或ssh会话开始时执行,以设置用户环境。
典型的UNIX/Linux登录方案
User login / SSH Login | | System login script /etc/profile | | Personal login script $HOME/.profile | | Shell startup script $HOME/.bash_profile $HOME/.shrc | | User logged in (login complete)
您可以使用/etc/profile文件添加系统范围的定制。
最终用户可以使用个人登录脚本或Shell启动脚本来管理自己的配置文件/自定义环境。
为什么要自定义UNIX/Linux/BSD用户帐户?
以下是一些常见示例:
- 设置JDK/JVM/PATH变量
- 设置用户终端类型
- 自定义用户提示
- 设置默认的文本编辑器
- 设置历史记录文件的大小和位置
- 登录帐户等后立即生成报告
- 设置命令行快捷方式和别名
配置参考
$ cat ~/.bash_profile
输出:
export TERM=xterm # my terminal type export PS1="$ " # my sweet prompt export JAVA_HOME=/opt/jvm/java-6-sun #for java export PATH=$PATH:$JAVA_HOME/bin:/home/Hyman/bin # my binary file search path export EDITOR=vim # my editor export HISTSIZE=100 # history file size export HISTFILE=~/.cmd_history # history file location umask 077 # my umask ulimit -c 0 # unlimited core file # some shell variables set -o noclobber set -o physical shopt -s cdspell shopt -s extglob shopt -s dotglob shopt -s cmdhist shopt -s lithist shopt -s progcomp shopt -s checkhash shopt -s histreedit shopt -s promptvars shopt -s cdable_vars shopt -s checkwinsize shopt -s hostcomplete shopt -s expand_aliases shopt -s interactive_comments bind '"\C-t": possible-completions' # replaces 'transpose-chars' bind '"\M-t": menu-complete' # replaces 'transpose-words'
查看环境变量列表
只需使用用户env命令,执行:
$ env
/etc/skel目录将配置推送给用户
默认情况下,/etc/skel中的所有文件都复制到新用户的主目录中;创建新用户帐户时。
默认情况下,/etc/skel /中包含的文件很少。
- /etc/skel/.bash_logout
- /etc/skel/.bashrc
- /etc/skel/.profile
- /etc/skel/.cshrc
- /etc/skel/.exrc(/etc/skel/.vimrc)
您也可以在/etc/skel中创建或复制现有脚本。
例如,将/usr/share/vim/vimrc复制到/etc/skel/.vimrc
# cp /usr/share/vim/vimrc /etc/skel/.vimrc
现在,在创建新用户帐户时,将复制文件/etc/skel/.vimrc。