Как да превключите (su) към друг потребителски акаунт без парола

Сподели

В това ръководство ще покажем как да преминете към друг или конкретен потребителски акаунт, без да изисквате парола. Например, имаме потребителски акаунт, наречен postgres (по подразбиране PostgreSQL системен акаунт на суперпотребител), ние искаме всеки потребител (обикновено наш PostgreSQL база данни и системни администратори) в групата, наречена postgres за да преминете към postgres акаунт с помощта на su команда без въвеждане на парола.

По подразбиране само root потребителят може да премине към друг потребителски акаунт, без да въвежда парола. Всеки друг потребител ще бъде подканен да въведе паролата на потребителския акаунт, към който преминава (или ако използва командата sudo, ще бъде подканен да въведе паролата си), ако не предостави правилната парола, те получават един “неуспешна идентификация” грешка, както е показано на следващата екранна снимка.

Грешка при неуспешно удостоверяване на потребителя
Грешка при неуспешно удостоверяване на потребителя

Можете да използвате някое от двете решения, предоставени по-долу, за да разрешите горния проблем.

1. Използване на PAM модул за удостоверяване

PAM (Включващи модули за удостоверяване) са в основата на удостоверяването на потребителя в съвременните операционни системи Linux. За да позволим на потребителите в конкретна група да преминат към друг потребителски акаунт без парола, можем да променим настройките по подразбиране на PAM за команда su в /etc/pam.d/su файл.

# vim /etc/pam.d/su
OR
$ sudo vim /etc/pam.d/su

Добавете следните конфигурации след „достатъчно удостоверяване на pam_rootok.so”, както е показано на следващата екранна снимка.

auth       [success=ignore default=1] pam_succeed_if.so user = postgres
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

 

 

В горната конфигурация първият ред проверява дали целевият потребител е такъв postgres, ако е така, услугата проверява текущия потребител, в противен случай default=1 редът се пропуска и се изпълняват нормалните стъпки за удостоверяване.

auth       [success=ignore default=1] pam_succeed_if.so user = postgres

Редът, който следва, проверява дали текущият потребител е в групата postgres, ако yes, процесът на удостоверяване се счита за успешен и в резултат се връща достатъчен. В противен случай се изпълняват нормалните стъпки за удостоверяване.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres
Конфигурирайте PAM, за да разрешите изпълнение на команда Su без парола
Конфигурирайте PAM, за да разрешите изпълнение на команда Su без парола

Запазете файла и го затворете.

След това добавете потребителя (напр ааронк), които искате su към сметката postgres без парола към групата postgres с помощта на командата usermod.

$sudo usermod -aG postgres aaronk

Сега опитайте да su към postgres акаунт като потребител ааронк, не трябва да бъдете подканени за парола, както е показано на следната екранна снимка:

$ su - postgres
Добавяне на потребител към групата
Добавяне на потребител към групата

2. Използване на Sudoers файл

Можете също su на друг потребител, без да се изисква парола, като направите някои промени във файла sudoers. В този случай потребителят (напр ааронк), който ще премине към друг потребителски акаунт (напр postgres) трябва да бъде във файла sudoers или в групата sudo, за да можете да извикате команда sudo.

$ sudo visudo

След това добавете следната конфигурация под реда “%sudo ALL=(ALL:ALL) ALL” както е показано на следващата екранна снимка.

aaronk ALL=NOPASSWD: /bin/su – postgres
Добавяне на потребител към Sudoers файла
Добавяне на потребител към Sudoers файла

Запазете и затворете файла.

Сега опитайте да su към сметката postgres като потребител ааронк, черупката не трябва да ви подканва да въведете парола:

$ sudo su - postgres
Превключете към друг потребител без парола
Превключете към друг потребител без парола

Това е всичко за сега! За повече информация вижте страницата за ръчно въвеждане на PAM (човек pam.conf) и това на команда sudo също така (човек sudo).

$ man pam.conf
$ man sudo

Публикациите се превеждат автоматично с google translate


Сподели