← man/system_admin
ncinit — man ncinit — 80×24
ugur@toprak:~/man/system_admin$man ncinit
Bölüm 1 Sistem Yönetimi

ncinit

NFS çekirdek kimlik bilgilerini kontrol etme

Özet

     ncctl [-Pvh] {{init | set} [-F] -p principal | {destroy | unset} | {list | get}} [path ...]
     ncinit [-PvhF] -p principal [path ...]
     ncdestroy [-Pvh] [path ...]
     nclist [-Pvh] [path ...]

Açıklama

ncctl, belirtilen herhangi bir yol ile ilişkili NFS bağlama noktaları için çağıranın çekirdek Kerberos kimlik bilgilerini kontrol eder. Eğer hiçbir yol belirtilmezse, çağıranın tüm NFS dosya sistemleri ile ilişkili tüm kimlik bilgileri verilen komut tarafından işleme tabi tutulur.

Bir NFS dosya sistemi Kerberos kullanılarak “sec=” seçeneği veya sunucuda belirtilen dışa aktarma (export) aracılığıyla bağlandığında, elde edilen oturum bağlamı her bir bağlama için bir tabloda saklanır. Kullanıcı oturumunu sonlandırmaya karar verirse veya farklı bir kimlik bilgisi kullanmayı seçerse, çekirdekteki bu kimlik bilgilerini geçersiz kılmak veya değiştirmek için ncctl çağrılabilir.

ncctl aşağıdaki komutları destekler:

init, set Bağlama noktası veya noktalarını, ilişkili principal'dan kimlik bilgilerini alacak şekilde ayarlar. Mevcut tüm kimlik bilgilerinin tanımlaması kaldırılır.

destroy, unset Bağlama noktası veya noktalarındaki mevcut kimlik bilgilerinin tanımlamasını kaldırır.

list, get Bu oturum için bağlama noktası veya noktalarında ayarlanan principal veya principal'ları listeler. Hiçbir principal ayarlanmamışsa, erişim başarılı olduysa “Default credential” ve ardından “[from ⟨principal name⟩]”, başarılı olmadıysa “[kinit needed]” görüntüler. Dosya sistemine hiçbir erişim olmamışsa “Credentials are not set” görüntüler.

İkinci özetin şuna eşdeğer olduğunu unutmayın: ncctl [-Pv] {init | set} [-F] -p principal Üçüncü özet şuna eşdeğerdir: ncctl [-Pv] {destroy | unset} Ve son özet şuna eşdeğerdir: ncctl [-Pv] {list | get}

Kerberos,

klist -A

kullanılarak görülebilen bir kimlik bilgileri koleksiyonu tutar.

Mevcut varsayılan kimlik bilgisi, herhangi bir argüman olmadan klist ile görülebilir. Varsayılanı farklı bir Kerberos kimlik bilgisine geçirmek için kswitch kullanılabilir. Kerberos kimlik bilgilerinin tamamını veya belirli birini kaldırmak için kdestroy kullanılabilir. kinit çağrılarak yeni Kerberos kimlik bilgileri elde edilebilir ve koleksiyona eklenebilir; bu kimlik bilgileri bağlama noktasına erişirken kullanılabilir. Bkz. kinit(1), klist(1), kswitch(1) ve kdestroy(1).

ncctl, ilişkili Kerberos kimlik bilgilerinden any principal'ı ayarlayabilir veya bağlama noktasında o an bulunan kimlik bilgilerini yok edip kaldırabilir. Kerberos ile bağlanmış bir NFS dosya sistemine erişirken, bağlama noktasında hiçbir principal ayarlanmamışsa, çekirdek kimlik bilgilerine ihtiyaç duyduğunda gssd arka plan programına (daemon) bir yukarı çağrı (up call) yapacak ve o sırada kullanılabilir olan varsayılan kimlik bilgileri neyse onlar kullanılacaktır.

Seçenekler aşağıdaki gibidir:

  • -h, --help: Komutun bir yardım özetini yazdırır ve ardından çıkış yapar.

  • -v, --verbose: Ayrıntılı modda çalışır ve hangi dosya sisteminde işlem yapıldığını ve ortaya çıkan hataları gösterir.

  • -P, --nofollow: Eğer son bileşen bir sembolik bağa çözümleniyorsa, bağı çözümlemez ancak ilişkili herhangi bir NFS dosya sistemini belirlemek için mevcut yolu kullanır.

-p, --principal ⟨principal⟩ init, set ve ncinit komutları için principal'ı ⟨principal⟩ olarak ayarlar. Bu seçenek bu komutlar için zorunludur. Diğer komutlar için bu seçenek geçerli değildir.

  • -F, --force: init, set ve ncinit komutları için Kerberos önbellek koleksiyonunda gerekli principal'ın varlığını kontrol etmez. Bu, Kerberos kimlik bilgileri daha sonra elde edilecekse yararlı olabilir. UYARI: Kimlik bilgisi yanlış ayarlanırsa çalışmayabilir ve başka bir set veya unset işlemi gerçekleşene kadar dosya sistemine hiçbir erişime izin verilmez. Bu seçenek diğer komutlar için geçerli değildir.

Örnekler

     Günün sonunda ayrılırken:

      $ kdestroy -A
      $ ncdestroy

     Diyelim ki bir kullanıcı şunu yapıyor:

      $ kinit user@FOO.COM

     Ve automounter aracılığıyla, /Network/Servers/someserver/Sources/foo bağlama işleminin user@FOO.COM ile yapıldığı /Network/Serves/someserver/Sources/foo/bar yoluna erişiyor.

      $ cat /Network/Servers/someserver/Sources/foo/bar
      cat: /Network/Servers/someserver/Sources/foo/bar: Permission denied

     Kullanıcı, sunucuda erişime sahip olmak için kimliğinin user2@BAR.COM olması gerektiğini fark ediyor. Bu durumda:

      $ kinit user2@BAR.COM
      $ ncctl set -p user2@BAR.COM

     Artık yerel kullanıcı bar'a erişebilir. Kimlik bilglerinizi görmek için:

      $ nclist
      /Network/Servers/someserver/Sources/foo: user2@BAR.COM

     Kullanıcı kimlik bilgilerini yok eder ve ardından yenilerini edinirse:

      $ ncdestroy
      $ nclist -v
      /private/tmp/mp			: No credentials are set.
      /Network/Servers/xs1/release	: NFS mount is not using Kerberos.
      $ kinit user
      user@FOO.COM's password: ******
      $ klist
      Credentials cache: API:648E3003-0A6B-4BB3-8447-1D5034F98EAE
	     Principal: user@FOO.COM

       Issued		     Expires		   Principal
      Dec 15 13:57:57 2014  Dec 15 23:57:57 2014  krbtgt/FOO.COM@FOO.COM
      $ ls /private/tmp/mp
      filesystemui.socket=    sysdiagnose.tar.gz      x
      mtrecorder/	     systemstats/	     z
      $ nclist
      /private/tmp/mp		     : Default credential [from user@FOO.COM]

Notlar

Yukarıda belirtildiği gibi kimlik bilgileri oturum başınadır, bu nedenle konsol oturumunun kimlik bilgisi önbellek koleksiyonu, aynı kullanıcı tarafından bile olsa bir ssh oturumunda elde edilen kimlik bilgileri koleksiyonundan ayrıdır. Kerberos, varsayılan kimlik bilgisini klist veya kswitch ile ayarlayacaktır. Ancak, yenilemeler veya kullanıcının oturumunda çalışan ve kullanıcı adına bir kswitch (krb5_cc_set_default_name()) veya kinit yapan başka bir betik ya da program nedeniyle, varsayılan kimlik bilgisi kullanıcının bilgisi dışında değişebilir. Principal için Kerberos parolası kullanıcının anahtar zincirinde (keychain) bulunuyorsa, kinit bir parola istemeyebilir.

ncctl, set komutuyla bir kullanıcının yerel kullanıcı kimliğini sunucudaki farklı bir kimliğe eşlemesini değiştirmesine izin verir. Hangi kimliğin kullanılacağına karar vermek kullanıcıya bağlıdır.

gssd arka plan programının önceki sürümleri, kimlik bilgileri ayarlanmamışsa, sunucuyla aynı alandaki (realm) kimlik bilgilerini seçerek bunları seçmeye çalışırdı. Bu kusurluydu ve kaldırıldı. Aynı alanda birden fazla kimlik bilgisi olabilir veya bir kullanıcı alanlar arası (cross realm) bir principal tercih edebilir. Bir bağlama noktasına eriştikten sonra (genellikle automounter aracılığıyla), kullanıcının birden fazla kimlik bilgisine erişimi varsa, bağlama noktasında kullanmak istediği kimlik bilgisini ayarlaması şiddetle tavsiye edilir. Mevcut varsayılan kimlik bilgisi, ilk bağlama sırasında automounter tarafından kullanılacaktır. Kullanılacak kimlik bilgilerini açıkça ayarlamazsanız, sunucu kimlik bilgisinin süresini doldurduğunda, istemci yenileme anındaki mevcut varsayılan kimlik bilgisini kullanacaktır ve bu farklı bir kimlik olabilir.

Doğrudan mount kullanılıyorsa, bir kullanıcı principal=⟨principal⟩ seçeneğini kullanarak bağlama için hangi kimlik bilgisinin kullanılacağını ve sonrasında (en azından yeni bir ncctl set komutu çalıştırılana kadar) ne kullanılacağını seçebilir. realm=⟨realm⟩ seçeneği ile kullanılacak alanı seçmek de mümkündür. İkincisi, automounter haritalarındaki yöneticiler için yararlı olabilir.

Şu anda, bir bağlama noktası ayrıldıktan (unmount) sonra, o bağlama noktası için seçilen kimliğin ne olduğunu hatırlamanın bir yolu yoktur. Bu nedenle otomatik olarak bağlanan noktalar için bağlama noktası üzerinde bir referans alınır, böylece ayarlanmış bir principal'a sahip bir bağlama noktasındaki tüm kimlik bilgileri yok edilene kadar ayırma işlemleri gerçekleşmez. Zorunlu ayırmalar (forced unmounts) bundan etkilenmez. Gerçekte hangi kimlik bilgilerinin kullanıldığını görmek için nclist veya ncctl get, o oturumun kimlik bilgisini yok etmek için ncdestroy or ncctl unset kullanılabilir. Kimlik bilgileri yok edildikten sonra bağlama noktasına erişmek, bir sonraki ncinit veya ncctl set komutuna kadar varsayılan kimlik bilgisinin kullanılmasına neden olur. Otomatik olarak bağlanmış bir NFS bağlama noktası için varsayılan kimlik bilgileri, dosya sisteminin ayrılmasını engellemez.

Tanılama

ncctl komutu, sağlanan yollardan any biri mevcut değilse veya denenen herhangi bir yol için bir hata döndürülürse 1 ile çıkış yapar. Tüm yollar mevcutsa ve hiçbir hata döndürülmemişse çıkış durumu 0 olacaktır.

Ayrıca Bkz.

kdestroy(1), kinit(1), klist(1), kswitch(1), mount_nfs(8)

Hatalar

kdestroy aracında, önbelleğe alınmış NFS bağlamlarını yok etmek için bir seçenek bulunmalıdır.

macOS 26.4 14 Ocak 2015 macOS 26.4