Bash 仅在SLES 12中的第一个根登录上运行脚本
我正在尝试将我的SLES 12系统设置为仅在SLES 12系统的第一个根登录上运行脚本。此后,root将不再运行该脚本。另外,我不希望任何非root用户运行此脚本 有人对我如何做到这一点有什么想法吗Bash 仅在SLES 12中的第一个根登录上运行脚本,bash,shell,root,sles,Bash,Shell,Root,Sles,我正在尝试将我的SLES 12系统设置为仅在SLES 12系统的第一个根登录上运行脚本。此后,root将不再运行该脚本。另外,我不希望任何非root用户运行此脚本 有人对我如何做到这一点有什么想法吗 提前感谢。一种方法是使用标志文件和测试条件 script_function() { # what your script does } if [ -e /root/.flagfile ] then : # do nothing else script_function touch /r
提前感谢。一种方法是使用标志文件和测试条件
script_function()
{
# what your script does
}
if [ -e /root/.flagfile ]
then
: # do nothing
else
script_function
touch /root/.flagfile
fi
然后,将脚本放在您的profile.d或.bash_登录中,仅限root用户使用。如果脚本仅执行一次是必要的,则存在意外删除标志文件的风险,请触发在下次登录时重新运行。作为替代,考虑翻转条件,并可能使脚本不可执行,以防万一。 在系统配置期间,使用“/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
作为一个副作用,这种方法可以在需要时强制其他用户一次性登录