Sinopsis
dscl [seçenekler] [veri_kaynağı [komut]]
seçenekler:
-p parola sor
-u user kullanıcı olarak kimlik doğrulaması yap
-P password kimlik doğrulama parolası
-f filepath hedeflenen yerel düğüm veritabanı dosya yolu
-raw DirectoryService API sabitlerinden öneki kaldırma
-plist kayıt(ları) veya öznitelik(leri) XML plist biçiminde yazdır
-url kayıt öznitelik değerlerini URL tarzı kodlamayla yazdır
-q sessiz - etkileşimli istem yok
komutlar:
-read [path [key ...]]
-readall [path [key ...]]
-readpl path key plist_path
-readpli path key value_index plist_path
-list path [key]
-search path key val
-create record_path [key [val ...]]
-createpl record_path key plist_path val1 [val2 ...]
-createpli record_path key value_index plist_path val1 [val2 ...]
-append record_path key val ...
-merge record_path key val ...
-delete path [key [val ...]]
-deletepl record_path key plist_path [val ...]
-deletepli record_path key value_index plist_path [val ...]
-change record_path key old_val new_val
-changei record_path key val_index new_val
-diff path1 path2 [key ...]
-passwd user_path [new_password | old_password new_password]
yalnızca etkileşimli modda kullanılabilir:
-cd dir
-pushd [dir]
-popd
-auth [user [password]]
-authonly [user [password]]
-quit
Açıklama
dscl, Dizin Servisi (Directory Service) dizin düğümleri üzerinde işlem yapmak için kullanılan genel amaçlı bir yardımcı programdır. Komutları, Directory Service verilerini oluşturmaya, okumaya ve yönetmeye olanak tanır. Herhangi bir komut olmadan çağrılırsa, dscl standart girdiden komutları okuyarak etkileşimli modda çalışır. Etkileşimli işlem quit komutuyla sonlandırılır. Tüm komutlar için baştaki tireler ("-") isteğe bağlıdır.
dscl, komut satırında belirtilen bir veri_kaynağı üzerinde çalışır. Bu, bir düğüm adı veya DNS ana bilgisayar adı ya da IP adresi ile belirtilen bir Mac OS X Server (10.2 veya üzeri) ana bilgisayarı olabilir. Düğüm adları, bir eğik çizgi ("/") ile başlayan mutlak yollar veya yerel alanı belirten bir nokta (".") karakteri ya da yerel alanın üst alanını belirten ".." ile başlayan göreceli alan yolları olabilir. Ana bilgisayar adı veya IP adresi biçimi kullanılıyorsa, kullanıcının uzak ana bilgisayarda kimlik doğrulaması yapmak üzere yönetici bir kullanıcı ve parola belirtmek için -u seçeneğini ve -P ya da -p seçeneklerinden birini belirtmesi gerekir. Bunun istisnası "localhost" belirtilmesidir. Komut satırında parola iletmek doğası gereği güvensizdir ve parolanın açığa çıkmasına neden olabilir. Daha iyi bir güvenlik için komutun bir parçası olarak parolayı vermeyin; güvenli bir şekilde parolanız istenecektir.
Veri kaynağı "localonly" olarak da belirtilebilir; bu durumda, dscl tarafından kullanılmak üzere yalnızca Yerel eklentiyi (Local plugin) içeren ayrı bir DirectoryService arka plan işlemi (daemon) etkinleştirilir. Hiçbir dosya yolu sağlanmazsa, erişim yalnızca sistemdeki kayıtlı yerel düğümlere gider. Ancak, -f seçeneği belirtilirse, sağlanan filepath konumundaki veritabanını işaret eden "/Local/Target" yerel düğümüne erişim eklenir. Bir örnek olarak, "/Volumes/Build100/var/db/dslocal/nodes/Default" dosya yolunun sağlanması gösterilebilir; bu veritabanına erişim "/Local/Target" düğüm adı aracılığıyla sağlanır.
Yol Belirtimi
İşlem yapılacak yolları belirtirken iki çalışma modu vardır. Bu iki mod, veri kaynağının bir düğüm mü yoksa bir ana bilgisayar mı olduğuna karşılık gelir. Bir düğüm belirtilmesi durumunda, yolların en üst seviyesi kayıt türleri olacaktır. Örnek üst seviye yollar şunlar olabilir:
/Users/alice /Groups/admin
Veri kaynağı olarak bir ana bilgisayar belirtilmesi durumunda, yolların en üst seviyesi Open Directory eklentilerine ve Arama Yollarına karşılık gelir. Düğüm adına gitmek için eklenti belirtilebilir, bundan sonra yollar önceki kullanımla eşdeğerdir. Aşağıdakiler yukarıdaki yollarla eşdeğer yollar olabilir:
/NetInfo/root/Users/alice /LDAPv3/10.0.1.42/Groups/admin
Yol bileşenleri, içine eğik çizgi karakterleri eklenmiş anahtarlar veya değerler içeriyorsa, eğik çizgi karakterleri başına ters eğik çizgi karakteri konularak kaçış işlemine tabi tutulmalıdır. Kabuk da kaçış karakterlerini işlediğinden, bir kaçışı doğru şekilde belirtmek için fazladan bir ters eğik çizgi gerekir. Örneğin, "/Mounts" yolundaki "ldapserver:/Users" adlı bir bağlama (mount) kaydını okumak için aşağıdaki yol kullanılır:
dscl . -read /Mounts/ldaphost:/Users
Tüm yol adları büyük/küçük harfe duyarlıdır.
Komutlar
Her komutun eylemi aşağıda açıklanmıştır. Bazı komutların takma adları (alias) vardır. Örneğin, "cat" ve "." komutları "read" için takma adlardır. Komut takma adları parantez içinde listelenmiştir.
read (cat .) Kullanım: read [path [key ...]]
Bir dizini yazdırır. Özellik anahtarını (key) iki nokta üst üste ve ardından o özelliğin değerlerinin boşlukla ayrılmış bir listesi takip eder. Herhangi bir değer gömülü boşluklar içeriyorsa, liste anahtardan sonraki satırdan başlayarak satır başına bir giriş olacak şekilde görüntülenir.
Ham çıktı için -raw bayrağı verilmişse, read komutu kayıt ve öznitelik türleri için tam DirectoryService API sabitini yazdırır.
-url bayrağı belirtilmişse, yazdırılan kayıt yolu öznitelik değerleri URL tarzında kodlanır. Bu, bir betik veya program çıktıyı işlemeye çalışıyorsa yararlıdır, çünkü değerlerde boşluk veya diğer kontrol karakterleri bulunmayacaktır.
readall Kullanım: readall [path [key ...]]
readall, verilen bir türdeki tüm kayıtları yazdırır. readall'ın çıktısı, kayıtlar arasında bir sınırlayıcı olarak bir satırda "-" olacak şekilde read ile aynı şekilde biçimlendirilir.
readpl Kullanım: readpl path key plist_path
plist_path içeriğini yazdırır. plist_path'i bir iki nokta üst üste, ardından bir boşluk ve ardından yolun değeri takip eder.
plist_path bir sözlük veya dizi için anahtar ise, içeriği plist_path'ten sonra plist biçiminde görüntülenir. plist_path bir dize, sayı, boolean, tarih veya veri nesnesi için anahtar ise, plist_path'ten sonra yalnızca değer yazdırılır.
readpli Kullanım: readpli path key value_index plist_path
Anahtarın value_index konumundaki plist için plist_path içeriğini yazdırır. plist_path'i bir iki nokta üst üste, ardından bir boşluk ve ardından yolun değeri takip eder.
plist_path bir sözlük veya dizi için anahtar ise, içeriği plist_path'ten sonra plist biçiminde görüntülenir. plist_path bir dize, sayı, boolean, tarih veya veri nesnesi için anahtar ise, plist_path'ten sonra yalnızca değer yazdırılır.
list (ls) Kullanım: list path
Verilen dizinin alt dizinlerini listeler. Alt dizinler satır başına bir tane olacak şekilde listelenir. Bir arama yolu listelenirken, adların önünde, bir yol belirtirken adın yerine kullanılabilecek ve kısayol işlevi görebilecek bir dizin numarası bulunur.
Etkileşimli modda kullanıldığında yol isteğe bağlıdır. Herhangi bir yol verilmediğinde geçerli dizin kullanılacaktır.
search Kullanım: search path key val
Bir modelle eşleşen kayıtları arar. Arama, verilen yoldan başlar. Yol, bir düğüm yolu veya bir kayıt türü yolu olabilir. Geçerli anahtarlar, Directory Service kayıt öznitelik türleridir.
create (mk) Kullanım: create record_path [key [val ...]]
Bir kayıt, özellik veya değer oluşturur. Yalnızca bir kayıt yolu verilirse, create komutu mevcut değilse kaydı oluşturur. Bir anahtar verilirse, o anahtara sahip bir özellik oluşturulacaktır.
UYARI - Verilen anahtara sahip bir özellik zaten varsa, bu özellik yok edilir ve yerine yeni bir özellik oluşturulur. Mevcut bir özelliğe değer eklemek için append veya merge komutlarını kullanın.
Komuta değerler dahil edilirse, bu değerler verilen anahtar için ayarlanır.
NOT - Tüm dizin düğümleri değer içermeyen bir özelliği desteklemez. Böyle bir dizin düğümünde değer içermeyen bir özellik oluşturmaya çalışırsanız bir hata alırsınız.
createpl Kullanım: createpl record_path key plist_path val1 [val2 ...]
plist_path konumunda bir dize veya dize dizisi oluşturur.
Bir dizi olan bir plist'in kökünde bir değer oluşturuyorsanız, plist_path olarak "0" kullanmanız yeterlidir.
Yalnızca val1 belirtilmişse, plist_path konumunda bir dize oluşturulur. val1 val2 ... belirtilmişse, plist_path konumunda bir dize dizisi oluşturulur.
UYARI - Verilen plist_path değerine sahip bir değer zaten varsa, bu değer yok edilir ve yerine yeni bir değer oluşturulur.
createpli Kullanım: createpli record_path key value_index plist_path val1 [val2 ...]
Anahtarın value_index konumundaki plist için plist_path konumunda bir dize veya dize dizisi oluşturur.
Bir dizi olan bir plist'in kökünde bir değer oluşturuyorsanız, plist_path olarak "0" kullanmanız yeterlidir.
Yalnızca val1 belirtilmişse, plist_path konumunda bir dize oluşturulur. val1 val2 ... belirtilmişse, plist_path konumunda bir dize dizisi oluşturulur.
UYARI - Verilen plist_path değerine sahip bir değer zaten varsa, bu değer yok edilir ve yerine yeni bir değer oluşturulur.
append Kullanım: append record_path key val ...
Verilen bir kayıttaki bir özelliğe bir veya daha fazla değer ekler. Özellik mevcut değilse oluşturulur.
merge Kullanım: merge record_path key val ...
Özellik zaten bu değerlere sahip değilse, verilen bir dizindeki bir özelliğe bir veya daha fazla değer ekler. Özellik mevcut değilse oluşturulur.
change Kullanım: change record_path key old_val new_val
Belirtilen kayıtta verilen anahtarın değerleri listesindeki verilen eski değeri yeni değerle değiştirir.
changei Kullanım: changei path key index val
Belirtilen kayıtta verilen anahtarın değerleri listesindeki verilen dizindeki (index) değeri yeni değerle değiştirir. index tam sayı bir değerdir. 1 dizini ilk değeri belirtir. Listedeki değer sayısından büyük bir dizin hataya neden olur.
diff Kullanım: diff path1 path2 key ...
Belirtilen anahtarlara bakarak (veya hiçbir anahtar belirtilmemişse tümüne bakarak) path1 ve path2 verilerini karşılaştırır.
delete (rm) Kullanım: delete path [key [val ...]]
Bir dizini, özelliği veya değeri siler. Bir dizin yolu verilirse, delete komutu dizini siler. Bu yalnızca kayıt türü ve kayıt yollarında kullanılabilir. Bir anahtar verilirse, o anahtara sahip özellik silinecektir. Bir veya daha fazla değer verilirse, bu değerler verilen anahtara sahip özellikten kaldırılacaktır.
deletepl Kullanım: deletepl record_path key plist_path [val ...]
Bir plist içindeki bir değeri siler. Hiçbir değer verilmezse, deletepl plist_path yolunu siler. Bir veya daha fazla değer verilirse, deletepl plist_path içindeki değerleri siler.
deletepli Kullanım: deletepli record_path key value_index plist_path [val ...]
Anahtarın value_index konumundaki plist için bir değeri siler. Hiçbir değer verilmezse, deletepli plist_path yolunu siler. Bir veya daha fazla değer verilirse, deletepli plist_path içindeki değerleri siler.
passwd Kullanım: passwd user_path [new_password | old_password new_password]
Bir kullanıcının parolasını değiştirir. Kullanıcı sadece bir kullanıcı adı ile değil, tam yoluyla belirtilmelidir. Düğümde kimliğiniz doğrulanmışsa (-u ve -P bayraklarını belirterek veya etkileşimli moddayken auth komutunu kullanarak), yeni bir parola belirtebilirsiniz. Kimliğiniz doğrulanmamışsa veya FileVault etkinse, kullanıcının eski parolası belirtilmelidir. Etkileşimli moddayken parolalar belirtilmezse, bunlar için size istem sunulur. Bu parolaları komut satırında iletmek doğası gereği güvensizdir ve parolanın açığa çıkmasına neden olabilir. Daha iyi bir güvenlik için komutun bir parçası olarak parolayı vermeyin; güvenli bir şekilde parolanız istenecektir.
Etkileşimli Komutlar
cd Kullanım: cd dir
Geçerli dizini ayarlar. Diğer dscl komutları için yol adları geçerli dizine göre göreceli olabilir.
pushd (pd) Kullanım: pushd path
Unix kabuklarında yaygın olarak bulunan pushd komutuna benzer. Bir yol belirtildiğinde, önceki dizini dizin yığına (directory stack) iterken geçerli dizini ayarlar. Yol belirtilmezse, dizin yığınının en üstteki iki öğesini değiştirir. Ayrıca nihai dizin yığınını da yazdırır.
popd Kullanım: popd
Dizin yığınını çeker (pop) ve yeni en üstteki dizine geri döner. Ayrıca nihai dizin yığınını da yazdırır.
auth (su) Kullanım: auth [user [password]]
Belirtilen kullanıcı olarak veya hiçbir kullanıcı belirtilmemişse "root" olarak kimlik doğrulaması yapar. Bir parola sağlanırsa, kimlik doğrulaması için o parola kullanılır, aksi takdirde komut parola ister.
dscl ana bilgisayar (host) modunda çalıştırılıyorsa, bu komut çalıştırıldığında geçerli dizin bir düğümün alt dizinlerinde olmalıdır.
authonly Kullanım: authonly [user [password]]
Belirtilen kullanıcının veya hiçbir kullanıcı belirtilmemişse "root" kullanıcısının parolasını doğrulamak için kullanılır. Bir parola sağlanırsa, kimlik doğrulaması için o parola kullanılır, aksi takdirde komut parola ister.
dscl ana bilgisayar (host) modunda çalıştırılıyorsa, bu komut çalıştırıldığında geçerli dizin bir düğümün alt dizinlerinde olmalıdır.
quit (q) Kullanım: quit
Etkileşimli komutların işlenmesini sonlandırır ve programı kapatır.
komut geçmişi Yukarı ve aşağı ok tuşları komut geçmişinde gezinmeyi sağlar.
sekme tamamlama (tab completion) Yol adları yazılırken sekme (tab) tuşuna basılması, yazılan kısmi alt dizin adını otomatik tamamlamak için bir arama yapılmasına neden olur. Bu süreçte büyük/küçük harf kullanımını düzeltmeye de çalışacaktır.
Örnekler
-yerel dizin düğümündeki bir kaydı görüntüleme
dscl . -read /Users/www
-www kullanıcı kaydı için UserShell öznitelik değerini oluşturma veya değiştirme
dscl . -create /Users/www UserShell /usr/bin/false
-user1 kullanıcı kaydının MCXSettings özniteliği için mcx_application_data:loginwindow plist değerinin test anahtarını oluşturma veya değiştirme
dscl . -createpl /Users/user1 MCXSettings mcx_application_data:loginwindow:test value
-verilen bir düğümdeki tüm kullanıcı kayıtları için uniqueID değerlerini listeleme
dscl /LDAPv3/ldap.company.com -list /Users UniqueID
-içinde boşluk bulunan bir değer ekleme
dscl . -append /Users/www Comment "This is a comment"
Teşhisler
dscl hata durumunda -1 (255) döndürür.
Ayrıca Bakınız
DirectoryService(8), DirectoryServiceAttributes(7)
MacOSX 25 Ağustos 2003 MacOSX