Onların Linux kullanıcı bilgileri ile bir PHP komut dosyası kimlik doğrulaması kullanıcıların olması mümkün mü?

2 Cevap php

Şu anda benim PHP benim şirket için intranet sitesi tahrik genişletmeye çalışıyorum. Bu aslında ben birlikte atılır ve iç web sunucusu üzerinde bağlantılı olduğunuz çeşitli raporlar ve araçlardan bir demet olarak çalışır. Insanlar aynı görevi ben komut bunu, yapmış isteyen tutmak, mümkünse ve insanlar benim yardım almadan kendi görevi gerçekleştirmek böylece intranet sayfasında o kadar atmak durumunda.

Şimdiye kadar bu harika çalışıyor, ama sadece yöneticileri ve bu sınırlı gereken araçlardan bir avuç vardır. Şimdi, ben bir kamu web sitesinde yapılan olacak gibi kullanıcıların kimliğini doğrulamak için bir bütün kayıt sistemi oluşturmak biliyorum, ama açıkçası, bu herkes için bir baş belası var. Tüm kullanıcılar zaten apache gibi aynı sunucuda Linux kullanıcı hesabına sahip, bu yüzden ben sadece kendi sistem kullanıcı adı / şifre karşı kullanıcıları doğrulamak ve daha sonra kendi gruplarını incelemek olacak bir giriş formu yapabilir eğer çok daha iyi olurdu düşünüyorum onlar (onlar zaten mevcut "yöneticiler" grubuna ait hangi durumda) yapmak için çalışıyoruz ne yapmak ayrıcalıklara sahip olmadığını görmek için. Ben bu çekin eğer herkes için bir kazan-kazan gibi görünüyor. Kullanıcılar, kayıt ve başka bir kimlik bilgileri kümesi güncelleştirmek korumak / / hatırlamak zorunda değilsiniz, ve ben kullanıcı eklemek veya çıkarmak istediğiniz zaman ekstra bir şey yapmak zorunda değilsiniz.

Bu mümkünse mi? Bunu yapmak için herhangi bir önceden varolan kütüphaneler yoksa, ben sadece bunu direkt bir şekilde yapabileceğini ve PHP işlem / etc / passwd, / etc / shadow ve / etc / group okudum ve var?

2 Cevap

Doğrudan Linux'un kimlik doğrulama sistemine erişmek için, PAM modülünü kullanarak bakmak olabilir:

http://pecl.php.net/package/PAM

Dokümanlar göre, php erişmek için izin Pam yapılandırmanız gerekir. Bundan sonra, bir kullanıcı adı / şifre kombinasyonu doğrulamak için pam_auth işlevini çağırabilirsiniz:

if (pam_auth($username, $password))
{
    // SUCCESS!!!
}
else
{
    // FAILURE :(
}

Linux LDAP'yi sahip olduğundan emin olmak isteyeceksiniz. PHP kimlik doğrulama ve bu tür için fonksiyonları inşa çok var:

http://php.net/manual/en/book.ldap.php