繁体   English   中英

如何在bash脚本中以su模式运行命令?

[英]How to run command in su mode in bash script?

我需要运行以下两个命令:

ulimit -s 1024

回声120000> / proc / sys / kernel / threads-max

第一个只能在用户模式下运行(不使用sudo或su),第二个只能在su mode运行。 我想编写一个bash脚本,让我运行这两个命令。 第一个是好的。 对于第二个,我需要su(将用户更改为root),运行命令,然后退出。 实际上,我想使用bash脚本在su模式下运行第二个命令。 任何想法?

如果您的用户有权使用“ sudo tee”,那么一种解决方案是:

echo 120000 | sudo tee /proc/sys/kernel/threads-max

为了安全起见,您必须先添加sudo才能以超级用户身份运行脚本。 如果希望它是无密码的,则需要运行visudo并允许您(或执行用户)以超级用户身份运行此命令而无需密码确认。

另一种方法是在编译的代码上使用setuid位。 编译一个简单的程序,该程序将执行echo 120000 > /proc/... ,然后将其更改为由root拥有: chown 0:0 executable_namechmod u+s executable_name在其上设置setuid位。 这将导致该程序的执行在其所有者(即root)的许可下运行。

这与允许passwd修改需要超级用户特权而不实际成为超级用户或sudoer的文件的方式相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM