LINUX.ORG.RU

История изменений

Исправление adn, (текущая версия) :

Ты наверно чего-то не понимаешь.

я то как-раз понимаю. любая программа с suid bit’ом по факту запускается от рута.

Есть действие, оно прописано в коде программы passwd. Рядом, там же, прописан алгоритм предоставления прав к этому действию, тоже в коде.

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

тут появляется лишняя привязка и к расположению этого бинарника в фс, и к его синтаксису. Зачем?

не понимаю проблемы. ты часто переносишь что-то из /bin или /usr/bin ?

то делается соответствующий интерфейс (можно suid-root враппером), который при запуске инициирует выключение.

правильно и sudo и является этим враппером

Второй вариант: юзеру выключение компа недоступно. Если так, то, значит, выключение компа - это инициатива администратора (возможно, по просьбе юзера, или ещё как-то, но не суть), и выключать комп должен root. Тут очевидный вариант: делаем от рута su в юзера, который качает что ему нужно, а затем рут делает выключение.

жесть какая. разводим бюрократию и лишние опасные действия для тривиальной задачи

не юзер, который компилировал, что-то себе повышает, а рут, для сборки, сначала организует ограниченную песочницу (в которой ограниченный юзер может и make install сделать), а затем забирает из неё результаты и куда-то их уже кладёт.

то есть по-факту ты сидишь от рута

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

и тебе не надо ни с кем делиться рутовым паролем, если ты не единственный пользователь

Исходная версия adn, :

Ты наверно чего-то не понимаешь.

я то как-раз понимаю. любая программа с suid bit’ом по факту запускается от рута.

Есть действие, оно прописано в коде программы passwd. Рядом, там же, прописан алгоритм предоставления прав к этому действию, тоже в коде.

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

тут появляется лишняя привязка и к расположению этого бинарника в фс, и к его синтаксису. Зачем?

не понимаю проблемы. ты часто переносишь что-то из /bin или /usr/bin ?

то делается соответствующий интерфейс (можно suid-root враппером), который при запуске инициирует выключение.

правильно и sudo и является этим враппером

Второй вариант: юзеру выключение компа недоступно. Если так, то, значит, выключение компа - это инициатива администратора (возможно, по просьбе юзера, или ещё как-то, но не суть), и выключать комп должен root. Тут очевидный вариант: делаем от рута su в юзера, который качает что ему нужно, а затем рут делает выключение.

жесть какая. разводим бюрократию и лишние опасные действия для тривиальной задачи

не юзер, который компилировал, что-то себе повышает, а рут, для сборки, сначала организует ограниченную песочницу (в которой ограниченный юзер может и make install сделать), а затем забирает из неё результаты и куда-то их уже кладёт.

то есть по-факту ты сидишь от рута

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