【问题标题】:After running a bash script as root user, how can I have the script automatically force my user to exit root?以 root 用户身份运行 bash 脚本后,如何让脚本自动强制我的用户退出 root?
【发布时间】:2014-06-26 20:05:18
【问题描述】:

我有一个必须由 root 用户运行的 bash 脚本,但是,我希望该脚本强制用户自动退出 root。我知道您通过在命令行中键入“exit”来退出 root,但是将其放入 bash 脚本只会退出脚本。感谢您的帮助!

【问题讨论】:

  • 这个问题非常适合超级用户。
  • 您可以使用. 而不是sh script.sh 运行脚本,以便将行粘贴到当前终端,而不是让它在单独的子shell 中运行。更好的是,使用sudo...
  • 我喜欢使用:source
  • 然后在你的脚本末尾,只包含exit(但如果作为普通用户获取,它将关闭终端)
  • 使用 sudo 运行脚本。

标签: linux bash shell root


【解决方案1】:

你可以尝试使用威廉给出的建议

$sudo ./your.sh

【讨论】:

    【解决方案2】:

    您也可以在脚本开头使用sudo -v 来询问 sudo 密码。 并在末尾sudo -k 清除缓存。

    【讨论】:

      【解决方案3】:

      只需将这样的内容粘贴到脚本的开头即可:

      if [ "$(whoami)" == root ]; then
         echo "ERROR: root cannot run this script"
         exit 1
      fi
      

      这将强制您只能以普通用户身份运行脚本,并且当脚本退出时,您将再次成为普通用户。然后在脚本中需要 root 权限的每个命令前面加上一个 sudo。使用缓存 sudo 凭据,您的脚本用户只需输入他/她的密码一次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-21
        • 2018-05-11
        • 2013-08-10
        • 2010-09-28
        相关资源
        最近更新 更多