背景
具有多个应用程序服务器(共享二进制文件)的 RedHat 7(和 6)服务器。
我们在添加 $HOME = appserver_root 的应用服务器时设置了单独的用户帐户。但是安装要求目标目录不存在。
因此我们:
- 创建用户但不创建主目录
- 将服务器安装到(并创建)主目录中
- 重置主目录的权限
此过程不会设置骨架文件,即复制/etc/skel/
问题
我们可以简单地复制 /etc/skel/.*,但是有没有一种工具方法 - 命令 - 可以做到这一点?
我更喜欢使用标准工具,而不是猜测,或者解析 /etc/default/useradd 以获取正确的 SKEL 路径。
答案1
您可以尝试将您的程序调整为如下形式:
- 正常创建用户,允许以“标准”方式创建主目录并填充骨架文件
- 将主目录重命名为其他名称,
username.skeleton
例如 - 将服务器安装到主目录中(创建新的主目录)
- 重置主目录的权限
- 小心地将目录中的配置文件合并到主
username.skeleton
目录中(如果服务器安装创建了自己的配置文件,则可能会发生冲突),或者简单地复制以前相同安装中已合并的文件(如果可用)。
在安装新操作系统版本时,我对自己的主目录使用了类似的程序,因为旧操作系统版本的现有配置文件可能会对较新的应用程序版本产生负面影响,而新的骨架文件缺少我的自定义设置 - 它们需要合并。