创建用户的模板目录

一、目录作用

/etc/skel 是系统创建新用户时的家目录模板目录。当通过 useradd 等命令创建新用户时,该目录下的所有文件和子目录会被自动复制到新用户的家目录(如 /home/用户名),从而为新用户提供统一的初始环境配置。

二、/etc/skel 中包含的主要文件

1. .bash_logout

  • 作用:当用户退出 bash shell 时,会执行该文件中的命令(如清理临时文件等)。
  • 适用范围:属于用户级配置,每个用户的家目录中会包含此文件,仅对当前用户生效。

2. .bash_profile

  • 作用:主要用于设置用户的环境变量、启动程序等,在用户登录(如通过控制台、ssh 登录)时执行。
  • 适用范围:属于用户个性化配置,仅对当前用户生效(不同用户的 .bash_profile 可独立修改)。

3. .bashrc

  • 作用:用于配置 bash shell 的交互环境(如命令别名、命令提示符样式等),在每次打开新的 bash 终端时执行。
  • 适用范围:/etc/skel/.bashrc 作为初始模板,会被复制到各用户家目录,成为用户级 .bashrc;系统级的 bash 配置通常在 /etc/bashrc(对所有用户生效),用户级 .bashrc 可覆盖或补充系统级配置。

三、模板的典型应用场景

  1. 统一运维操作规范:通过在 /etc/skel 中预设脚本、配置文件,确保所有新用户初始环境符合运维规范。
  2. 统一命令提示符样式:在 /etc/skel/.bashrc 中预设命令提示符配置(如 PS1 变量),新用户创建后自动应用统一样式,无需逐个配置。

四、用户家目录中的特殊文件

非模板初始文件,用户使用后生成。

1. .bash_history

  • 作用:记录用户在 bash shell 中执行过的历史命令。
  • 存储位置:
    • 内存中:当前 shell 会话的历史命令暂存于内存,可通过 history 命令直接查看。
    • 磁盘文件中:当用户退出 shell 时,内存中的历史命令会写入家目录的 .bash_history 文件,长期保存(默认保存最近 1000 条,可通过 HISTSIZE 等变量调整)。

2. .viminfo

  • 作用:保存 vim 编辑器的相关状态信息,包括:
    • 历史编辑的文件路径
    • 搜索历史记录
    • 光标位置记忆
    • 寄存器内容等
  • 特点:用户首次使用 vim 后自动生成,仅对当前用户的 vim 操作生效。