我想在 shell 脚本中更改当前用户,以便通过将登录名和密码作为参数传递,使用户能够以管理员身份执行命令。
我想有能力做类似的事情:
sh ./script.sh login password
在脚本内部,类似:
sudo $1 $2 etc...
但是我不知道如何清楚地编码。
谢谢你的帮助
我想在 shell 脚本中更改当前用户,以便通过将登录名和密码作为参数传递,使用户能够以管理员身份执行命令。
我想有能力做类似的事情:
sh ./script.sh login password
在脚本内部,类似:
sudo $1 $2 etc...
但是我不知道如何清楚地编码。
谢谢你的帮助
sudoers(5) 文件允许非常复杂的权限和命令规范。作为一个简单的示例,您可以让组中的每个人都以 root 身份运行单个脚本,而无需密码。这更具脚本性,同时仍允许您限制访问。例如:
# /etc/sudoers
%somegroup ALL=(ALL:ALL) NOPASSWD:/path/to/script.sh
由于默认情况下该脚本将以 root 身份运行,因此无需在您的脚本中跳过更多的箍。
这对于 Stack Overflow 来说有点主题,因为它与脚本相关。但是,如果您有关于配置 sudoers 文件的后续问题,您可能应该在SuperUser上询问这些问题。
我对 sudo 命令的经验有限,但我知道您可以使用文本编辑器创建代码,并使用 chmod 命令更改权限以及人们可以访问您的代码的不同方式。
更具体地说,一旦你得到你的 .command 文件,你就可以进入你的模拟器并输入 chmod。之后添加一个空格,然后您可以自定义可以实际与代码交互的用户。例如,chmod a+rwx 表示每个人 (a) 都可以拥有读、写和执行 (rwx) 的权限。chmod 的使用方法有很多种,这个网页是找出这些方法的好资源: http ://www.zzee.com/solutions/how-to-use-chmod.shtml
在 chmod 和 user/permissions 参数之后,您可以在末尾添加代码的文件路径,以告诉 UNIX 哪个文件要 chmod。之后,您可以手动更改可能运行代码的管理组的成员,以提供更好的灵活性,正如 CodeGnome 建议的那样。