Özet
pwd_mkdb [-ciN] [-p | -s] [-d dizin] [-S önbellek_boyutu] [-u kullanıcı_adı] dosya
Açıklama
pwd_mkdb aracı macOS'te artık işlev görmez ve yalnızca geriye dönük uyumluluk amacıyla dahil edilmiştir. -c ve -p bayrakları ile bu bayrakların davranışını değiştiren seçenekler hâlâ çalışmaktadır. -s bayrağının hiçbir etkisi yoktur.
macOS'te kimlik yönetimi hakkında bilgi için DirectoryService(8) sayfasına bakın.
Eski Açıklama
pwd_mkdb aracı, belirtilen dosya için db(3) tarzında güvenli ve güvensiz veritabanları hazırlar. Bu veritabanları daha sonra sırasıyla /etc/spwd.db ve /etc/pwd.db konumlarına yüklenir. Dosya ise /etc/master.passwd konumuna yüklenir. Dosya doğru biçimde olmalıdır; passwd(5) sayfasına bakın. Bu sistemde kullanılan biçimin, geçmişteki Version 7 tarzı biçimden farklı olduğunu belirtmek önemlidir.
Seçenekler
-c: Parola dosyasının doğru biçimde olup olmadığını kontrol eder. Hiçbir dosyayı değiştirmez, eklemez veya kaldırmaz.-d dizin: Veritabanlarını/etcyerine belirtilen hedef dizinde depolar.-i:master.passwddosyasının kilitlenme hatasını yoksayar. Bu seçenek, sürüm sürecinde NFS üzerinden çakışma yaşanmayacak şekilde parola dosyalarını hazırlamak için tasarlanmıştır. Kilitlemenin yoksayılması için-dseçeneğiyle varsayılan olmayan bir dizin de belirtilmelidir. Bu seçeneğin diğer kullanımları kesinlikle önerilmez.-N: Dosya üzerinde kilit elde edilemezsepwd_mkdbaracının hata vererek çıkmasını sağlar. Varsayılan olarak kaynak dosya üzerinde bir kilit beklenirken işlem engellenir. Kilit, veritabanının yeniden hazırlanması boyunca tutulur.-p: Version 7 tarzı bir parola dosyası hazırlar ve bunu/etc/passwdkonumuna yükler.-sbayrağı ile birlikte kullanılamaz.-S önbellek_boyutu: Karma (hashing) kitaplığı tarafından kullanılan bellek önbelleğinin boyutunu megabayt cinsinden belirtir. Büyük bir kullanıcı tabanına sahip sistemlerde, küçük bir önbellek boyutu veritabanı dosyasını yeniden hazırlama sürelerinin aşırı uzamasına neden olabilir. Kaba bir kılavuz olarak,pwd_mkdb'nin megabayt cinsinden bellek kullanımı burada belirtilen değerin iki katından biraz daha fazla olacaktır. Varsayılan değer 2 megabayttır.-s: Yalnızca veritabanının güvenli sürümünü günceller. Bu en yaygın olarak bir parola değişikliği sırasında-ubayrağı ile birlikte kullanılır. Güvensiz veritabanı parolayı içermediğinden, tek değişiklik parola alanındaysa bunu güncellemek için bir neden yoktur.-pbayrağı ile birlikte kullanılamaz.-u kullanıcı_adı: Yalnızca belirtilen kullanıcının kaydını günceller. Tek bir kullanıcı üzerinde çalışan araçlar, veritabanının tamamını yeniden hazırlamanın getireceği ek yükten kaçınmak için bu seçeneği kullanabilir.
İki veritabanı arasındaki fark, güvenli sürümün kullanıcının şifrelenmiş parolasını içermesi, güvensiz sürümün ise yıldız işaretine (*) sahip olmasıdır.
Veritabanları, C kitaplığı parola yordamları tarafından kullanılır; getpwent(3) sayfasına bakın.
pwd_mkdb aracı başarı durumunda sıfır, başarısızlık durumunda ise sıfır olmayan bir değerle çıkar.
Ortam
PW_SCAN_BIG_IDS: Bu ortam değişkeni ayarlanmışsapwd_mkdb, büyük kullanıcı ve grup kimlikleri (ID) için normalde oluşturulan uyarı mesajlarını bastırır. Bu tür kimlikler, kimlik değerleri hakkında varsayımlarda bulunan yazılımlarla ciddi sorunlara yol açabilir.
Dosyalar
/etc/pwd.db: Güvensiz parola veritabanı dosyası./etc/pwd.db.tmp: Geçici dosya./etc/spwd.db: Güvenli parola veritabanı dosyası./etc/spwd.db.tmp: Geçici dosya./etc/master.passwd: Mevcut parola dosyası./etc/passwd: Version 7 biçiminde parola dosyası.
Örnekler
Parola dosyasını elle düzenledikten veya değiştirdikten sonra parola veritabanını yeniden hazırlayın:
/usr/sbin/pwd_mkdb -p /etc/master.passwd
Uyumluluk
Sistemin önceki sürümlerinde, parola dosyası için dbm(3) tarzı veritabanları oluşturan ancak bunları yüklemek için çağıran programlara bağımlı olan, pwd_mkdb aracına benzer bir mkpasswd(8) programı bulunuyordu. Program, önceki kullanıcıların işlevsellik değişiklikleri karşısında şaşırmamaları için yeniden adlandırılmıştır.
Ayrıca Bakınız
chpass(1), passwd(1), db(3), getpwent(3), passwd(5), vipw(8)
Hatalar
Parola dosyalarının atomik olarak güncellenmesi gerekliliği nedeniyle pwd_mkdb, bunları yüklemek için rename(2) işlevini kullanır. Ancak bu, komut satırında belirtilen dosyanın /etc dizini ile aynı dosya sisteminde bulunmasını gerektirir.
Birden fazla kişinin aynı anda farklı parola dosyaları üzerinde pwd_mkdb çalıştırmasından kaynaklanan bariz yarış durumları (race conditions) söz konusudur. pwd_mkdb'nin ön uçları olan chpass(1), passwd(1) ve vipw(8), bu sorunu önlemek için gerekli kilitleme işlemlerini gerçekleştirir.