[问题] 如何在Scipt里执行root的指令

楼主: learnbao (嘻嘻)   2015-05-25 21:36:52
各位前辈好~
想请问怎么在scipt里面执行需要root权限的动作,且不用打密码
作业环境CentOS6.2
因为我在crontab里设定每一分钟去执行
到一个资料夹底下复制一个档案到另外一个资料夹
但是这个cp的动作需要root权限,我根据google上面的用法
还是一样会显示权限不符合 有人能帮我解决疑惑吗 谢谢
下面这个方法试过了没用 还是要打su,且一样要输入密码
sudo chown root.root <my script>
sudo chmod 4755 <my script>
/etc/sudoers
Cmnd_Alias CMDS = /path/to/your/script
<username> ALL=NOPASSWD: CMDS
作者: kenduest (小州)   2015-05-25 21:47:00
1. shell script 设定 4755 这种 setuid 权限不大正确因为 shell script 是文字档案,最后由 shell 读入执行所以多了 setuid 权限多此一举,只要 755 这类即可2. script 要具备 root 权限,要使用 sudo 命令去执行比方 sudo /path/myscript.sh 这样才会有预期结果myscript.sh 本身才会有 root 身份权限可以运作3. 若执行 /path/myscript.sh 自己本身提升权限的话可以自己于自己 script 判断必要呼叫 sudo 来执行自己示意程式码截图:http://i.imgur.com/AmFYYay.png4. 搭配 crontab 时候,注意一下使用 visudo 设定时没有 requiretty 这类设定,因为背景执行程式是无终端机5. 因为 sudo 会认绝对路径判断程式档案是否被允许执行,所以我提供的 script 程式码档案你也要自己调整一下就是script放置到正确目录位置,然后档案本身内容sudo 后面就是传完整的路径位置,那sudo才会过关
作者: bartschen (are you there ?)   2015-05-25 21:55:00
请问4755的部份,不正确的原因是因为没有编译成为binary吗?谢谢
作者: kenduest (小州)   2015-05-25 21:57:00
binary 档案 setuid 权限才会有实质功能6. 简单一点请用 root 帐号身份执行该 script 比较单纯

Links booklink

Contact Us: admin [ a t ] ucptt.com