... но все еще требуется для приложений, которым требуются права администратора?
Для того, чтобы разрешить следующее:
$ apache2ctl restart
httpd not running, trying to start
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
$ sudo !!
sudo apache2ctl restart #no password asked
$ #works!
Для справки, я видел эту настройку на Amazon e3 случаи
Есть идеи?
Вам нужно отредактировать файл sudoers. Обратите внимание, что успех дает вам менее безопасную систему, а сбой может сломать sudo.
ВСЕГДА редактируйте файл sudoers с помощью sudo visudo
, так как visudo проверяет на наличие ошибок и не сохраняет файл, если он найден.
Плохая идея дать все права на запуск от имени root без пароля, так что просто пропустите один исполняемый файл, который вам нужен(apache2ctl); добавьте следующее в самом низу файла:
YOURNAME ALL = NOPASSWD: /usr/bin/apache2ctl
Вы можете заменить путь к исполняемому файлу на "ВСЕ", если вы выберете, давая вам полное безпарольное sudo.
Замените ВАШЕ имя пользователя и нажмите Ctrl + X для сохранения и выхода. Если произошла ошибка, он предложит вернуться, редактировать или сохранить в любом случае.
Убедитесь, что вы используете полный путь к исполняемому файлу:
, т.е. /usr/bin/apache2ctl
вместо простого apache2ctl
. Это важно, так как без явного указания пути sudo позволит любой программе с именем apachectl по текущему пути пользователя запускаться от имени root.
Вы ДОЛЖНЫ добавить флаг nopasswd в список пользователей, но это не устраняет все задаваемые вопросы. Будет задан только первый вопрос.
sudo visudo
(Вам нужно использовать sudo. Это файл администратора)cyrex ALL = NOPASSWD: ALL
или cyrex ALL = (ALL) NOPASSWD: ALL
Вам нужно будет отредактировать файл '/ etc / sudoers' (для этого есть команда 'visudo'), чтобы добавить NOPASSWD перед списком разрешенных команд для вашего пользователя или группы. Если ваш пользователь находится в группе «admin» - вам необходимо следующее:
%admin ALL=(ALL) NOPASSWD: ALL
Отметьте https://help.ubuntu.com/community/Sudoers , кстати.
Теперь простой ответ! Невозможно испортить что-либо или подделать вашу установку.
Просто введите свой пароль пару раз, и тогда вам больше никогда не придется его вводить! Это позволит вам добавить локальную учетную запись администратора в группу «root», которая затем не прокомментируется из шаблона, который предоставит права суперпользователя «root» всей группе. Вы можете прочитать мои проблемы безопасности / решения для этой процедуры в более поздней части этого сообщения.
% username & - глобальная переменная для вашего имени пользователя (замените ее желаемым именем пользователя)
Шаг 1: Откройте окно терминала и введите « sudo usermod -a -G root% username%
"
Шаг 2: Затем скопируйте / вставьте это ...
sudo sed -i 's/# auth sufficient pam_wheel.so trust/auth sufficient pam_wheel.so trust/g' /etc/pam.d/su`
Шаг 2 ИЛИ введите
sudo nano /etc/pam.d/su`
Перейти к строке 19 и удалите" # "перед # auth достаточным pam_wheel.so trust
(для некоторых может быть другой номер строки)
* Первая команда добавляет ваше% username% в группу "root"
Вторая / третья команды позволяют всем членам группы "root" быть суперпользователями без пароль, вместо предоставления пользователю "root" прав su для аутентификации.
Сноска:
Не возитесь с / etc / sudoers
... Есть много проверок / противовесов эта проверка подлинности su должна пройти. Аутентификация суперпользователя использует ту же процедуру pam.d, что и все остальные аутентификации входа. "/etc/security/access.conf" имеет структуру для управления доступом через связь tcp / ip (192.168.0.1) и через службы telnet (tty1 & tty2 & tty3 ... и т. д.) Это позволяет более точную фильтрацию для каждого приложения через транспортный протокол. Если вас беспокоит безопасность, тогда ваши опасения должны быть направлены на угрозы удаленного доступа / кода, а не на кого-то, кто действительно касается вашего компьютера, когда вы выходите из комнаты !!!
Пища для паранойи (не набирайте это, просто просматривайте):
sudo sed -i 's/#-:ALL EXCEPT (wheel) shutdown sync:LOCAL/-:ALL EXCEPT (wheel) shutdown sync:LOCAL/g' /etc/security/access.conf
^ Это блокирует доступ к консоли для всех, кто не является членом системы или root. Иногда программы устанавливают имена пользователей / группы, которые используются!
Настоящий ответ на этот вопрос может быть сложным, потому что sudo очень мощный и может быть настроен для выполнения интересных вещей. Это подробно описано в документации .
Краткий ответ выполняется sudo visudo
в терминале. Если вы запускаете visudo впервые, он спросит, какой редактор вы предпочитаете. nano обычно считается самым простым в использовании, но выберите редактор, с которым вы наиболее удобны / знакомы. Вам нужно будет решить, кому вы хотите предоставить доступ; это может быть ВСЕ
для всех ( очень плохая идея) , пользователя или системной группы. Группы начинаются со знака%. Например, если вы хотите предоставить всем в группе steroid_users
привилегии root без необходимости ввода пароля для всех команд, вы должны добавить:
%steroid_users ALL=(ALL) NOPASSWD: ALL
в конец файла, выйти и сохранить файл . Если все пойдет хорошо и вы являетесь членом группы steroid_users, вы сможете выполнить sudo * some-command *
, не беспокоясь о необходимости вводить пароль.
Имейте в виду, что любой, у кого есть доступ к вашему терминалу, когда вы вошли в систему - или если у вас есть ssh-настройка для аутентификации на основе ключей, или (что еще хуже) включили вход в сеанс без пароля - полный и беспрепятственный доступ ко всей вашей системе . Если в вашей системе несколько пользователей или это файловый сервер, все файлы пользователей могут быть в опасности, поскольку root может делать что угодно!
Кроме того, если вы сделаете ошибку, visudo выдаст сообщение об ошибке и не сохранять изменения в файле. Это поможет предотвратить полное нарушение sudo. Вам действительно следует прочитать документацию . Sudo предназначен для предоставления пользователям доступа, достаточного для выполнения их работы, без необходимости раскрывать всю вашу систему. Может быть полезно предоставить доступ без пароля только для определенных команд.
Надеюсь, это поможет.
sudo visudo
%<GROUP> ALL = NOPASSWD: apache2ctl
или
sudo visudo
%<GROUP> ALL = NOPASSWD: /etc/init.d/apache2
Думаю, это сработает.
Но будьте осторожны с удалением паролей для sudo.