在SLES 12中的ONLY第一次root登录时运行一个脚本



我正在尝试设置我的SLES 12系统,以便仅在第一次root登录SLES 12时运行脚本。在那之后,root将再也不会运行该脚本。此外,我不希望任何非root用户运行此脚本。

有人知道我该怎么做吗?

提前谢谢。

一种方法是使用标志文件和测试条件

script_function()
{
# what your script does
}
if [ -e /root/.flagfile ]
then
: # do nothing
else
script_function
touch /root/.flagfile
fi

然后,将脚本放在您的profile.d或.bash_login中,仅用于根用户。

如果脚本只执行一次是ESSENTIAL,则存在意外删除标志文件的风险,触发在下次登录时重新运行。作为替代方案,可以考虑翻转条件,并可能使脚本不可执行,以防万一。

在系统配置期间,使用"/path/to/script"创建可执行文件"~root/runonce.sh"。

然后在/etc/profile 中

if [ -x ~/run-once.sh ] ; then
source ~/run-once.sh
# Disable re-run with
rm ~/run-once.sh
# OR
chmod -x ~/run-once.sh
fi

作为副作用,如果需要,这种方法可以强制其他用户进行其他一次性登录。

最新更新