Kullanım
htpasswd [ -c ] [ -i ] [ -m | -B | -2 | -5 | -d | -s | -p ] [ -r turlar ] [ -C maliyet ] [ -D ]
[ -v ] passwdfile kullanıcıadı
htpasswd -b [ -c ] [ -m | -B | -2 | -5 | -d | -s | -p ] [ -r turlar ] [ -C maliyet ] [ -D ] [ -v
] passwdfile kullanıcıadı parola
htpasswd -n [ -i ] [ -m | -B | -2 | -5 | -d | -s | -p ] [ -r turlar ] [ -C maliyet ] kullanıcıadı
htpasswd -nb [ -m | -B | -2 | -5 | -d | -s | -p ] [ -r turlar ] [ -C maliyet ] kullanıcıadı parola
Özet
htpasswd, HTTP kullanıcılarının temel kimlik doğrulaması (basic authentication) için kullanıcı adlarını ve parolalarını depolamakta kullanılan düz dosyaları (flat-files) oluşturmak ve güncellemek için kullanılır. htpasswd bir dosyaya erişemezse (örneğin çıktı dosyasına yazamıyorsa veya güncellemek için dosyayı okuyamıyorsa), bir hata durumu döndürür ve hiçbir değişiklik yapmaz.
Apache HTTP sunucusundan erişilebilen kaynaklar, yalnızca htpasswd tarafından oluşturulan dosyalarda listelenen kullanıcılarla sınırlandırılabilir. Bu program yalnızca düz dosyalarda depolanan kullanıcı adlarını ve parolaları yönetebilir. Bununla birlikte, diğer veri depolarında kullanılmak üzere parola bilgilerini karma hale getirebilir (hash) ve görüntüleyebilir. Bir DBM veritabanı kullanmak için dbmmanage veya htdbm araçlarına bakın.
htpasswd parolaları bcrypt, Apache için değiştirilmiş bir MD5 sürümü, SHA-1 veya sistemin crypt() rutini kullanarak karma hale getirir. crypt() için SHA-2 tabanlı karmalar (SHA-256 ve SHA-512) desteklenir. htpasswd tarafından yönetilen dosyalar farklı kodlama türlerindeki parolaların bir karışımını içerebilir; bazı kullanıcı kayıtları bcrypt veya MD5 ile karma hale getirilmiş parolalara sahipken aynı dosyadaki diğerleri crypt() ile karma hale getirilmiş parolalara sahip olabilir.
Bu kılavuz sayfası yalnızca komut satırı argümanlarını listeler. httpd içinde kullanıcı kimlik doğrulamasını yapılandırmak için gerekli olan yönergelerin ayrıntıları için, Apache dağıtımının bir parçası olan veya http://httpd.apache.org/ adresinde bulunabilen Apache kılavuzuna bakın.
Seçenekler
-b: Toplu iş (batch) modunu kullanır; yani parolayı sormak yerine komut satırından alır. Parola komut satırında açıkça görülebildiğinden, bu seçenek son derece dikkatli kullanılmalıdır. Betik kullanımı için -i seçeneğine bakın. Sürüm 2.4.4 ve sonrasında mevcuttur.-i: Doğrulama yapmadan parolayı standart girdiden (stdin) okur (betik kullanımı için).-c: passwdfile dosyasını oluşturur. passwdfile zaten mevcutsa, yeniden yazılır ve içeriği sıfırlanır (truncated). Bu seçenek -n seçeneği ile birleştirilemez.-n: Sonuçları bir dosyayı güncellemek yerine standart çıktıda görüntüler. Bu, Apache tarafından kabul edilebilir parola kayıtlarının metin dışı veri depolarına dahil edilmesi amacıyla üretilmesinde yararlıdır. passwdfile argümanı (genellikle ilk argüman) atlandığından, bu seçenek komut satırının sözdizimini değiştirir. -c seçeneği ile birleştirilemez.-m: Parolalar için MD5 karma algoritmasını kullanır. Varsayılan yöntem budur (sürüm 2.2.18'den beri).-2: Parolalar için SHA-256 crypt() tabanlı karmaları kullanır. Çoğu Unix platformunda desteklenir.-5: Parolalar için SHA-512 crypt() tabanlı karmaları kullanır. Çoğu Unix platformunda desteklenir.-B: Parolalar için bcrypt karma algoritmasını kullanır. Bu yöntem şu anda oldukça güvenli kabul edilmektedir.-C: Bu bayrağa yalnızca -B (bcrypt karması) ile birlikte izin verilir. bcrypt algoritması için kullanılan hesaplama süresini (maliyet) ayarlar (daha yüksek değer daha güvenlidir ancak daha yavaştır, varsayılan: 5, geçerli değerler: 4 ile 17 arası).-r: Bu bayrağa yalnızca -2 veya -5 ile birlikte izin verilir. SHA-2 algoritmaları için kullanılan karma turu (rounds) sayısını ayarlar (daha yüksek değer daha güvenlidir ancak daha yavaştır; varsayılan değer 5.000'dir).-d: Parolalar için crypt() karma algoritmasını kullanır. Windows ve Netware üzerindeki httpd sunucusu tarafından desteklenmez. Bu algoritma parola uzunluğunu 8 karakterle sınırlar. Bu algoritma bugünün standartlarına göre güvensizdir. Sürüm 2.2.17'ye kadar varsayılan algoritmaydı.-s: Parolalar için SHA-1 (160-bit) karma algoritmasını kullanır. LDAP Dizin Değişim Biçimi (ldif) kullanan Netscape sunucularından veya bu sunuculara geçişi kolaylaştırır. Bu algoritma bugünün standartlarına göre güvensizdir.-p: Düz metin (plaintext) parolalar kullanır. htpasswd tüm platformlarda oluşturulmasını desteklese de, httpd arka plan süreci düz metin parolaları yalnızca Windows ve Netware sistemlerinde kabul edecektir.-D: Kullanıcıyı siler. Belirtilen htpasswd dosyasında kullanıcı adı mevcutsa silinecektir.-v: Parolayı doğrular. Verilen parolanın, belirtilen htpasswd dosyasında depolanan kullanıcının parolasıyla eşleşip eşleşmediğini doğrular. Sürüm 2.4.5 ve sonrasında mevcuttur.
passwdfile Kullanıcı adı ve parolayı içerecek dosyanın adı. Eğer -c verilirse, bu dosya zaten mevcut değilse oluşturulur, mevcutsa üzerine yazılır ve içeriği sıfırlanır.
username passwdfile dosyasında oluşturulacak veya güncellenecek kullanıcı adı. Eğer kullanıcı adı bu dosyada mevcut değilse bir girdi eklenir. Mevcutsa, parolası değiştirilir.
password Dosyada karma hale getirilip depolanacak düz metin parola. Yalnızca -b bayrağı ile kullanılır.
Çıkış Durumu
htpasswd, kullanıcı adı ve parola passwdfile dosyasına başarıyla eklendiyse veya güncellendiyse sıfır durumunu ("true") döndürür. htpasswd; dosyalara erişimde bir sorunla karşılaşırsa 1, komut satırında sözdizimi sorunu varsa 2, parola etkileşimli olarak girildiyse ve doğrulama girdisi eşleşmediyse 3, işlemi kesintiye uğradıysa 4, bir değer çok uzunsa (kullanıcı adı, dosya adı, parola veya nihai hesaplanan kayıt) 5, kullanıcı adı geçersiz karakterler içeriyorsa (bkz. Kısıtlamalar bölümü) 6 ve dosya geçerli bir parola dosyası değilse 7 döndürür.
Önkılavuz Örnekleri
htpasswd /usr/local/etc/apache/.htpasswd-users jsmith
jsmith kullanıcısının parolasını ekler veya değiştirir. Kullanıcıdan parola istenir. Parola, değiştirilmiş Apache MD5 algoritması kullanılarak karma hale getirilecektir. Dosya mevcut değilse, htpasswd bir hata döndürmek dışında hiçbir şey yapmayacaktır.
htpasswd -c /home/doe/public_html/.htpasswd jane
Yeni bir dosya oluşturur ve içinde jane kullanıcısı için bir kayıt depolar. Kullanıcıdan parola istenir. Dosya mevcutsa ve okunamıyorsa ya da yazılamıyorsa, değiştirilmez ve htpasswd bir mesaj görüntüleyerek bir hata durumu döndürür.
htpasswd -db /usr/web/.htpasswd-all jones Pwd4Steve
Komut satırındaki parolayı (Pwd4Steve) crypt() algoritmasını kullanarak şifreler ve belirtilen dosyada depolar.
Güvenlik Hususları
htpasswd tarafından yönetilenler gibi web parola dosyaları, Web sunucusunun URI alanı içinde olmamalıdır; yani bir tarayıcı ile getirilememelidir.
Bu program bir setuid yürütülebilir dosyası olarak güvenli değildir. Onu setuid yapmayın.
-b seçeneğinin kullanılması önerilmez, çünkü kullanıldığında düz metin parola komut satırında görünür.
crypt() algoritmasını kullanırken, parolanın oluşturulmasında yalnızca parolanın ilk 8 karakterinin kullanıldığını unutmayın. Sağlanan parola daha uzunsa, fazladan karakterler sessizce atılacaktır.
SHA-1 karma biçimi tuzlama (salting) kullanmaz: belirli bir parola için yalnızca tek bir karma temsil vardır. crypt() ve MD5 biçimleri, parolalara yönelik sözlük saldırılarını zorlaştırmak için temsilin önüne rastgele bir tuz dizesi ekleyerek temsili değiştirir.
SHA-1 ve crypt() biçimleri bugünün standartlarına göre güvensizdir.
SHA-2 tabanlı crypt() biçimleri (SHA-256 ve SHA-512) çoğu modern Unix sisteminde desteklenir ve https://www.akkadia.org/drepper/SHA-crypt.txt adresindeki belirtimi takip eder.
Kısıtlamalar
Windows platformunda, htpasswd ile karma hale getirilen parolaların uzunluğu en fazla 255 karakterle sınırlıdır. Daha uzun parolalar 255 karaktere kırpılacaktır.
htpasswd tarafından kullanılan MD5 algoritması Apache yazılımına özgüdür; bu algoritma kullanılarak karma hale getirilen parolalar diğer Web sunucularıyla kullanılamayacaktır.
Kullanıcı adları 255 bayt ile sınırlıdır ve : karakterini içeremez.
Bir bcrypt parola karma değerini hesaplamanın maliyeti, -C seçeneği tarafından belirtilen tur sayısıyla artar. apr-util kütüphanesi, sürüm 1.6.0 ve sonrasında maksimum tur sayısını 17 olarak zorunlu kılar.
Apache HTTP Server 2024-04-02 HTPASSWD(1)