当 SSSD 创建用户时运行脚本

当 SSSD 创建用户时运行脚本

基本设置:我正在运行已加入 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 用户身份登录时,日志中没有任何内容出现。

在此先感谢您的帮助。

相关内容