Здравствуйте.
Необходимо дописывать в один конфиг-файл, конфиг валяется в /etc и принадлежит руту. На баше это реализовать не получается, по не понятным причинам. Но на С сделал программку, которая делает то же, и все работает отлично. Может кто просветит почему баш-скрипт не работает как ожидается.
возможно в ядре запрещены shell-скрипты с suid
Ваш скрипт - дает возможность выполнить практически любую команду от рута!
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
Здравствуйте.
Необходимо дописывать в один конфиг-файл, конфиг валяется в /etc и принадлежит руту. На баше это реализовать не получается, по не понятным причинам. Но на С сделал программку, которая делает то же, и все работает отлично. Может кто просветит почему баш-скрипт не работает как ожидается.
дело не только в модификации.
есть еще куча подводных камней. короче:
SUID shell scripts are a serious security risk, and for this reason the kernel will not honor them. Regardless of how secure you think the shell script is, it can be exploited to give the cracker a root shell.От сюда
С флагом suid, на двоичных исполняемых файлах, надо быть очень осторожным, поскольку это может быть небезопасным. Установка флага suid на файлы-сценарии не имеет никакого эффекта.Advanced Bash-Scripting
Умные дятьки-разработчик, запретили безбашенным админам ставить SUID на скрипты.
Насколько я понимаю, дело в том, что при запуске скрипта реально запускается интерпретатор. На котором suid-бита нет.
все зависит от реализации. Вот в hp-ux разрешены suid-скрипты и все работает.
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
возможно в ядре запрещены shell-скрипты с suid
Ваш скрипт - дает возможность выполнить практически любую команду от рута!
Возможно (по крайней мере раньше так было) бит suid по отношению к скрипту, не бинарнику == вобще не действует. Об этом написано в одном из INTUIT-овских курсов по Линуксу.
Возможно (по крайней мере раньше так было) бит suid по отношению к скрипту, не бинарнику == вобще не действует. Об этом написано в одном из INTUIT-овских курсов по Линуксу.
Да, именно так и оказалось. Но мне все равно не понять чем такой скрипт не безопасней бинарника.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
[guest@station tmp]$ PATH=.; test.sh;
./test.sh: line 3: clear: команда не найдена
/bin/ls: невозможно открыть каталог /root: Отказано в доступе
[guest@station tmp]$
права наследуются
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Но мне все равно не понять чем такой скрипт не безопасней бинарника.
кроме всего прочего, бинарный файл можно и не читая выполнять (например с правами 100), а вот для выполнения скрипта потребуются права на чтение. Т.о. злоумышленник не сможет дизассемблировать бинарник, с целью найти в нём уязвимость.
например эту нельзя: