[英]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_name
和chmod u+s executable_name
在其上设置setuid位。 这将导致该程序的执行在其所有者(即root)的许可下运行。
这与允许passwd
修改需要超级用户特权而不实际成为超级用户或sudoer的文件的方式相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.