php - 编辑 sudoers 文件不生效

标签 php linux rights sudoers

各位程序员,

我正在做我的学士项目,遇到了一点问题。

目标是创建一个 Web 应用程序,它可以操作和修改 WAGO PLC 750-8202(您可以将其想象成某种工业 Raspberry PI)的 I/O,它运行带有 lighttpd Web 服务器的嵌入式 Linux。我制作了一些使用 PLC 提供的 DAL(HAL) 函数的 C 脚本。

现在我想将它与我的网络应用程序/站点链接起来。我有一个简单的 PHP 页面(忽略按钮,它什么都不做):

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <button value="CLICK ME">CLICK ME</button>
<?php
echo system("kbusdemo1");
?>
 </body>
</html>

kbusdemo1 执行但没有正确使用 DAL 提供的功能,它给我一个错误。如果我以 root 身份运行该脚本,它会完美运行。我发现问题在于 www 用户权限(我的网络服务器 lighttpd 使用),所以我尝试使用

编辑 sudoers
sudo nano /etc/sudoers

Visudo 没有在PLC linux 系统中实现,所以我不得不直接打开它。我将其更改为下面发布的代码,但如果我尝试以 lighttpd 用户身份(使用 su www)运行 C 脚本,它仍然不起作用。我做错了什么?

感谢您的建议。

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# Runas alias specification

# User privilege specification 
root  ALL=(ALL) SETENV: ALL 
admin ALL=NOPASSWD: /etc/config-tools/get_user_info user 
ALL=NOPASSWD: /etc/config-tools/get_user_info 
www ALL=(ALL) NOPASSWD:ALL

# Uncomment to allow people in group wheel to run all commands
# and set environment variables.
# %wheel  ALL=(ALL) SETENV: ALL

# Same thing without a password
# %wheel  ALL=(ALL) NOPASSWD: SETENV: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now

最佳答案

谢谢大家的帮助。我让它工作了,我没有从 PHP 文件中将脚本调用为 sudo。正如您所建议的,我更改了 sudoers 中的行以仅允许一个特定的脚本,因此对我来说没有安全漏洞。

关于php - 编辑 sudoers 文件不生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43734661/

相关文章:

PHP 检查升序/降序数字

linux如何允许用户读取/写入/删除从特定文件夹中的root创建的文件

javascript - 仅在电子邮件中包含已回答的表格问题

php - 子类是否继承父常量?如果是,我如何访问它们?

linux - 将 1 到 1000 万的整数列表写入文件时如何获得良好的性能?

linux - 如何在交互式环境中使用 bash 命令?

spring - 定义具有继承权限的用户角色

c++ - 如何启动具有 root 权限的 QProcess?

php - 在PHP中生成带有动态图像的ODT文档

php - 通过单击背景而不使用 Js 关闭仅 CSS 灯箱