Linux 如何在运行shell脚本时提示用户以root用户身份登录

Linux 如何在运行shell脚本时提示用户以root用户身份登录,linux,bash,shell,scripting,suse,Linux,Bash,Shell,Scripting,Suse,我遇到的问题是,当我输入命令时 su - root 在我的shell脚本文件的开头,它会提示用户输入密码,然后不继续执行shell脚本的其余部分。然后,我必须通过终端手动查找并运行shell脚本。我希望脚本确保用户以root用户身份登录,然后继续执行shell脚本的其余部分 换句话说,我希望以任何用户的身份运行脚本,但一旦脚本开始执行,用户必须更改为root,然后继续以root用户的身份运行脚本的其余部分,直到完成为止。可以这样做吗?所以我想以普通用户名运行脚本。但一旦脚本执行,我就需要成为r

我遇到的问题是,当我输入命令时

su - root
在我的shell脚本文件的开头,它会提示用户输入密码,然后不继续执行shell脚本的其余部分。然后,我必须通过终端手动查找并运行shell脚本。我希望脚本确保用户以root用户身份登录,然后继续执行shell脚本的其余部分


换句话说,我希望以任何用户的身份运行脚本,但一旦脚本开始执行,用户必须更改为root,然后继续以root用户的身份运行脚本的其余部分,直到完成为止。可以这样做吗?

所以我想以普通用户名运行脚本。但一旦脚本执行,我就需要成为root用户,并拥有普通用户所不具备的某些特权。所以你可以从我的问题中看出我在做什么。解决方案如下所示,应该在脚本的开头添加它,以确保在文件结束(EOF)之前您都是root用户。然后你又变成了一个普通用户

  #!/bin/sh
  [ "$(whoami)" != "root" ] && exec sudo -- "$0" "$@"
  # rest of the code
  ...
  EOF

请参阅重新编辑的问题。您发送给我的链接是我尝试过的,但对我的案例无效。请为您的解决方案添加一些解释,说明它有何帮助,以及OP出现了哪些错误或缺失。教一点真是太好了@Philip我希望这有帮助,让我知道我的解释是否清楚