(su) Şifresiz Başka Bir Kullanıcı Hesabına Nasıl Geçilir?


Bu kılavuzda, şifre gerektirmeden başka bir veya belirli bir kullanıcı hesabına nasıl geçileceğini göstereceğiz. Örneğin, postgres adında bir kullanıcı hesabımız var (varsayılan PostgreSQL süper kullanıcı sistem hesabı), her kullanıcıyı istiyoruz (genellikle PostgreSQL veritabanımız ve sistem yöneticileri) postgres adlı grupta yer alan kullanıcılar, şifre girmeden su komutunu kullanarak postgres hesabına geçebilirler.

Varsayılan olarak yalnızca kök kullanıcı, parola girmeden başka bir kullanıcı hesabına geçebilir. Başka herhangi bir kullanıcıdan geçiş yaptıkları kullanıcı hesabının şifresini girmesi istenecektir (veya sudo komutunu kullanıyorlarsa şifrelerini girmeleri istenecektir), eğer doğru şifreyi girmezlerse, aşağıdaki ekran görüntüsünde gösterildiği gibi "kimlik doğrulama başarısız" hatası.

Yukarıdaki sorunu çözmek için aşağıda verilen iki çözümden herhangi birini kullanabilirsiniz.

1. PAM Kimlik Doğrulama Modülünü Kullanma

PAM (Takılabilir kimlik doğrulama modülleri), modern Linux işletim sistemlerinde kullanıcı kimlik doğrulamasının merkezinde yer alır. Belirli bir gruptaki kullanıcıların şifre olmadan başka bir kullanıcı hesabına geçmesine izin vermek için /etc/pam.d/su dosyasındaki su komutu için varsayılan PAM ayarlarını değiştirebiliriz. güçlü> dosya.

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

Aşağıdaki ekran görüntüsünde gösterildiği gibi “auth yeterli pam_rootok.so” satırına aşağıdaki yapılandırmaları ekleyin.

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

Yukarıdaki konfigürasyonda ilk satır hedef kullanıcının postgres olup olmadığını kontrol eder, eğer öyleyse servis mevcut kullanıcıyı kontrol eder, aksi halde default=1 satırı atlanır ve normal kimlik doğrulama adımları yürütülür.

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

Takip eden satır, mevcut kullanıcının postgres grubunda olup olmadığını kontrol eder, evet ise kimlik doğrulama işleminin başarılı olduğu kabul edilir ve sonuç olarak yeterli sayıda sonuç döndürülür. Aksi takdirde normal kimlik doğrulama adımları gerçekleştirilir.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Dosyayı kaydedin ve kapatın.

Daha sonra, su eklemek istediğiniz kullanıcıyı (örneğin aaronk) şifre olmadan postgres hesabına postgres grubuna ekleyin. usermod komutunu kullanarak.

$sudo usermod -aG postgres aaronk

Şimdi aaronk kullanıcısı olarak postgres hesabına su yapmayı deneyin; aşağıdaki ekran görüntüsünde gösterildiği gibi sizden şifre istenmemelidir:

su - postgres

2. Sudoers Dosyasını Kullanmak

Ayrıca sudoers dosyasında bazı değişiklikler yaparak başka bir kullanıcıya şifre gerektirmeden su işlemi gerçekleştirebilirsiniz. Bu durumda başka bir kullanıcı hesabına (örneğin postgres) geçiş yapacak kullanıcının (örneğin aaronk) sudoers dosyasında veya sudo grubunda olması gerekir. sudo komutunu çağırabilir.

sudo visudo

Daha sonra aşağıdaki ekran görüntüsünde gösterildiği gibi “%sudo ALL=(ALL:ALL) ALL ” satırının altına aşağıdaki yapılandırmayı ekleyin.

aaronk ALL=NOPASSWD: /bin/su – postgres

Dosyayı kaydedip kapatın.

Şimdi aaronk kullanıcısı olarak postgres hesabına su yazmayı deneyin; kabuk sizden bir şifre girmenizi istememelidir:

sudo su - postgres

Şimdilik bu kadar! Daha fazla bilgi için PAM manuel giriş sayfasına (man pam.conf) ve ayrıca sudo komutunun sayfasına (man sudo) bakın.

man pam.conf
man sudo