Посмотрите на определения menuentry
в /boot/grub/grub.cfg
; именно там определяется текст пункта меню. Однако вполне вероятно, что при обновлении пакета GRUB конфигурация регенерируется из осколков, расположенных в /etc/grub.d/
; обратитесь к файлу README
в нем, чтобы узнать, как отредактировать их по своему вкусу.
Функция безопасности заключается в комбинации с битом suid / sgid, но читайте дальше .
Один только бит Exec теперь в основном удобен - он показывает, какие файлы предназначены для непосредственного выполнения.
Но это не мешает выделенному пользователю запускать файл, как уже было показано другими.
Загвоздка в том, что когда вы можете обойти (отсутствие) бита exec при запуске файла с явным загрузчиком, вы также не используете его бит suid / sgid, поэтому вы не получите повышенных привилегий.
Давайте в / bin
-rwsr--r-- root root some_privileged_command
Вы можете выполнить команду от имени непривилегированного пользователя с помощью
$ /lib/ld-linux.so.2 /bin/some_privileged_command
, но она не будет выполняться с правами root, в отличие от
-rwsr-xr-x root root other_privileged_command
, которая будет, если вы выполните ее напрямую как
$ /bin/other_privileged_command
Тем не менее, в любом случае это спорно для команд shebang, потому что они не будут выполняться с корневыми perms даже с установленным suid - для этого самому исполняемому файлу оболочки потребуется этот бит (и было бы очень, очень плохо это делать).
Да, вы можете использовать bash / путь / к / сценарию
, но сценарии могут иметь разные интерпретаторы. Возможно, ваш сценарий был написан для работы с ksh
, zsh
или, может быть, даже awk
или expect
. Таким образом, вы должны знать, какой интерпретатор использовать для вызова сценария. Вместо того, чтобы создать сценарий со строкой shebang (это #! / Bin / bash
вверху) исполняемым файлом, пользователю больше не нужно знать, какой интерпретатор использовать.
Это также позволяет вам поместить сценарий в $ PATH
и вызвать его как обычную программу.