/etc/skel是新建用户家目录的模板仓库,需严格管控权限(chmod 755、root属主)、清理敏感文件(如.bash_history、.ssh/)、加固默认配置(umask 027、安全PATH)、并纳入定期审计。

Linux系统中,/etc/skel目录是新建用户账户时的“模板仓库”,所有该目录下的文件和配置会自动复制到新用户的家目录中。如果这个目录本身存在权限不当、残留敏感文件或不安全默认配置,就可能被恶意利用——比如新建用户后自动获得危险的shell初始化脚本、错误的umask设置、或预置的SSH密钥,从而埋下权限提升或横向渗透隐患。
确认并收紧/etc/skel目录权限
该目录必须仅对root可写,普通用户不可读写,否则攻击者可通过创建低权限账户间接篡改模板内容。
- 执行命令:
sudo chmod 755 /etc/skel(确保属主root,组和其他用户仅有读+执行权) - 检查归属:
ls -ld /etc/skel,输出应类似drwxr-xr-x 2 root root ... /etc/skel - 禁止world-writable:若出现
drwxrwxrwx或任何w在group/other位,立即修正
清理非必要文件,精简默认配置
默认的/etc/skel常包含过时或高风险文件(如.bash_history、.ssh/、自定义别名脚本),这些不应随新用户自动部署。
- 删除风险文件:
sudo rm -f /etc/skel/.bash_history /etc/skel/.lesshst /etc/skel/.viminfo - 严禁放入
.ssh/目录或私钥文件;如需统一分发公钥,应通过PAM或配置管理工具控制,而非skel - 检查
.profile、.bashrc等:移除可疑source路径、远程curl执行、未验证的PATH追加等行为
标准化基础配置,强化默认安全策略
主动设置合理默认值,比依赖用户后续加固更可靠。重点控制环境变量与文件创建掩码。
- 在
/etc/skel/.bashrc末尾添加:umask 027(确保新用户创建的文件默认不被同组其他成员写入) - 限制命令搜索路径:
export PATH="/usr/local/bin:/usr/bin:/bin",避免.或/tmp等危险路径混入 - 禁用交互式shell中的危险选项(如
set -o ignoreeof)或强制启用历史记录限制(HISTSIZE=1000; HISTFILESIZE=1000)
建立定期审计与变更管控机制
/etc/skel属于系统关键路径,其变更应受控,且需纳入基线核查范围。
- 将
/etc/skel加入配置审计清单(如使用AIDE、Tripwire或Ansible check模式) - 所有修改必须走变更流程,记录原因、操作人、时间,并同步更新文档
- 建议每季度执行一次完整性校验:
sudo diff -r /etc/skel /var/tmp/skel-baseline(前提是你已存档可信基线)
不复杂但容易忽略——/etc/skel不是“设一次就不管”的目录,它是每个新账户的安全起点。守住它,等于为整个用户生命周期打下第一道防线。










