如何同时以 root 和当前用户身份运行脚本?

如何同时以 root 和当前用户身份运行脚本?

我想编写一个 shell 脚本,它需要sudo特权来执行某些任务,但还需要以当前用户身份更改某些配置。我想尽可能地自动化脚本,这样它就不需要任何用户干预。

我遇到的问题是,如果我运行整个脚本sudo,我无法更改当前用户的配置。但如果我只是添加sudo需要 root 权限的特定命令,我将需要不断输入密码,因为脚本很长并且sudo会超时。

有没有办法可以在当前用户中运行脚本,但sudo在需要时保留特权?

答案1

基本上有两种方法可以走:

  • 将需要 root 访问权限的子任务分离到不同的程序/脚本中,并以 root 身份运行该部分(通过 setuid root 二进制文件或通过sudo

  • 以 root 身份运行整个程序,并通过以下方式执行必须以普通用户身份运行的部分su - user

相关内容