Редактирование файла sudoers не вступает в силу

Привет товарищи программисты,

Я работаю над проектом моего бакалавра и попал в небольшую проблему.

Цель состоит в том, чтобы создать веб-приложение, которое может управлять и модифицировать ввод / вывод WAGO PLC 750-8202 (вы можете представить это как некий промышленный Raspberry PI), на котором работает встроенный linux с веб-сервером lighttpd. Я сделал несколько C-скриптов, которые используют функции DAL (HAL), которые обеспечивает ПЛК.

Теперь я хочу связать его с моим веб-приложением / сайтом. У меня есть простая страница 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 не реализована в системе Linux PLC, поэтому мне пришлось открыть ее напрямую. Я изменил его на код, размещенный ниже, но если я попытаюсь запустить скрипт C от имени пользователя lighttpd (с su www), он все равно не будет работать. Что я делаю неправильно?

Спасибо за ваши предложения.

# 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

0

Решение

Спасибо за твою помощь. У меня все получилось, я не называл скрипт sudo из файла PHP. И, как вы предложили, я изменил строки в sudoers, чтобы разрешить только один конкретный сценарий, поэтому для меня не было дыр в безопасности.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]