我有许多 Active Directory 中的现有用户需要创建主目录。他们不直接登录 Solaris,而是登录该机器上运行的服务。
如果我以他们的身份登录,则会创建他们的主目录,然后他们就可以登录。
对于新用户来说也是一样的!
由于用户很多,我需要一种方法来自动化执行此操作,以便新用户和现有用户能够自动创建它。
这可能吗??
答案1
与 Linux 不同,Solaris 上没有像 pam_mkhomedir 这样的标准 pam 模块来实现此任务。虽然编译此 pam 模块可能有效,但还有其他替代方法,例如如果 /etc/profile 中缺少主目录则创建主目录或设置可执行的 auto_home 映射。
使用 /etc/profile 创建用户的主目录需要使用 rbac 或 sudo,因此基于自动挂载程序的解决方案更容易实现,例如:
在该/etc/auto_master
文件中,注释掉以下行:
# /home auto_home -nobrowse
并添加以下行:
/home /opt/local/mkhomedir
注意:我在这里假设先前的 auto_home 映射尚未被实际用户使用。
/opt/local/mkhomedir
使用以下内容创建脚本:
#!/bin/ksh -p
actual=/tmp/home # top directory to store user's home directories
homedir=$(echo ~$1)
hd=$actual/$1
if [ $(dirname $homedir) = /home -a ! -d $hd ]; then
mkdir -p $hd
chmod 0700 $hd
chown $1 $hd
fi
echo localhost:$hd
就是这样。每个用户都将其主页配置为 /home/用户名如果需要,将在第一次访问时自动创建此目录。当然,您应该/tmp/home
在脚本中用更持久的内容替换它mkhomedir
,例如,/export/home
这是 Solaris 上主目录后端存储的常用位置。
答案2
您有两个选择:
- 如果您的服务可以使用 PAM,那么您可以让 pam_mkhomedir 为您创建它。
- 您可以执行批量隔夜作业并根据用户列表创建主目录。
答案3
答案4
当用户登录计算机时,它会自动发生。抱歉,这是 MS 的设计方式。
最好的机会是通过 Windows 机器上的远程桌面登录(应该是可编写脚本的),并使用自动注销脚本;)