我有一个 Ubuntu 18.04 服务器,它加入了我们的 windows 域。我已经进行了设置,因此用户可以使用他们的 AD 凭据登录服务器,效果很好。我还设置了在登录时自动安装 Windows 共享的脚本。
sudo mount -t cifs //tiberius/$1 /home/[email protected]/D -o user=$1,cruid=$1,sec=krb5,uid=$1,gid=domain\ users
这是在登录时运行的脚本。在我的 /etc/bash.bashrc 中,我有这个:
#If ~/D does not exist, create it
if [ ! -d ~/D ]; then
mkdir ~/D
fi
#Mount D drive to ~/D
if [ "$EUID" -ne 0 ] && [ "$EUID" -ne 1000 ]; then
sudo /usr/local/bin/mountsamba.sh $USER
fi
#Disconnect mount on session close
finish() {
sudo /etc/bash.bash_logout
}
trap finish SIGHUP
if [ -f /etc/bash.bash_aliases ]; then
/etc/bash.bash_aliases
fi
共享似乎很好,这很好,但我在 /var/log/syslog 中收到这些错误:
[1477629.820060] CIFS VFS: Verify user has a krb5 ticket and keyutils is installed
[1477629.820061] CIFS VFS: Send error in SessSetup = -126
这些日志很难看出服务器中是否存在任何大问题。我只是想让这些共享自动挂载,而无需用户在登录时多次输入密码。这应该可以工作,因为服务器已连接到 AD。我猜这与 keytab 以及用户何时更改密码有关?
拖了好久,终于知道问题出在哪里了。原来 krb5 密钥即将到期,用户没有退出 ssh 会话。因此,在我对 SSH 会话设置超时后,问题就消失了