可以将用户排除在 /etc/profile.d 脚本之外吗?

可以将用户排除在 /etc/profile.d 脚本之外吗?

我在使用 Rsync/SSH 与特定用户在服务器上进行 Amanda 备份时遇到了问题。

rsync -e 'ssh -i /var/lib/amanda/.ssh/id_rsa_amdump' -az otherserver:/dir/to/copy /copy/dir

我注意到它在 /etc/profile.d 中的脚本上给出了各种错误,并且无法使用 SSH 密钥登录。如果我尝试使用 SSH 登录用户帐户,它只会显示错误,而不会给出提示。有没有办法告诉用户不要读取 /etc/profile.d 或将其设置为跳过/排除该用户?

使用 SSH 登录尝试时给出的错误是:

/etc/profile.d/somescript.sh line 125: bind: warning: line editing not enabled

脚本中至少有 20 行不同内容显示此错误。其他用户均未遇到此错误。此外,Amanda 备份用户的主目录不在/var/lib//home

答案1

只有在交互式 shell 中使用bind才有意义。在 somescript.sh 中检查 shell 是否是交互式的并且只有在满足条件时才运行bind。例如,

if [ -n "$PS1" ]; then
    bind -x '"\e[M":'$'"ls -l"';
fi

相关内容