Настроить sudo без пароля centos 7

Как запустить команду Sudo без пароля

Команда sudo позволяет доверенным пользователям запускать программы от имени другого пользователя, по умолчанию root. Если вы проводите много времени в командной строке, sudo — одна из команд, которые вы будете часто использовать.

Обычно, чтобы предоставить пользователю доступ к sudo, необходимо добавить пользователя в группу sudo, определенную в файле sudoers . В Debian, Ubuntu и их производных членам группы sudo предоставляются привилегии sudo, а в дистрибутивах на основе RedHat, таких как CentOS и Fedora, группа sudo называется wheel .

Каждому члену этой группы будет предложено ввести пароль перед запуском команды sudo . Это добавляет дополнительный уровень безопасности и является предпочтительным способом предоставления привилегий sudo пользователям.

Однако в некоторых ситуациях, например при запуске автоматических сценариев, вам может потребоваться настроить файл sudoers и разрешить определенным пользователям запускать команды sudo без запроса пароля.

Добавление пользователя в файл Sudoers

Файл sudoers содержит информацию, определяющую права пользователя и группы sudo.

Вы можете настроить доступ пользователя sudo, изменив файл sudoers или добавив файл конфигурации в каталог /etc/sudoers.d . Файлы, созданные внутри этого каталога, будут включены в файл sudoers.

Перед внесением каких-либо изменений рекомендуется создать резервную копию текущего файла:

Откройте файл /etc/sudoers с помощью команды visudo :

При внесении изменений в файл sudoers всегда используйте visudo . Эта команда проверяет файл после редактирования и в случае синтаксической ошибки не сохраняет изменения. Если вы откроете файл в текстовом редакторе, синтаксическая ошибка приведет к потере доступа sudo.

В большинстве систем команда visudo открывает файл /etc/sudoers с помощью текстового редактора vim. Если у вас нет опыта работы с vim, вы можете использовать другой текстовый редактор. Например, чтобы изменить редактор на GNU nano, вы должны запустить:

Прокрутите вниз до конца файла и добавьте следующую строку, которая позволит пользователю «linuxize» запускать любую команду с sudo без запроса пароля:

Если вы хотите разрешить пользователю запускать только определенные команды без ввода пароля, укажите команды после NOPASSWD слова NOPASSWD .

Например, чтобы разрешить использование только команд mkdir и mv :

Использование /etc/sudoers.d

Вместо редактирования файла sudoers вы можете создать новый файл с правилами авторизации в каталоге /etc/sudoers.d . Такой подход делает управление привилегиями sudo более удобным в обслуживании.

Откройте текстовый редактор и создайте файл:

Вы можете назвать файл по своему усмотрению, но обычно рекомендуется использовать имя пользователя в качестве имени файла.

Добавьте то же правило, что и в файл sudoers:

Наконец, сохраните файл и закройте редактор.

Выводы

Мы показали вам, как отредактировать /etc/sudoers чтобы вы могли запускать команды sudo без ввода пароля. Это полезно, когда у вас есть сценарии, в которых пользователю без полномочий root необходимо выполнять административные задачи.

Читайте также:  Порвана куртка как отремонтировать

Если у вас есть вопросы, не стесняйтесь оставлять комментарии.

Источник

How to sudo without password on CentOS Linux

Run sudo without password on CentOS Linux

  1. Backup /etc/sudoers file, run:
    sudo cp /etc/sudoers /root/sudoers.bak
  2. Edit the /etc/sudoers file on CentOS:
    sudo visudo
  3. Run /usr/sbin/rebootcommand without password on CentOS:
    marlena ALL = NOPASSWD: /usr/bin/reboot
  4. Save and exit the file.

How to execute ALL sudo commands without password on CentOS

Type the following command as root user:
# visudo
Or
$ sudo visudo
Append the following entry to run ALL command without a password for a user named marlena:

Save and close the file in vim. It is also possible to grant access to the group name such as sysadm. Any member of sysadm group can run command without a password. The syntax is

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon ➔

Of course, you can force the sysadm group to run only given commands such as /usr/sbin/reboot and systemctl:

Here is my sample config file:

Conclusion

You learned how to run ‘sudo’ command without entering a password in CentOS Linux using various configuration options. For more information see sudo command man page here.

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

FAQ → sudo без пароля (Linux / Unix)

Если вы админ системы и вам регулярно приходится поднимать уровень привилегий в системе, то набирать пароль становится очень утомительно, для этого существует sudo nopasswd т.е. sudo без пароля, как это реализовать я и расскажу в этой маленькой заметке.

Существует 2 варианта реализации этой затеи — работающий и правильный, мы рассмотрим оба.
для примера буду использовать логин пользователя: user

Вариант номер раз — работающий

нам необходимо отредактировать файл

необходимо найти и добавить после записи:

После этого, можем заходить под пользователем user и набирать:

Система больше не будет спрашивать пароль

Вариант номер два — правильный

В принципе, все тоже самое, но нам необходимо создать файлик с содержимым

Также у этого файла должны быть определенные права доступа

После этого можем логиниться в систему под учетной записью user, набирать

система пароль спрашивать не будет
Именно этот вариант является более предпочтительным т.к. позволяет контролировать кому и какие права доступа установлены.

Таким образом можно выдавать права определенному пользователю на выполнение определенных действий, без предоставления административных прав на всю систему.
Например: Нам необходимо предоставить права доступа на перезапуск сервиса memcached пользователю vasia, но мы не ходим его делать админом всей системы, но для выполнения этой операции требуются административные привилегии, мы их можем выдать только на выполнение одной операции.
Создаем файл:

Читайте также:  Rundll32 keyboard disable не работает

Теперь пользователь vasia имеет права sudo на перезапуск сервиса memchached, система не будет требовать от него пароль.

Пойдем еще дальше, а что если пользователю vasia необходимо предоставить права на несколько действий, без админсиких права на всю систему, например, нам необходимо разрешить перезапск определенного сервиса и обновление списка пакетов и установку обновлений системы, тогда файл с содержимым принимает вид:

да именно через запятую, все права доступа и задаются и дальше того что указано в этом файле система выйти не даст.
Вот именно по этой причине второй вариант более правильный, представьте что у вас в системе десятки пользователей, а если сотни, и вам придется просматривать весь конфиг sudoers, понятно что есть поиск, но а во втором варианте, вам достаточно открыть файл с именем пользователя и вы увидите какие права положены именно ему.

Отбираем права у пользователя

Отзыв привилегий в системе производится путем удаления этого файла из директории:

После этого, пользователь vasia, потеряет административный доступ.

Для группы, права предоставляются аналогичным образом, например у нас есть группа powerusers мы хотим предоставить члеманм этой группы права на перезапуск сервисов и обновления системы без предоставления полного административного доступа, тогда создадим файл

Добавим запись вида:

Где:
%powerusers — название группы

Источник

sudo без пароля

Мне как системному администратору часто приходится запускать команды требующие повышенных прав. Поэтому sudo без пароля это то что доктор прописал. Способ который мы тут рассмотрим позволяет не только убрать запрос пароля sudo, но и ограничивать права пользователей на выполнение определенных действий.

Убираем запрос пароля sudo

Создаем по указанному пути файл с именем пользователя

где vasya — имя пользователя (логин входа в систему)

Записываем в файл строчку

Назначаем права доступа на файл

Готово, теперь можете выйти из системы и снова войти, пароль sudo больше просить не будет.

Управление правами пользователя

Использование sudo позволяет грамотно разграничивать права доступа пользователя. Если нужен доступ к одному сервису, нет необходимости давать права root пользователю.

Давайте представим что нам необходимо дать пользователю petya права на выключение сервера. Для этого требуются права администратора.

Создадим файл с именем пользователя

Добавим в него строку

После перечисленных действий пользователь petya имеет права sudo на выключение системы без ввода пароля.

Данный метод хорош тем что вы четко указываете пользователю на что именно он будет иметь высокие привилегии. Ибо давать всем права root плохая идея. В одном файле перечисляются все необходимые права через запятую.

Давайте разрешим пользователю выключение системы, а также установку обновлений в системе на основе Debian (Ubuntu например). Файл с правами пользователя petya будет иметь следующий вид:

Таким образом можно легко манипулировать правами для пользователей, добавлять и удалять их в файле с именем пользователя. Либо вообще удалить файл если требуется полный запрет прав.

Тем же методом можно дать права группе. Например дадим права группе users

%users — вначале идет знак % далее название группы, в данном случае users

Почитать про то как использовать sudo без терминала можно тут

Всем спасибо за внимание и до новых встреч.

Источник

🐹 CentOS 7: Создание учетной записи, настройка sudo, root’ирование без пароля и авторизация по ключу.

Опубликовано 2021-04-16 · Обновлено 2021-06-07

Читайте также:  Могут ли работать пенсионеры не теряя пенсию

Содержание:

1. Задача.

Бывает, что требуется организовать беспарольный доступ к уделённому серверу по ключу, а парольную авторизацию отключить. Просишь это сделать коллегу, который отвечает за удаленный сервер, а он не умеет. На помощь коллеге придёт эта инструкция.

Требуется: Завести удалённую учетную запись, настроить sudo , сделать переключение в учетную запись root без ввода пароля, отключить авторизацию по паролю, организовать подключение к удалённому серверу по SSH-ключам.

2. Решение.

2.1. Подготовка сервера.

Устанавливаем файловый менеджер Midnight Commander, он очень похож на Norton Commander:

# yum -y install mc

Отключение SELinux.

Состояние работы SELinux:

Ответ:

SELinux включен. Отключим его.

Для этого достаточно выполнить замену строки в вышеописанном конфигурационном файле следующей командой:

# sed -i «s/SELINUX=enforcing/SELINUX=disabled/» /etc/selinux/config

Проверим состояние SELinux с помощью команды sestatus , как показано ниже:

Готово! SELinux выключен.

2.2. Создание пользователя.

Создадим учётную запись на сервере. Под ней будет заходить коллега для работы по удалённому доступу. Для удобства можно спросить какое бы он предпочел имя удалённой учетной записи. В примере будет использоваться учетная запись коллеги myrzik.

Создадим ему учетную запись:

Пароль ему делать на сервере не будем, он будет подключаться по ключу к серверу.

2.3. Настройка sudo.

Сделаем копию системного файла.

# cp /etc/sudoers /etc/sudoers.original

Открываем системный файл, чтобы запускать команды без ввода пароля.

Ищем раздел «Same thing without a password» и добавляем в него в него строку:

Ответ: Зашел в учетную запись пользователя mytzik ввода без пароля.

Ответ: Зашел в учетную запись root ввода без пароля.

Выходим из цепочки учетных записей.

Настройка sudo и root‘ирование без пароля настроено.

2.4. Авторизация по ключу.

Теперь организуем вход для коллеги с его ключом.

Коллега, который планирует заходить удалённо на наш сервер, должен сгенерировать 2 ключа: приватный и публичный.

Приватный ключ никому отправлять нельзя, а публичный можно распространять для удалённого входа в нужные системы.

И так! Есть ключ коллеги id_rsa.pub , который мы получили от него по электронной почте.

Надо его переписать в специальный файл-хранилище ключей локального пользователя на удалённом сервере.

Создадим каталог для посторонних публичных ключей. Пускай будет каталог

Кладу в него ключ id_rsa.pub .

Смотрю что содержится в файле ключа.

Ответ:

Да, это файл публичного ключа id_rsa.pub и он содержит запись « ssh-rsa » и её нужно добавить в файл /home/myrzik/.ssh/authorized_keys пользователя myrzik.

# mkdir /home/myrzik/.ssh
# cat

Проверим, что теперь в файле содержится запись публичного ключа пользователя удаленной работы.

Ответ:

Файл публичного ключа id_rsa.pub можно удалить, так как он уже не нужен.

Настроим права на каталоги и файлы:

# chmod 755 /home/myrzik
# chmod 700 /home/myrzik/.ssh
# chmod 600 /home/myrzik/.ssh/authorized_keys
# chown -R myrzik:myrzik /home/myrzik/.ssh/

2.5. Отключение авторизации по паролю.

Сделаем копию системного файла.

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

Отредактируем системный файл:

Запретим аутентификацию по паролю.

Модифицируем файл конфигурации изменением советующего поля на указанное значение:

# systemctl restart sshd.service

Протестируем попытку удалённого доступа на сервер с другого компьютера с авторизацией по ключу пользователя myrzik.

# su myrzik
# ssh myrzik@XXX.XXX.XXX.XXX

Вход по ключу пользователя myrzik на удалённый сервер работает исправно!

Вход по логину и паролю игнорируется сервером.

Источник

Оцените статью