it-swarm.asia

Komut satırından dosyaların sahipliği nasıl alınır?

Sıklıkla sahiplenmem gereken bir dosyaya giriyorum. Normalde ntfs izinlerini değiştirmek için cacls kullanıyorum, ancak sahiplik gibi görünmüyor. * Nix altında chown me:me <file>. chown ile eşdeğer bir pencere var mı?

34
Joe

subinacl , sahiplik ve ACL'lerle ilgili her şeyi yapmak için bir Windows sysadmin'in güç aracıdır. Sahipliği yalnızca siz dışındaki herhangi biriyle değiştirebilirsiniz ( bunu GUI ile yapamazsınız ).

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

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

25
crb

Windows Server 2003'te standart bir bileşen olarak ilk "TAKEOWN.EXE" için arıyorsunuz ve daha önce bir kaynak kiti öğesi inanıyorum. Windows 7'de ve belki de daha yeni sistemlerde kullanılabilir.

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

/r işlemi belirtilen klasörün tüm alt öğelerinde yinelemeli olarak gerçekleştirir. subinacl 'dan farklı olarak, sahipliğini almaya çalıştığınız kullanıcı olarak giriş yapmalısınız; veya "Yöneticiler" grubuna sahiplik atayabilirsiniz.

SS64 ile korunan belgelerinin bir kopyası:

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

Tuşlar Bilgisayar Uzak bir bilgisayarın adı veya IP adresi (ters eğik çizgi kullanmayın). default = yerel bilgisayar. Bu parametre komutta belirtilen tüm dosyalar ve klasörler için geçerlidir.

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

/ p [Parola]/u parametresinde belirtilen kullanıcı hesabının parolası.

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

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

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

/ d {Y | N} Geçerli kullanıcının belirli bir dizinde "Klasörü Listele" izni olmadığında görüntülenen onay istemini kaldı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 *) kullanılan karma desenler, alma komutu tarafından desteklenmez.

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

26
Evan Anderson

Klasörün ve içindeki her şeyin sahipliğini 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" aramak zorunda kaldı, Komut İstemi simgesini sağ tıklayın. 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ıklandığında "Yönetici olarak çalıştır" seçeneği gösterilmez.

Windows 10'da, "Yönetici Olarak Çalıştır" seçeneğini sağ tıklama seçeneği olarak kullanabilirsiniz.

Alınan Sözdizimi :

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

Kalkış 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 Başvurus .

17
chipiik

Bunun gerçekten eski bir yazı olduğunu biliyorum, ancak Windows 7 ve daha yeni bir yerleşik (Windows Vista'da olabilir, ama emin değilim) bir yol var. Sıfırlamak istediğiniz klasörde bulunan bir komut isteminden aşağıdaki komutu çalıştırın. /t, icacls öğesine işlemi özyinelemeli olarak gerçekleştirmesini söyler.

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

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

İkinci komut daha sonra izinleri ağaç altından tüm alt klasörlere ve dosyalara aktarmaya zorlar.

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

8
Jim

İzin yönetiminin İsviçre çakısı SetACL 'a bakmak isteyebilirsiniz. İşte C: sürücüsündeki tüm dosyaların sahipliğini "Yöneticiler" e nasıl atayacağınız ve tüm alt nesnelerden miras korumasını tek seferde nasıl kaldıracağınız örnek :

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 -silent.

6
Helge Klein

Windows 2003, 2008 veya Vista veya 7 için Takeown kullanın.

Windows 2000 için Fileowners.pl kullanın.

3
Dave Drager

Windows Server 2003 R2'de (ve üstü), komut satırından sahipliği değiştirmek için yerleşik araç icacls.exe ve ayrıca geleneksel cacls.exe işlemlerinin tümünden yararlanabilirsiniz. genişler ...

Cacls.exe varsayılan olarak "değiştir" modunu değiştirirken, icacls.exe'nin varsayılan olarak "değiştir" modunu değiştirdiğine dikkat edin.

3
jnaab

Başka bir alternatif fileacl Küçüktür ve çoğu windows yardımcı programından farklı olarak, nesne üzerindeki "devral/devralma" bayrağını ayarlayabilir/ayarlayabilir.

1
Skelewir
  1. open command Yönetici kullanıcı olarak sor ve sorunlu dizine geç
  2. oradaki tüm dosyaların sahipliğini al ... örnek: takeown /f *.jpg
  3. seçtiğiniz kullanıcılara erişim hakları verin ... örnek: icacls *.jpg /grant "Everyone":F (İngilizce olmayan Windows'ta "Herkes" bulunmayabileceğini unutmayın, örneğin Almanca Windows'da yalnızca "Jeder" ile çalışır - Windows'un komut seçeneklerini çevirdiği gerçek serseri!)
0
Jörg

Windows Araçları'nı kullanarak bir çözüm buldum: cacls

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