Komut satırından dosyaların mülkiyeti nasıl alınır?


34

Sık sık sahiplenmem gereken bir dosyaya rastlarım. Normalde caclsntfs izinlerini değiştirmek için kullanıyorum , ancak sahiplik yapmıyor gibi görünüyor. * Nix altında ben de böyle bir şey yapardım chown me:me <file>. Eşdeğer bir pencere var mı chown?


çok kötü setACL yukarıdaki komut dosyası ile çalışmıyor. Win XP, 7 ve 8 ve size errormessages onunla neyin yanlış olduğunu bulmak için bir doçent olmak gerekir

Yanıtlar:


25

subinacl , sahip olma ve ACL'lerle ilgili her şeyi yapmak için kullanılan bir Windows sysadmin'in güç aracıdır. Sahipliği sizden başkası olarak değiştirebilirsiniz ( bunu GUI ile yapamazsınız ).

subinacl /file test.txt /setowner=domain\foo

Bu, (yönetici takeown.exe'nin gerektirdiğine inandığım gibi) yönetici olmak zorunda kalmadan istediğiniz herhangi bir kullanıcıya izin vermenizi sağlar.


Windows xp için geçerli değil SUBINACL.exe dosyasını (Windows 2003 Kaynak seti) indirebilir ve Windows XP'de kullanabilir miyim?
Kiquenet

Tabi ki yapabilirsin! Muhtemelen onu nereden aldım. Burada dene .
crb

26

İlk olarak Windows Server 2003'te standart bir bileşen olan "TAKEOWN.EXE" yi arıyorsunuz ve daha önce bir kaynak kiti maddesine inanıyorum. Windows 7'de ve belki de daha yeni sistemlerde kullanılabilir.

takeown /f <some-file-or-folder> /r

/rişlemi belirtilen klasördeki tüm alt öğeler üzerinde tekrarlı olarak gerçekleştirir. Aksine subinacl, sahiplenmeye çalıştığınız kullanıcı olarak giriş yapmalısınız; veya "Yöneticiler" grubuna sahiplik atayabilirsiniz.

İşte SS64'te korunan belgelerinin bir kopyası :

Sözdizimi TAKEOWN [/ s Bilgisayar [/ u [Etki Alanı] Kullanıcı Adı [/ p [Şifre]]]] / f Dosya Adı [/ a] [/ r [/ d {Y | N}]]

Anahtarlar Bilgisayar Uzak bilgisayarın adı veya IP adresi (ters eğik çizgi kullanmayın). varsayılan = yerel bilgisayar. Bu parametre komutta belirtilen tüm dosya ve klasörler için geçerlidir.

/ u [Etki alanı] KullanıcıAdı Komut dosyasını belirtilen kullanıcı hesabının izinleriyle çalıştırın. default = sistem izinleri.

/ p [Şifre] / u parametresinde belirtilen kullanıcı hesabının şifresi.

/ f DosyaAdı Dosya adı, UNC yolu veya dizin adı deseni. Joker karakterini kabul eder *

/ a Geçerli kullanıcı yerine Administrators grubuna sahiplik verin.

/ r Belirtilen dizindeki ve alt dizinlerdeki tüm dosyalar üzerinde özyinelemeli bir işlem gerçekleştir

/ d {Y | N} Geçerli kullanıcı belirtilen bir dizinde "Liste Klasörü" iznine sahip olmadığında görüntülenen onay istemini bastırın ve bunun yerine varsayılan bir değer kullanın: Y: Dizinin sahipliğini alın. N: Dizini atla. Bu seçeneği / r seçeneğiyle birlikte kullanmanız gerektiğini unutmayın. / A parametresi belirtilmezse, bilgisayarda oturum açmış olan kullanıcıya dosya sahipliği verilir.

(? Ve *) kullanarak karışık desenler takeown komutu tarafından desteklenmiyor.

Bir dosya / klasörün sahibini değiştirdikten sonra, dosyalara tam izinler atayabilir ve daha sonra bunları okuyabilir veya silebilirsiniz.



SS64 Daha iyi bir dokümantasyon bağlantısı var: ss64.com/nt/takeown.html
jpaugh

17

Klasörün ve içindeki her şeyin mülkiyetini ve tüm haklarını alın:

takeown /F somedir /A /R
icacls somedir /grant:r User:F /T

Komut İstemi'ni Yönetici olarak başlattığınızdan emin olun !

Yönetici olarak bir Komut İstemi başlatmak zorunda kaldım, Windows 8.1'de benim için çalıştı. Windows 8.1 beceriksizliği ile Komut İstemi simgesine sağ tıklayıp "komutu" aramak zorunda kaldım. Benim için "Yönetici Olarak Çalıştır" seçeneğini görmek için. Görev Çubuğuma sabitlenmiş bir Komut İstemi vardı, ancak sağ tıklamak "Yönetici olarak çalıştır" seçeneğini göstermezdi.

Windows 10'da, "Yönetici Olarak Çalıştır" sağ tıklama seçeneği olarak sizin için mevcut olmalıdır.

Alınan Sözdizimi :

takeown [/s <Computer> [/u [<Domain>\]<User name> [/p [<Password>]]]] /f <File name> [/a] [/r [/d {Y|N}]]

alınmış Referans .

Icacls Sözdizimi :

icacls <FileName>[/GRANT [: r] <Sid>: <Perm> [...]] [/ Denegar <Sid>: <Perm> [...]] [/Remove [:g|:d]] <Sid> [...]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel <Level>: <Policy> [...]]Icacls <Directory>[/ sustituir <SidOld><SidNew>[...]] [/ restore <ACLfile>[/ c] [/ l] [/q]]

icacls Referansı .


1
İcacls'ın uzun yol adlarında boğulduğunu unutmayın. "Dosya bulunamadı" hata mesajı biraz yanıltıcıdır, daha da kötüsü icalcs, ağacın geri kalanını mesaj olmadan işlemeyi durdurur. Bunu çözmek için ağaçta daha derinde bir SUBST birimi oluşturma hilesini kullanabilirsiniz. Takeown.exe uzun adları tolere eder.
Andrew Dennison

Windows XP
Kiquenet

8

Bunun gerçekten eski bir yazı olduğunu biliyorum , ancak Windows 7 ve daha yeni bir sürümde bir yol var (Windows Vista'da olabilir, ancak emin değilim). Aşağıdakileri, sıfırlamak istediğiniz klasörde yükseltilmiş bir komut isteminden çalıştırın. işlemi yinelemeli olarak gerçekleştirmesini /tsöyler icacls.

icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t

İlk komut, ortam değişkenleri aracılığıyla oturum açan sahibini sıfırlar. Tabii ki, bunun yerine belirli bir ad kullanılabilir.

İkinci komut daha sonra ağaçtan tüm alt klasörlere ve dosyalara yeniden devredilmiş izinleri zorlar.

Umarım bu gelecekte birine yardımcı olur.


İlk emir benim için yeterliydi.
Benoit Blanchon

6

İsviçre'nin izin yönetiminin bıçak bıçağı SetACL'a bakmak isteyebilirsiniz . Aşağıda, C: sürücüsündeki tüm dosyaların sahipliğini "Yöneticiler" e atamanın ve bir kerede tüm alt nesnelerden devralma korumasını kaldırmanın bir örneği verilmiştir:

SetACL.exe -on "C:\\" -ot file -actn setprot
           -op "dacl:np;sacl:nc"
           -rec cont_obj
           -actn setowner -ownr "n:S-1-5-32-544;s:y"

Ayrıca ekleyebilirsiniz -silent.


3

Windows Server 2003 R2 (ve sonrası) size yararlanabilir yerleşik araç Icacls.exe değişikliği komut satırından sahipliği yanı sıra genişlediğinde bunun üzerine geleneksel Cacls.exe'yi manipülasyonlara tüm ...

İcacls.exe'nin "edit" modunu varsayılan kıldığını, cacls.exe'nin "change" modunu varsayılan olarak değiştirdiğini unutmayın; bu bizim için cacls küçük bir nüansı tarafından (bir kereden fazla) ısırılanlara hoş geldiniz!


icacls, pencerelerin son sürümlerinde yer aldığından ve herhangi bir kullanıcıya sahiplik atamasını sağladığı için güzeldir.
David,



0

Windows Tools kullanarak bir çözüm buldum: cacls

cacls <file or directory> /E /T /G <user>:F

0
  1. yönetici kullanıcısı olarak komut istemini açın ve sorunlu dizine geçin
  2. oradaki tüm dosyaların sahipliğini al ... örnek: takeown /f *.jpg
  3. Seçtiğiniz kullanıcılara erişim hakları verin ... örneğin: icacls *.jpg /grant "Everyone":F(ingilizce olmayan Windows'ta "Herkes" bulunmayabilir, örneğin almanca Windows'ta yalnızca "Jeder" ile çalıştığını unutmayın - Windows'un komut seçeneklerini çevirdiği gerçek serseri!)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.