Longobard
написал 7 января 2005 года в 21:02 (4548 просмотров)
Ведет себя
как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.
Есть такая ситуевина:
bash скрипт, требющий для своей работы root права. Нужно его дернуть из php морды. Морда готова. А вот скрипт выполяется криво — прав ему не хватает явно (например в /etc/shadow писать не может и т.д.). Я поставил на скрипт 777 права и suid бит — все равно не помогло. Че делать ? :)
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
тебе опять явно не повезло……
shell скрипты не могут быть suid… даже root-suid…
вот perl скрипты — те могут, почему-то. а вот shell..
ну, security, чтоб её..
бл#! Так че мне делать то! Хорошо, как без suid обойтись?
Ну очччень нужно из пхп скрипта вызвать тот bash скрипт……
напиши на perl сам скрипт
или обёртку вызова своего шелл скритпа
ну или `sudo script.sh` настрой
Фигня война..
Короче сделал так: простенькая оболочка на Си, на которой стоит suid, и она запускает скрипт. А вот лажа в чем:
longobard addhost # ls -l wrapper
-rwsrwsrwx 1 apache apache 12581 Янв 7 23:04 wrapper
т.е. все проставлено как надо. В скрипте направляю выхлоп команды id из скрипта в файл. Вот что вижу:
uid=81(apache) gid=81(apache) groups=81(apache)
и это при том, что скрипт лежит в /sbin, куда всем юзерам кроме рута вход закрыт. Т.е. несмотря на суид бит на оболочке, скрипт все равно запускается от юзера apache!!!!! ШООЗАААНААХХ!!!!
может ты сделаешь-таки над этим wrapper
а? а то иначе как-то даже непонятно, с чего оно у тебя root-suid должно быть.. пока что оно у тебя apache-sugid
longobard addhost # ls -l wrapper
-rwsrwsrwx 1 root root 12581 Янв 7 23:04 wrapper
вот выхлоп скрипта:
longobard addhost # cat /tmp/out.wrap
uid=81(apache) gid=81(apache) groups=81(apache)
нифига не помогло. Пытасю понять. с какими правами работают php скрипты.
мдааа уж…
а ты не uid и gid смотри.
ты euid и egid смотри.
странно, что perl-скрипт тоже не смог стать root-suid, вообще-то должен был…. ну да ладно….
странная у тебя команда id. У мня она euid и egid не выводит :(
тогда вот это, и не мучайся: