История изменений
Исправление 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 сделать), а затем забирает из неё результаты и куда-то их уже кладёт.
то есть по-факту ты сидишь от рута
есть такая нехорошая штука как человеческий фактор и, когда ты используешь аккаунт с неограниченными привелегиями, шансов выстрелить себе в ногу значительно больше, чем в случае нарезанных прав эскалации.