выполненная оболочка управляет как другой пользователь, позвонивший PHP

Весь DHCP базировался, MAC, базирующиеся, и основанные на IP решения для управления доступом могут быть легко побеждены путем спуфинга их и следовательно наименее эффективные.

Создание VLAN является дешевым методом для ограничения доступа к сети. Это имеет свои собственные ограничения и слабые места.

802.1x аутентификация является основанным на переключателе методом управления портами и будет работать на небольшие организации большую часть времени. Это однако перестало бы работать в случаях, где человек начинает использовать, говорят, что порт коммутатора принтера, который обычно оставляют открытым.

В последние несколько лет новый вид устройств/устройств/решений вышел на рынок, которые реализуют NAC (Управление доступом к сети), и некоторые из них действительно используют 802.1x. Эти устройства/решения требуют, чтобы пользователь прошел проверку подлинности, и также ограничивает доступ пользователей только к ресурсам, которые требуются, чтобы делать их ежедневное задание. Принтер не сказал бы, получают доступ SSH к серверу. Поэтому порт принтера имеет меньше ценности для пользователя теперь.

5
задан 4 February 2011 в 15:43
3 ответа

Не предоставляйте пользователю веб-сервера sudo доступ, Вы просто напрашиваетесь на неприятности. Изучите бит setuid вместо этого:
chmod u+s some_file_that_needs_executing_as_another_user.pl
Каждый раз, когда тот файл выполняется, он будет эффективно выполняться пользователем, который создал его.
На ноте стороны я вполне уверен, Вы не можете передать пароль по каналу в sudo или passwd.

1
ответ дан 3 December 2019 в 01:34

Во-первых, я не понимаю, что sudo управляют, чтобы Вы работали. sudo -u username как предполагается, позволяет Вам, как пользователь один, к sudo команда как пользователь два, путем высказывания (как пользователь один, в этом примере, выполняет команду ls):

sudo -u usertwo ls

Я приношу извинения, попытались ли Вы санировать свои команды выше путем замены username для реального имени пользователя, но я не могу быть уверен, что Вы сделали, таким образом, я должен поднять этот вопрос сначала.

Во-вторых, sudo должен быть настроен, чтобы позволить пользователю выполнить диапазон команд как другой пользователь. Давайте запустимся путем разрешения www-данных sudo команда ls, поскольку пользователь бездельничает; Вы могли протестировать это путем помещения

www-data        ALL = (fribble) NOPASSWD: ls

в Вашем sudoers файле (заменяющий реальным пользователем, как бездельничают). Затем попытайтесь делать, скажем, ls -la /tmp из Вашего Сценария PHP и видят, получаете ли Вы список каталогов.

Я соглашаюсь с James Lawrie, что это не хорошая идея позволить www-пользователю-данных sudo произвольным командам, как произвольные пользователи, passwordlessly, но если Вы разъясняете то, что управляет, чтобы Вы попытались заставить www-данные работать, это может быть разумным способом сделать это.

Править:

Вы попробовали ls в sudoers файле и sudo -u user2 ls -al /tmp в Сценарии PHP, и Вы получаете список каталогов, который убедительно предполагает, что sudo хорошо работает с PHP.

Безусловно, могли Вы позволять /bin/touch в sudoers файле, помещенном sudo -u user2 touch /tmp/TESTFILE в Сценарии PHP затем выполните это? Если файл /tmp/TESTFILE кажется, принадлежавшим user2, мы можем быть уверены, что sudo и PHP хорошо работают togther.

Я должен признаться, что, если я знал, что Вы пробовали к sudo Java, я никогда не буду отвечать на исходный вопрос, потому что я думаю, что Java является гигантским непредсказуемым мешком дерьма, которое ведет себя как полный ребенок, если это не получает среду, это требует (и sudo справедливо строго санирует среду). Но по крайней мере тест выше должен помочь Вам быть уверенным, что, независимо от того, что проблема здесь, это не проблема с PHP и sudo, не играя приятно вместе.

5
ответ дан 3 December 2019 в 01:34

Если Вы хотите дать специальные полномочия процессу веб-сервера, работающему как www-пользователь-данных, можно выполнить одно из следующих действий:

1-Добавляют www-данные к sudoers файлу, так, чтобы это могло выполнить необходимую команду/сценарий, не прося пароль.

2-Включают suexec апачский модуль. Это позволяет Вам изменить пользователя от www-данных до некоторого другого привилегированного пользователя на хост virutal. Так, Вы не должны изменять пользователя для целого сервера.

0
ответ дан 3 December 2019 в 01:34

Теги

Похожие вопросы