我试图设置我的SLES 12系统以仅在第一次以root身份登录SLES 12系统时运行脚本。之后,root将永远不会再次运行该脚本。另外,我不希望任何非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
然后,仅将脚本放入root用户的profile.d或.bash_login中。
,如果脚本只能执行一次,则可能会导致标志文件被意外删除,并在下次登录时重新运行。或者,考虑翻转条件,以防万一,有可能使脚本不可执行。
在系统配置期间,使用“ / path / to / script”创建可执行文件“〜root / run-once.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
作为副作用,这种方法可以在需要时强制其他用户进行一次一次性登录。