LINUX.ORG.RU
ФорумAdmin

Монтирование через sudo

 ,


0

2

Добрый день! Нужно примонтировать токен по скрипту, в скрипте команда:

sudo usbip attach -r 192.168.13.41 -b 1-1

в судорезе указываем

user   ALL=(ALL) NOPASSWD: /home/user/usb.sh

при запуске скрипта заставляет вводить пароль

если указываем

user ALL=(ALL) NOPASSWD: ALL

то даёт выполнить, но это ни есть безопасно, дав ему творить всё что захочется


Ответ на: комментарий от xmikex

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

user   ALL=(ALL) NOPASSWD: /usr/bin/usbip attach -r 192.168.13.41 -b 1-1

и тогда будет беспарольно запускаться только данная строчка $ sudo usbip attach -r 192.168.13.41 -b 1-1
запуск usbip с другими параметрами будут обрабатываться другими правилами, т.е. будет парольным

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 4)
Ответ на: комментарий от firkax

А без рута есть другие технологии монтирования? а то тут все серты от всех юзеров вылезут у каждого юзера, даже если запускать монтирование по потребности, а не по автозапуску в сессию

Dim0n_
() автор топика
Ответ на: комментарий от einhander

Насчёт жертвы я имел ввиду то, что он, будучи уже ментально повреждён sudo-идеологией, пытался выдать рутовые права скрипту в $HOME. Последствия очевидны: скрипт редактируется в дальнейшем как угодно, и через него выполняется что угодно. Выдача таких прав usbip, посоветованная кем-то позже, немногим лучше: этим выдаются права на все действия, которые может сделать эта программа, а для этого надо как минимум их всех внимательно просмотреть, чтобы удостовериться, что среди них нет ни одного, которое можно использовать для незапланированной вредоносной деятельности.

Да, единственный нормальный вариант это писать обёртку с suid-root. Обёртка должна проверять, что именно этот набор аргументов допустим для запросившего это действие юзера (getuid() для suid-прог возвращает uid запустившего), и только после этого делать нужное действие. Ну или проще: если разрешённый вариант аргументов только один, пусть обёртка сразу его и вызывает а своих входных аргументов не имеет).

sudo тоже может выполнять роль такой обёртки, но его методы проверки (строковое сравнение команды с шаблонами) плохие, сравнивать надо не строки а их функциональное содержание.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от einhander

Ну, вместо suid на бинарь можно повесить CAP_NET_ADMIN, в отличии от запуска скрипта через sudo.

Не секьюрно.

Безопасность — это миф. И suid на бинарь не создаёт проблемы, проблемы создают ошибки в этом бинаре, которые ещё надо найти. Одно дело общераспространённые бинарники Линукс дистрибутивов, а другое дело уникальный бинарник, исходники от которого припрятаны.

А насчёт «жертвы sudo» согласен. ТС запускал скрит через sudo и в сам скрипт пихал вызов usbip через sudo. Ubuntu повредела мозг людям, они теперь везде sudo пихают.

mky ★★★★★
()
Ответ на: комментарий от mky

Ну, вместо suid на бинарь можно повесить

Который слетит при следующем обновлении пакета.

Безопасность — это миф

Абсолютная безопасность - миф.

они теперь везде sudo пихают.

Ехал sudo, через sudo

einhander ★★★★★
()
Последнее исправление: einhander (всего исправлений: 1)
Ответ на: комментарий от einhander

Сейчас у файла есть ambient capabilities, поэтому CAP_NET_ADMIN можно ставить на простой самописный бинарь, который будет только вызывать usbip с нужным параметрами и ничего другого не делать.

mky ★★★★★
()