Как в Ubuntu сделать так, чтобы любой пользователь мог запустить определенную программу с правами суперпользователя?
Есть бинарник, который лежит по постоянному пути.
Требуется, чтобы при запуске этой программы она могла выполнять действия с правами root, а точнее - менять права доступа к файлам. Как это реализовать?
Если это бинарник, а не скрипт, то помимо sudo есть ещё один вариант: поменять владельца файла на root (chown root path/to/binary) и установить SETUID-бит (chmod u+s path/to/binary).
Почему-то многие в интернетах пишут, что SETUID-бит не стоит использовать для чего-попало. Без него не могут сделать свою работу полторы утилиты ядра и больше его никому ставить не стоит.
Без него не могут сделать свою работу полторы утилиты ядра
...которые вполне можно было бы запускать через sudo, ага.
и больше его никому ставить не стоит
ровно так же, как не стоит давать права делать всем sudo на непойми что. В отношении безопасности в данном случае sudo и setuid почти равнозначны, setuid даже более безопасен в том плане, что он относится к конкретному файлу на который его установили, а не к текстовому пути в файловой системе.
Sly_tom_cat ., свербит? Назовите хотя бы одну причину (обоснованную, а не "почему-то многие в интернетах пишут"), по которой sudo предпочтительнее SETUID в ситуации описанной автором вопроса.