0

我想在 shell 脚本中更改当前用户,以便通过将登录名和密码作为参数传递,使用户能够以管理员身份执行命令。

我想有能力做类似的事情:

sh ./script.sh login password

在脚本内部,类似:

sudo $1 $2 etc...

但是我不知道如何清楚地编码。

谢谢你的帮助

4

2 回答 2

2

只需使用须藤

sudoers(5) 文件允许非常复杂的权限和命令规范。作为一个简单的示例,您可以让组中的每个人都以 root 身份运行单个脚本,而无需密码。这更具脚本性,同时仍允许您限制访问。例如:

# /etc/sudoers
%somegroup ALL=(ALL:ALL) NOPASSWD:/path/to/script.sh

由于默认情况下该脚本将以 root 身份运行,因此无需在您的脚本中跳过更多的箍。

话题性说明

这对于 Stack Overflow 来说有点主题,因为它与脚本相关。但是,如果您有关于配置 sudoers 文件的后续问题,您可能应该在SuperUser上询问这些问题。

于 2012-07-15T16:26:33.067 回答
1

我对 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 建议的那样。

于 2012-12-15T14:57:07.163 回答