运行脚本与SUID位设置工作相同的运行相同的脚本与sudo(或根)?

我想用root用户运行一些脚本,但是由apache用户运行。 所以我将SUID位添加到脚本文件中,但是这不起作用。

脚本文件的所有者是根。

 rwsr-xr-x 1 root root 2438paź8 12:10 script.sh

当我运行这个从bash作为根一切正常工作…但是当我运行这个作为Apache用户(它是由svn钩子后运行的COMOMIT脚本作为apache运行)我得到一些权限被拒绝的消息。

这对我来说很奇怪,或者我误解了SUID位的挖掘。 (当执行文件/程序/命令时,用户将获得文件所有者的权限以及所有者UID和GID)。

那么区别是什么呢。 我应该添加适当的行/ etc / sudoers,将启用该脚本作为根运行…

在大多数情况下,bash脚本(以及大多数其他)不能作为SUID运行(由于严重的安全问题*)。

如果你只需要一些以root身份运行的命令,你可以编辑/etc/sudoers来允许apache进程以root身份执行那些特定的命令。

* http://www.vidarholen.net/contents/blog/?p=30