У меня есть приложение (VirtualBox), которое мне нужно запустить от имени пользователя root. Я могу нормально запустить sudo VirtualBox, но я хочу иметь ярлык на моем рабочем столе, который мне нужно только нажать, чтобы запустить VirtualBox как пользователь root. Я пробовал chown root: root, но это ничего не дает.
Спасибо!
Кстати: я использую Debian Squeeze.
Вы по-прежнему можете использовать sudo для запуска программ без ввода пароля. Вы можете сделать это, запустив visudo
и добавив строку для VirtualBox:
sudo visudo
Добавьте в файл следующую строку
yourusername ALL = NOPASSWD: /path/to/virtualbox
Затем создайте ярлык на рабочем столе для sudo /path/to/virtualbox
и он должен работать как root без пароля.
если вы убедитесь, что исполняемый файл доступен только пользователю, которого вы хотите запустить, вы можете установить бит SetUser в разрешениях, например:
chown root:root myexecfile
chmod u+s myexecfile
когда вы это сделаете, файл будет запускаться с битом set-uid, то есть правами его владельца, а не пользователем, который его запускает. Вы можете использовать chmod g + s myexecfile для того же конца, только установить группу, но вместо пользовательского бита.
Однако будьте очень осторожны: если вы оставите этот файл открытым, это небезопасно по своей сути. Например, если вы поместите его на рабочий стол, убедитесь, что права доступа к папкам на рабочем столе равны 700 (нет доступа никому, кроме вас).
Вы должны использовать gksudo
для этого. Это позволит вам запускать графические программы от имени пользователя root, используя графическую подсказку аутентификации. Создание двоичного setuid-root или снятие требования к паролю для sudo откроет вам доступ к атакам повышения привилегий.