linux – 管理每用户rc.d init脚本

linux – 管理每用户rc.d init脚本,第1张

概述我想将SysV init脚本委派给每个用户. 与SysV init一样,以S开头的${HOME} /rc.d中的每个项目都将在服务器启动时使用start参数启动.对于服务器关闭,使用以K开头并使用stop参数的服务器关闭相同. 我想过自己编写脚本,但也许已经有了某种实现方式1.总之,它将是/etc/init.d/中的一个脚本,它遍历所有用户并以相关脚本上的用户身份启动runpart. 这里的平台是 我想将SysV init脚本委派给每个用户.

与SysV init一样,以S开头的${HOME} /rc.d中的每个项目都将在服务器启动时使用start参数启动.对于服务器关闭,使用以K开头并使用stop参数的服务器关闭相同.

我想过自己编写脚本,但也许已经有了某种实现方式1.总之,它将是/etc/init.d/中的一个脚本,它遍历所有用户并以相关脚本上的用户身份启动runpart.

这里的平台是一个Linux(Debian风格),但我认为该解决方案在各种类Unix平台之间非常便携.

更新:

这里的要点是用户能够创建自己的init脚本,应该在系统启动时代表他们启动.正如Dan Carley指出的那样,服务将无法访问任何系统资产(特权端口,系统日志……).

1.这样我就不必过多考虑所有微妙的安全隐患,比如脚本超时等……

解决方法 你的问题基本上包括答案….一个脚本,它将遍历每个用户家的子目录,寻找可执行脚本.然后它sudo -u user /export/home/user/scripts/scriptname.sh start.您无法控制脚本的功能,因此您需要信任您的用户.

坚持他们编写脚本以接受停止启动重启为$1 param并且他们不应该使用在.profile,.cshrc或.bashrc文件中设置的任何环境变量.该脚本实际上需要是独立的.

#!/usr/bin/bashrun_cmd {cd /export/homefor HOMEDIR in *; do  for SCRIPT in /export/home/$HOMEDIR/scripts/*;  do     if [ -x $SCRIPT ]; then       echo "$ACTION user $HOMEDIR's script $SCRIPT"       sudo -u $HOMEDIR $SCRIPT $ACTION &     fi  donedone}case  in    start) ACTION=start;           run_cmd;;    stop) ACTION=stop;           run_cmd;;    restart) ACTION=stop;             run_cmd;             sleep 60;             ACTION=start;             run_cmd;;    *) echo " not recognized as valID cmd";;esacexit 0

您需要针对您的环境,bash / homedirs等的位置进行调整.

总结

以上是内存溢出为你收集整理的linux – 管理每用户rc.d init脚本全部内容,希望文章能够帮你解决linux – 管理每用户rc.d init脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1036591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存