如何在perl中以root身份运行句子

时间:2018-05-18 09:44:52

标签: linux apache perl debian

我已经制作了一个使用apache2将用户添加到系统的perl程序。当我作为root运行但它在html的寄存器中使用它时它工作,因此该程序由该用户运行(我认为)并且它不起作用。 /var/log/apache2/error.log中的错误是:<ng-container [formGroup]="form"> <mat-checkbox *ngFor="let controlName of controlNames" [formControlName]="controlName">{{controlName}}</mat-checkbox> </ng-container> 该行是以下

"AH1215: can't open_a /etc/passwd Permission denied at /usr/lib/cgi-bin/registro.cgi line 60"

一个解决方案必须是使用chmod + s向registro.cgi提供权限+ s,但不允许使用这种方式。

1 个答案:

答案 0 :(得分:1)

您的问题的前提表明缺乏对系统安全性的适当关注,但如果确实希望将这种特权提供给Web应用程序,那么合理的方法就是单独{ {1}}以提升权限运行的程序,用于执行少数根级操作。

这些setuid程序的功能有限,您可以进行额外的输入验证和验证,以确保它们不会被劫持做坏事。然后,Web脚本可以根据需要调用此setuid程序。

我想强调一下我允许CGI脚本操纵setuid的警告。对于Web应用程序来说,这是非常可疑的行为,在进行设计之前,您应该仔细考虑。