как мне остановить рут от запуска программы

Я бы хотел, чтобы мой пользователь root не запускал определенные приложения, которые могут изменять права доступа к файлам, что, в свою очередь, не позволяет обычным пользователям снова запускать эти приложения.

например, если я sudo для root, а затем запускаю thunderbird из командной строки, это меняет права доступа к файлам в моем домашнем каталоге / профиле, поэтому я больше не могу запускать его как обычный пользователь; то, что я хотел бы сделать, это запретить root запускать thunderbird и, следовательно, предотвратить повторение этой пользовательской ошибки.

какие-либо предложения?

, чтобы уточнить,

, если у меня много администрирования, я использую «sudo -s», который дает мне корневую оболочку, ее раз в год или Итак, я стреляю себе в ногу.

0
задан 14 November 2012 в 08:20

4 ответа

У меня есть привычка открывать дополнительный сеанс для корневого доступа с sudo su - и с заметным приглашением. Это мешает мне делать глупости с sudo.

0
ответ дан 14 November 2012 в 08:20

Я полагаю, так как это случай, когда пользователь с костяными головами стреляет себе в ногу, нет простого способа сделать это. с большой силой приходит отличная способность к ответу, и, вероятно, было бы лучше, если бы вы научились не использовать sudo -s так часто.

Тем не менее, я собираюсь обернуть bash-скрипт вокруг thunderbird, который проверяет имя пользователя с помощью whoami или $ SUDO_USER и затем прерывает работу, если это администратор. это не общее решение, но оно поможет в этом единичном случае.

0
ответ дан 14 November 2012 в 08:20

Если у вас установлено thunderbird локально, где-то в вашем домашнем каталоге, вы можете изменить разрешения на 500, чтобы только вы могли выполнять эту программу.

Запустите это на исполняемом файле

chmod 500 thunderbird

Также, как сказал TrailRider, не запускайте программы с префиксом sudo, это может быть потенциально опасно . Вы можете исправить разрешения, изменив владельца каталога thunderbird на свое имя пользователя.

0
ответ дан 14 November 2012 в 08:20

Откройте исходный код программы, найдите main(), добавьте, что строки

if (geteuid() == 0) {
    fprintf(stderr, "Access by root is disabled.\n");
    exit(255);
}

перекомпилировали и устанавливают.

0
ответ дан 16 October 2019 в 16:55

Другие вопросы по тегам:

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