普通用户如何在启动时运行脚本?

普通用户如何在启动时运行脚本?

我想在 CentOS 6 启动时运行一个 bash 脚本。我在/etc/init.d/目录中添加了脚本,但所有这些脚本都是由 root 运行的。我想为任何用户运行脚本。

答案1

您可以像这样将其添加到您的 crontab 中:

@reboot /bin/bash /dir/of/your/script

如果你不熟悉crontab,这里有一些提示:

  • crontab -l列出当前安排的作业。
  • crontab -e允许您编辑它。

答案2

您可以使用运行命令su来放弃 root 权限,例如:-c

# su user -c whoami
  user

如果您想要特定脚本放弃权限,那么您只需调用该脚本本身,su <user> -c <script> -magic-parameter告诉-magic-parameter脚本以非 root 用户身份执行您希望它执行的操作。

答案3

在启动时运行脚本对系统安全非常危险。因此,这里有一个只有 root 才能运行脚本的理由。因此,如果你根访问权限 - 使用它(您是系统管理员,对吗?),如果您没有访问权限 - 最好保持原样。:)

如果你的问题是关于如何改变某些 rc.d 脚本的有效 UID,你可以使用类似如下的方法:

#!/bin/bash    

export MYHOME=/path/to/somewhere

case $1 in
    start)   /bin/su <username> $MYHOME/bin/startup.sh ;;
    stop)    /bin/su <username> $MYHOME/bin/shutdown.sh ;;
    restart)
             /bin/su <username> $MYHOME/bin/shutdown.sh
             /bin/su <username> $MYHOME/bin/startup.sh
             ;;
esac
exit 0

因此,您可以将脚本放在任何地方,然后从初始化脚本中运行它su

相关内容