Если у вас есть команда, которая не может причинить вреда, но требует привилегий root, вы можете изменить ее, чтобы иметь атрибут «set user id» (set uid или suid). Вот пример:
ls -l /bin/chsh
-rwsr-xr-x 1 root root 23376 Mar 22 21:23 /bin/chsh*
Этот файл имеет тег "s", показывающий, что во время выполнения он примет идентификатор пользователя root
(3-й столбец).
Тем не менее, это потенциально опасно, и локальный злоумышленник, способный вызвать эту команду, может захватить вашу систему, если сама команда не запрограммирована на обращение с вызовом suid 0. Вы были предупреждены.
Сказав это, вы можете сделать:
chmod u+s,a-w /usr/bin/nmcli
(при необходимости измените путь, например, на /bin/nmcli
в соответствии с вашей системой)
Если вы хотите ограничить возможность вызывать (теперь опасную) команду, вы можете сделать ее доступной только для специальной группы, например by
chgrp john /usr/bin/nmcli
chmod o= /usr/bin/nmcli
Таким образом, только кто-то из группы john
(и root) мог вызвать команду. В идеале используйте группу, в которой состоит только ваш пользователь.