ОС Linux позволяет сделать так, чтобы для запуска приложения требовалось ввести пароль.
Точнее, пароль суперпользователя.
Например, это может быть браузер, которым пользуется конкретный человек.
Пример реализации для браузера Google Chrome
gksudo chown teacher-206 /usr/bin/google-chrome;sudo chmod a+x /usr/bin/google-chrome;sudo -k; google-chrome;gksudo chown root /usr/bin/google-chrome;sudo chmod a-x /usr/bin/google-chrome;sudo -k;
Сделано на основе информации отсюда.
Как сделать так, чтобы консольная программа всегда запускался от sudo и не нужно было вводить пароль и писать перед ней sudo?
Система lubuntu 19 имеется консольное приложение, которое не запускается без sudo. Как сделать так, чтобы можно было запускать приложение без приставки sudo?
- Вопрос задан более трёх лет назад
- 1419 просмотров
1 комментарий
Простой 1 комментарий
Как сбросить пароль для входа в Linux
man sudoers
Решения вопроса 0
Ответы на вопрос 4
chown root app chmod u+s app
Ответ написан более трёх лет назад
Нравится 2 5 комментариев
chown root apt-get chown: cannot access ‘apt-get’: No such file or directory
такой код ведь должен работать? или нужно как то найти пути для apt-get?
Конечно, нужно.
which apt-get
Но для системных файлов так-то нехорошо пермишны менять.
galaxy, а как то проверить изменения после команд можно? чтото мне программа пишет запустить от рута, хотя apt-get работает теперь без sudo
galaxy, если я даю права запускаться от суперпользователя консольной утилите, а эта утилита использует другие консольные утилиты в своей работе, то права будут переданы всем кто участвует в работе скрипта которому даны права суперпользователя?
Права-то будут переданы, но если утилита — скрипт (не исполняемый файл), фокус с suid не сработает.
В этом случае сложно что-то советовать, не зная, какую задачу вы решаете. Можно сделать alias для пользователя, который запускает скрипт:
alias superapp=’sudo app’
Но надо чтобы shell пользователя был interactive (например, при запуске из cron это не так).
Из питона, кстати, можно вызвать что угодно, хоть с sudo, хоть без.
дописываешь в /etc/sudoers
user ALL=(ALL) NOPASSWD: /bin/apt-get, /sbin/reboot
и команда
sudo reboot
работает работает от рута без запроса пароля.
https://losst.ru/otklyuchaem-parol-sudo-v-linux
Ответ написан более трёх лет назад
Нравится 2 5 комментариев
Вход в Fedora Linux без пароля
странно но у меня не работает. чяднт? после перезагрузки команда apt-get просит пароль. user заменил на своего пользователя
значит строчку неправильно вписал. вместо user пиши имя своего пользователя.
вот только что проверил
добавляем правило для запуска /usr/bin/id под рутом без пароля
сбрасываем запомненный пароль в sudo и запускаем id через sudo — всеок, запускается под рутом без запроса пароля.
User xzx may run the following commands on xzx-pc: (ALL) NOPASSWD: /bin/apt-get, /sbin/reboot (ALL : ALL) ALL (ALL) ALL
но apt-get update выдает
E: Не удалось открыть файл блокировки /var/lib/apt/lists/lock — open (13: Permission denied) E: Невозможно заблокировать каталог /var/lib/apt/lists/ W: Проблема при удалении файла /var/cache/apt/pkgcache.bin — RemoveCaches (13: Permission denied) W: Проблема при удалении файла /var/cache/apt/srcpkgcache.bin — RemoveCaches (13: Permission denied)
pfg21, отредактировал вопрос. нужн чтобы приложение(которое для работы требует права суперпользователя) запускалось без приставки sudo (к примеру чтобы потом его можно было более просто вызвать из скрипта питона)
Источник: qna.habr.com
compizomania
Многие пользователи, особенно только что перешедшие с Windows на Linux с раздражением относятся к вводу пароля администратора после выполнения терминальной команды с sudo. Прежде всего давайте разберём для чего вообще вводить пароль при выполнении команд в терминале от имени администратора системы, т.е. с sudo.
Я в одной из статей о строении файловой системы Ubuntu уже пояснял по поводу ввода пароля. Повторюсь ещё раз, т.к. вопрос это достаточно серьёзный и требует чтобы пользователь не только раздражался, но и понимал для чего нужен пароль. http://compizomania.blogspot.com/
1. Когда вы устанавливали систему Linux/Ubuntu на своём компьютере, на одном из шагов вам было предложено ввести имя администратора и пароль, иначе вы не могли бы продвинуться дальше в установке. Это одно из неотъемлемых условий систем Linux, а не только Ubuntu. Делается это в целях вашей же защиты, т.к. файловая система находится в свободном доступе и если систему не защитить паролем, а компьютером будет управлять другое лицо (друг/подруга, родственник и т.д.), то это лицо по незнанию, а может быть и злому умыслу сможет беспрепятственно войти в файловую систему, и изменить конфигурационные файлы, вследствие чего система может быть неработоспособной, тогда вы возможно потеряете какие-то очень важные данные/файлы, т.к. систему нужно будет переустанавливать. Думаю я достаточно понятно объяснил ситуацию с необходимостью пароля администратора.
2. Теперь рассмотрим ситуацию кода у компьютера только один хозяин, он же администратор системы, который вводил свои данные и пароль во время установки системы. В данном случае имеется ввиду, что никому другому вы не доверяете или просто вашим компьютером не может воспользоваться другое лицо в ваше отсутствие.
В данном случае вы, как администратор и единственный пользователь можете отказаться от ввода пароля ( на свой страх и риск ), изменив конфигурационный файл sudo.
Делается это следующим образом
Откройте терминал (Ctrl+Alt+T) и выполните следующую команду на редактирование файла:
sudo gedit /etc/sudoers
Когда откроется редактор с файлом, после строки %sudo ALL=(ALL:ALL) ALL добавьте следующее:
администратор ALL=(ALL) NOPASSWD: ALL
Только вместо администратор измените на своё имя, которое вы вводили при установке системы. У вас должно получится примерно как на снимке:
Сохраните файл (Ctrl+S) и закройте редактор.
А теперь выполните следующую команду в терминале, чтобы убедиться в отмене пароля:
sudo apt-get update
Источник: compizomania.blogspot.com