Правило udev для предоставления пользователю полного доступа к сетевому интерфейсу can0

Любая команда с установленным -uid или установленным битом gid -. Будет запущен как владелец пользователя или группы. Однако, если они написаны правильно, они не позволят вам сделать то, что вы не должны. sudoи suпозволяют вам делать что-либо значимое только в том случае, если вы укажете правильный пароль. Большинство других инструментов будут безопасно делать только одну вещь, но не позволят вам повышать привилегии.

Однако, если вы можете записывать в хранилище от имени пользователя root (, удалив носитель и вставив его в другую машину, или загрузившись с другой ОС ), вы можете добавить нужные вам файлы с соответствующими правами доступа. разрешение.

Исполняемые файлы с набором -uid/set -битов gid являются единственным способом повышения привилегий в системах Unix (Современные системы теперь имеют возможности, но они сводятся к тому же вещь ).

Ядро не использует пароли, поэтому для реализации паролей создается исполняемый файл с владельцем root и установленным битом -uid. Этот исполняемый файл проверит пароль, а затем установит пользователя соответствующим образом и запустит оболочку (или что-то в этом роде ).

Предположим, возможности не используются, тогда find / -executable -type f -user root -perm -u+s -print 2>/dev/nullбудут перечислены все исполняемые файлы, повышающие разрешения (хотя бы временно ), большинство (, возможно, все )будут бесполезны.

0
24.08.2020, 20:42
1 ответ

Следуя подсказке от @AB, я использовал libpam(pam_cap.so), чтобы добавить возможность CAP_NET_ADMINк моему пользователю inheritable, установленному во время входа в систему (и ssh ), затем добавил ту же возможность к /bin/ip' наборы inheritableи permitted. Теперь я могу включать и выключать сетевые интерфейсы от имени пользователя и не полагаться на sudo.

Как это сделать описано здесь:https://stackoverflow.com/questions/1956732/is-it-possible-to-configure-linux-capabilities-per-user

1
18.03.2021, 23:10

Теги

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