为什么以及如何自定义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。