我想用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身份执行那些特定的命令。