htpasswd - Temel kimlik doğrulama dosyalarını yönetir - Apache HTTP Sunucusu

Apache HTTP Sunucusu Sürüm 2.2

Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.2 > Programlar

# htpasswd - Temel kimlik doğrulama dosyalarını yönetir

Mevcut Diller: en | ko | tr

`htpasswd`, HTTP kullanıcılarının temel kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek için kullanılır. `htpasswd`, güncelleme sırasında yazmak veya okumak için bir dosyaya erişemezse beklenen hiçbir işlemi yapmaz ve hata vererek çıkar.

Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı sadece `htpasswd` tarafından oluşturulan dosyalarda listelenmiş kullanıcılara tahsis edilebilir. `htpasswd` sadece düz metin dosyalarda saklanmış kullanıcı isimlerini ve parolalarını yönetirse de, diğer veri saklama türleri için parolayı şifreleyip gösterebilir. Bir DBM veritabanı kullanmak isterseniz `dbmmanage` sayfasına bakınız.

`htpasswd`, parolaları şifrelemek için ya Apache'nin kendine özgü MD5 algoritmasını ya da sistemin `crypt()` yordamını kullanır. Bazı kullanıcılar MD5 şifreli parolalara, bazıları da `crypt()` ile şifrelenmiş parolalara sahip olabileceğinden `htpasswd` tarafından yönetilen dosyalar her iki tür parolayı da içerebilir.

Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler. Kullanıcı kimlik doğrulamasını `httpd`'de yapılandırmak için gerekli yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan ve http://httpd.apache.org/ adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.

### Ayrıca bakınız:

- `httpd`
- Kaynak paketinin support/SHA1 dizinindeki betikler.

## Kullanım

`htpasswd [ -c ] [ -m ] [ -D ] parola-dosyası kullanıcı`

`htpasswd -b [ -c ] [ -m | -d | -p | -s ] [ -D ] parola-dosyası kullanıcı parola`

`htpasswd -n [ -m | -d | -s | -p ] kullanıcı`

`htpasswd -nb [ -m | -d | -s | -p ] kullanıcı parola`

## Seçenekler

`-b`
  Betik kipi; parola için istek yapmak yerine parola komut satırından verilir. Parola komut satırında görünür olacağından çok dikkatli kullanmak gerekir.
`-c`
  `parola-dosyası` oluşturur. Dosya mevcutsa, dosya silinip yeniden yazılır. Bu seçenek `-n` seçeneği ile birlikte kullanılamaz.
`-n`
  Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir. Bu seçenek, Apache'nin metin veriler içermeyen veri depolarına dahil edilebilecek parolaları üretmekte yararlıdır. `parola-dosyası` belirtilmediğinden, bu seçenek komut satırı sözdizimini değiştirir. Bu seçenek `-c` seçeneği ile birlikte kullanılamaz.
`-m`
  Parolalar için MD5 şifrelemesi kullanılır ve bu öntanımlıdır.
`-d`
  Parolaları şifrelemek için `crypt()` kullanılır. Windows, Netware ve TPF üzerinde `httpd` sunucusu tarafından desteklenmez.
`-s`
  Parolalar için SHA şifrelemesi kullanılır. LDAP Dizin değişim biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü kolaylaştırır.
`-p`
  Düz metin parolalar kullanılır. `htpasswd` tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve TPF üzerinde `httpd` sunucusu tarafından sadece düz metin parolalar kabul edilir.
`-D`
  Kullanıcıyı siler. Kullanıcı belirtilen dosyada mevcutsa silinir.
`parola-dosyası`
  Kullanıcı ismini ve parolasını içeren dosyanın ismi. `-c` seçeneği verilmişse ve dosya mevcut değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur.
`kullanıcı`
  `parola-dosyası`'nda oluşturulacak veya güncellenecek kullanıcı ismi. `kullanıcı` bu dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası değiştirilir.
`parola`
  Şifrelenip dosyada saklanacak düz metin parola. Sadece `-b` seçeneği ile kullanılır.

## Çıkış Durumu

`htpasswd`, kullanıcı ismi ve parolasını DBM dosyasına başarıyla eklemiş veya güncellemişse `0`, dosyalara erişirken bir sorun çıkmışsa `1`, komut satırında bir sözdizimi hatası varsa `2`, parola etkileşimli alınmış fakat girdi ile eşleşme sağlanamamışsa `3`, işlem kesintiye uğramışsa `4`, bir değer çok uzunsa `5` (kullanıcı, parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter içeriyorsa (Kısıtlamalar bölümüne bakınız) `6` ve dosya geçerli bir DBM parola dosyası değilse `7` değeriyle döner.

## Örnekler

`htpasswd /usr/local/etc/apache/.htpasswd-users jsmith`

`jsmith` kullanıcısı için parolayı ekler veya değiştirir. Parolayı vermesi için kullanıcıya parola isteği yapılır. Parola Apache MD5 algoritması ile şifrelenir. Dosya mevcut değilse `htpasswd` beklenen hiçbir işlemi yapmadan bir hata vererek çıkar.

`htpasswd -c /home/doe/public_html/.htpasswd jane`

Yeni bir dosya oluşturur ve kullanıcı `jane` için kaydı bir girdi olarak bu dosyaya yazar. Dosya mevcutsa fakat okunamıyor veya yazılamıyorsa dosyada bir değişiklik yapılmaz ve `htpasswd` bir ileti gösterip bir hata durumu ile çıkar.

`htpasswd -db /usr/web/.htpasswd-all jones Pwd4Steve`

Komut satırından verilen parolayı (`Pwd4Steve`) `crypt()` algoritmasıyla şifreler ve bunu belirtilen dosyada saklar.

## Güvenlik Değerlendirmeleri

`htpasswd` tarafından yönetilen parola dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir tarayıcı ile okunabilecek bir yerde bulunmamalıdır.

Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından setuid yapılmamalıdır.

Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle `-b` seçeneğinin kullanımından kaçınılmasını öneriyoruz.

`crypt()` algoritması kullanılırken, parolayı şekillendirmek için parolanın ilk 8 baytının kullanılacağına dikkat ediniz. Eğer parola 8 bayttan uzunsa kalanlar bir uyarı verilmeksizin iptal edilir.

SHA şifreleme biçeminde tuz kullanılmaz; yani, bir parolanın sadece bir şifreli gösterimi olabilir. `crypt()` ve MD5 biçemleri parolanın önüne rasgele üretilmiş bir tuz dizgesi eklediklerinden sözlük saldırılarına karşı daha dayanıklıdırlar.

## Kısıtlamalar

Windows ve MPE platformlarında, `htpasswd` ile şifrelenen parolalar `255` karakterden daha uzun olamaz. 255 karakterden sonrası kırpılır.

`htpasswd` tarafından kullanılan MD5 algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen parolalar başka HTTP sunucularında kullanılamayabilir.

Kullanıcı isimleri `255` bayttan uzun olamaz ve iki nokta imi (`:`) içeremez.

Mevcut Diller: en | ko | tr