我有一个脚本可以做很多不同的事情,其中大部分不需要任何特殊权限。但是,我在函数中包含的一个特定部分需要 root 权限。
我不希望整个脚本都以 root 身份运行,我希望能够在脚本中以 root 权限调用这个函数。必要时提示输入密码不是问题,因为它主要是交互式的。但是,当我尝试使用时sudo functionx
,我得到:
sudo: functionx: command not found
Run Code Online (Sandbox Code Playgroud)
正如我所料,export
没有任何区别。由于多种原因,我希望能够直接在脚本中执行该函数,而不是将其分解并作为单独的脚本执行。
有什么方法可以使我的函数对 sudo “可见”,而无需提取它,找到适当的目录,然后将其作为独立脚本执行?
该函数本身大约有一页长,包含多个字符串,一些是双引号的,一些是单引号的。它也依赖于在主脚本其他地方定义的菜单功能。
我只希望拥有 sudo ANY 的人能够运行该功能,因为它所做的一件事就是更改密码。