给一个bash脚本suid权限

时间:2014-02-10 16:24:55

标签: linux bash startup

我一直在做很多研究,但没有发现任何真正回答我问题的内容。

我编写了一个bash脚本,可以自动更改某些进程的nice值。此脚本需要在启动时运行(我目前在启动应用程序中使用它)并且需要suid权限才能实际更改nice值。我已经尝试了chmod的一些事情,并将文件的所有权更改为root,但似乎没有任何工作。当脚本运行时,我不断收到“权限被拒绝”。

我在终端中使用以下方式手动启动它时运行正常:sudo ./myfile 但在启动时启动时不起作用

我正在使用Ubuntu

2 个答案:

答案 0 :(得分:1)

如果你在debian / ubuntu,请执行以下操作:

cp /path/to/your/script.sh /etc/init.d/ 

chmod +x /etc/init.d/yourscript.sh

update-rc.d yourscript defaults

这里我认为你应该得到LSB TAGS丢失的警告,LSB TAGS是启动顺序的说明...... 但如果您的脚本是基本脚本,请忽略该警告并重新启动计算机。

答案 1 :(得分:0)

首先在/etc/init.d中复制您的脚本 然后(对于基于redhat的服务器,如centos)

chmod +x script.sh
chkconfig --add script.sh
chkconfig --level 0123456 script.sh on

对于像ubuntu这样的Debian: help help2 help3

尝试:

cp /path/to/your/script.sh /etc/init.d/ 
chmod +x /etc/init.d/yourscript.sh
update-rc.d yourscript defaults

运行级别是逻辑的任务组。传统上你有五个运行级别。

0 boot
1 single user 
2 not used
3 multiuser
4 not used 
5 gui
6 reboot