基本设置:我正在运行已加入 MS AD 的 Ubuntu VM。当人们使用其 AD 凭据登录时,SSSD 会处理用户创建。用户的唯一登录方法是通过 xrdp。
当新用户登录时,我希望运行一个脚本。该脚本在他们的桌面上创建一个指向 /usr/share 中另一个脚本的符号链接。我尝试设置一个服务来处理这个问题,但当 SSSD 用户登录时,该脚本不会运行。
[Unit]
Description=Create symlink on user desktop for TY script.
[Service]
Type=oneshot
User=root
Group=root
RemainAfterExit=yes
ExecStart=/usr/share/create_ty_link.sh
[Install]
[email protected]
脚本create_ty_link.sh
如下:
#!/bin/bash
LOG_FILE="/var/log/create_ty_symlink.log"
PAM_USER=$(whoami)
echo "$(date +%Y%m%d%H%M%S) Running script for user: $PAM_USER" >> "$LOG_FILE"
if [ ! -L "/home/$PAM_USER/Desktop/LinuxLaunch.sh" ]; then
echo "$(date +%Y%m%d%H%M%S) Symlink doesn't exist - /home/$PAM_USER/Desktop/LinuxLaunch.sh" >> "$LOG_FILE"
ln -s "/usr/share/TY/LinuxLaunch.sh" "/home/$PAM_USER/Desktop/LinuxLaunch.sh"
chown $PAM_USER: "/home/$PAM_USER/Desktop/LinuxLaunch.sh"
echo "$(date +%Y%m%d%H%M%S) Symlink created for $PAM_USER" >> "$LOG_FILE"
else
echo "$(date +%Y%m%d%H%M%S) Symlink found for $PAM_USER, no need to create it." >> "$LOG_FILE"
fi
当我通过 ssh 以自己的身份登录时,日志显示以下内容:
20240328111448 Running script for user: root
20240328111448 Symlink doesn't exist - /home/root/Desktop/LinuxLaunch.sh
20240328111448 Symlink created for root
但是,当我通过 xrdp 以测试 AD 用户身份登录时,日志中没有任何内容出现。
在此先感谢您的帮助。