Как сделать так, чтобы файл мог исполняться только root, но не как root?

Я только догадываюсь, но, возможно, вам нужно убедиться, что Ubuntu смотрит в нужное место. Как говорится на веб-сайте, убедитесь, что вы добавили каталог, в котором находится adb, к вашему $ PATH, добавив export PATH=${PATH}:/usr/local/src/android-sdk-linux_x86/tools & amp; export PATH=${PATH}:/usr/local/src/android-sdk-linux_x86/platform-tools к вашему .bashrc и запуску source .bashrc

1
задан 25 August 2015 в 17:07

1 ответ

Этот ответ дополняет один из них Хизер (который будет работать).

Прежде всего, учтите, что в Unix (и Linux), если вы можете использовать привилегии root, они могут что-то сделать. В случае ответа Хизер ничего не остановит вашего пользователя только sudo /usr/bin/applicationcommand (с небольшим поиском реального пути или чего-то еще). Но я полагаю, что с тобой все в порядке.

В этом случае не просто (1):

sudo chgrp sudo /usr/bin/applicationcommand
sudo chmod 750 /usr/bin/applicationcommand

? Если пользователи могут использовать sudo, это означает (1) , они находятся в группе sudo; приведенные выше команды делают читаемый / исполняемый файл applicationcommand только членами группы sudo. Однако, когда они запускают его, они будут запускать его как своего реального пользователя, как и любую другую команду.

Однако «классическое» решение Unix:

создает группу, назовите ее privileged. sudo chgrp privileged /usr/bin/myapp, а затем sudo chmod 750 /usr/bin/myapp. добавьте пользователей (непривилегированных!), которые вы хотите, чтобы запустить приложение в группу privileged

, и теперь пользователь будет запускать myapp в качестве пользователя, без необходимости имеют sudo привилегии.

Обратите внимание, что если вы хотите, чтобы приложение выполнялось как другой пользователь, Heather's в сочетании с вышеупомянутыми методами.

Сноски:

Прежде всего : Обратите внимание, что вы не можете сделать это, если приложение имеет заданное значение флаг (например, с какой-либо почтовой программой). Проверьте его перед изменением группы двоичных файлов.

(2): в большинстве конфигураций. sudo можно тонко обрезать (см. man sudoers) в дваллионах пути, поэтому эффективность этого простого взлома будет зависеть от того, насколько вы ее настроили.

8
ответ дан 23 May 2018 в 17:57
  • 1
    Это то, о чем я думал при написании комментариев в вопросе, но, хотя любой пользователь в группе sudo имеет привилегии root (по крайней мере, по умолчанию), не каждый пользователь с привилегиями root обязательно находится в sudo группа. Таким образом, ограничение выполнения пользователями в группе sudo технически может вырезать пользователей. /etc/sudoer даст лучшее представление о том, какие пользователи имеют права root, но это все равно исключает (например) пользователей, прошедших аутентификацию через Polkit. – kos 27 August 2015 в 09:06
  • 2
    Я также считаю, что проверка привилегий root, основанная на том, что пользователь является или не находится в группе sudo, достаточно хорош в большинстве конфигураций, но, возможно, это нужно указать? – kos 27 August 2015 в 09:06

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

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