tee, cat, etc, слать им что-то типа EOF, и продолжать слать команды в sh
эксперимент: убийство процесса tee показывает, что такое физически возможно.
но как сделать это из раста без вызова новой команды под sudo? (я уже молчу о получении pid tee, это мега костыль)
прога находит vendor id android девайса в lsusb и добавляет о нём инфу в /etc/udev/rules.d/51-android.rules чтобы работало adb upd: и перезапускает udevadm
В таком случае нужно избегать использования sudo в программе. Sudo - всего лишь утилита. Хочешь сделать правильно - сделай второй бинарник, который создан только для добавления и использует рут.
а второй зачем? можно if non_root { println!("Дай root"); exit(1); } или Command::new("sudo").arg("этот_же_бинарь")
Для разграничения пакетов. В целом можно обойтись и без него.
Не стоит вызывать судо. Просто Проверяй, что прав рута нет и вались с ошибкой. Потому что: 1. Судо может просто не быть. Да, такие системы встречаются. И да, это я про линукс. 2. Судо может быть настроен так, что пользователь не будет добавлен в sudoers, а значит не сможет пользоваться этой утилитой. Единственный нормальный и корректный подход, который к тому же проще сделать кросс-платформенным, это вторая своя отдельная утилита, которая выполняет действия с правами рута/администратора, а пользователь пусть сам удобным ему способом повышает права и вызывает её. Ещё можешь посмотреть в сторону polkit (PolicyKit бывший), он вообще и создан для программного повышения прав, но тоже может быть не на каждой системе, плюс не очень прозрачная штука.
если sudo нет значит есть su) а ему уже на sudoerrs всеравно
А ещё есть ограничение прав LDAP, есть мандатное разделение в Астра Линуксе, есть свои механизмы в SELinux. Чо, все варианты в огромном условии перебирать? И su "большие специалисты" могут вырезать. И аналоги su/sudo люди периодически пишут, их тоже все проверять будем?
пожксперементируй мб с set-user-id https://www.linux.com/training-tutorials/what-suid-and-how-set-suid-linuxunix/
тулза только под линух, потому что решает только линуховую проблему. но насчёт присутствия суду всё-таки аргумент. тогда и от tee стоит отказаться
Обсуждают сегодня