Bildiğim kadarıyla, PAM kullanıcının kabuğunu belirlemez, bu uygulamaya bırakılır. PAM'ın oturum modülleri, söz konusu hizmeti kullanan her girişte yapılması gereken genel eylemler ve kontroller gerçekleştirir. Uygulama daha sonra bir kabuk başlatmak isterse, bunu yapmak ücretsizdir ve genellikle kullanıcı veritabanındaki kabuğu arar.
Sorunuzun OpenSSH ile ilgili olduğunu varsayarsak, tam olarak yaptığı şey: kullanıcının kimliği doğrulandıktan ve PAM oturumları yapıldıktan sonra (PAM¹ kullanacak şekilde yapılandırılmışsa), ssh sunucusu kullanıcı veritabanındaki kabuğu arar (doğrudan değil, PAM kitaplığı aracılığıyla).
Kullanıcı veritabanı yalnızca /usr/passwd
arkadaşlarla sınırlı değildir . Linux'ta (bahsettiğinizden beri kullandığınızı varsayıyorum shadow
), kullanıcı veritabanını oluşturan passwd
ayardaki ayar tarafından belirlenir /etc/nsswitch.conf
. Çok bilgisayarlı kurulumlarda, yerel veritabanına yapılan genel eklemeler NIS ve LDAP'dir . /etc/passwd
İçinde olmayan bir kabuk kullanmak istiyorsanız , bu ne yapılandırabilir (biraz garip olsa da ve belki de neyi başarmaya çalıştığınızı söylerseniz insanlar daha iyi öneriler sunabilir).
Tam kabuk erişimi olmayan kullanıcılara sahip olmak istiyorsanız, doğal çözüm /etc/passwd
sınırlı bir kabuk koymak için değiştirmektir - belki de scp, rsync ve cvs gibi birkaç dosya kopyalama türü uygulamaya izin vermek için rssh . Kullanıcının ~/.ssh/authorized_keys
dosyasında zorunlu komutları da kullanabilirsiniz .
Ssh sunucusunun ne yaptığının bir izini görmek istiyorsanız, arka plan programını şu şekilde başlatın ssh -ddd
. Ayrıca müşterinin görüşünü de alabilirsiniz ssh -vvv
, ancak burada sunucunun görünümü sizi en çok ilgilendiren şeydir.
¹
o PAM desteği ile yapılandırılmıştır ve eğer OpenSSH sadece PAM kullanan UsePAM
direktif olarak ayarlanır yes
içinde sshd_config
. PAM kullansa bile, PAM'a ek olarak başka kimlik doğrulama yöntemleri de sunar; özellikle ortak anahtar kimlik doğrulaması PAM'den geçmez.