man/text
man · Metin İşleme

$ pwd_mkdb

Bölüm 8 · Metin İşleme

parola veritabanlarını oluşturur

Ö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ı /etc yerine belirtilen hedef dizinde depolar.

  • -i: master.passwd dosyası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 -d seçeneğiyle varsayılan olmayan bir dizin de belirtilmelidir. Bu seçeneğin diğer kullanımları kesinlikle önerilmez.

  • -N: Dosya üzerinde kilit elde edilemezse pwd_mkdb aracı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/passwd konumuna yükler. -s bayrağı 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 -u bayrağı 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. -p bayrağı 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ışsa pwd_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.