我有一台已加入 Windows 域的 Ubuntu 18.04 服务器。我已进行设置,以便用户可以使用他们的 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 以及用户何时更改密码有关?
答案1
经过很长一段时间,我终于弄清楚了问题所在。原来是 krb5 密钥即将过期,而用户没有退出 ssh 会话。因此,在我对 SSH 会话设置超时后,问题就消失了