Windows'ta dosya izinlerini değiştirmek için chmod eşdeğeri


Yanıtlar:


25

Greg , bahsetti attrib - ama attrib yakın bir yerde değil chmod- attribtek bir dosyanın Salt Okunur / Gizli özniteliklerini ayarlayabilir - aynen iyi ayarlanmış kontroller icaclssağlamaz.

icaclsErişim kontrol listelerini ayarlar / sıfırlar, böylece bireysel SID'ler ve gruplar için haklar verebilir / reddedebilirsiniz. Yine de oldukça karmaşık.

İşte github özümde kaydettiğim bir örnek ; Bir klasördeki tüm dosyalar için sahipliği ve erişim denetim listesini sıfırlar ve özellikle önceki bir yüklemeden dosya taşırken, rahatsız edici "Bu işlemi gerçekleştirmek için izin vermelisiniz .." için özellikle yararlıdır:

icacls * /reset /t /c /q 

Sıfırla, var olanı varsayılan listeyle değiştirir.
/ttüm dosyalarda, klasörlerde ve alt klasörlerde tekrar tekrar hareket eder , bir hata durumunda bile kalan dosyalarla devam eden
/qbaşarı mesajlarını göstermez
/c.

Ayrıca mevcut ACL'leri yedeklemek ve hepsini uygulamak gibi şeyleri de yapabilirsiniz. Farklı seçenekleri ve anahtarları çok iyi anlatan ss64'e bir göz atın .


Sorun şu ki, bunu yapamam, her dosya için şu mesaj var: "Erişim reddedildi". Bunun hiçbir yolu yok mu? Bunu engelleyen, ancak cmd olmayan bir okul sisteminde?
theonlygusti

Yönetici ayrıcalıklarına ihtiyacınız var; cmd[Win] + [R] tuşlarına basarak elde ettiğiniz "normal" bunlardan yoksundur. Bu özel ihtiyaçlar için "Yönetici kabuğu" kısayoluna sahibim, "Yönetici olarak çalıştır" (veya benzeri; Alman Windows sistemindeyim) işaretli (ve koyu kırmızı bir arka plan rengiyle).
Tobias

Aslında izin reddedildi hatasıyla sorunla karşı karşıyayım. Neden bir cehennem bir yöneticiysem yapabileceğim birşeyler ve çalıştırdığım konsol da yönetici olarak çalışıyor. O nedir?
Amo


9

Orada (ne yazık ki) tam bir eşdeğer olamaz, çünkü Linux ve DOS / Windows farklı amaçlar için öznitelikler kullanır ve (daha önce Chathuranga'nın dediği gibi) güvenlik modeli farklıdır:

  • Windows dosya sistemlerinde, Linux'ta eşdeğeri olmayan "hidden" ( H) ve "system" ( S) öznitelikleri vardır; orada, bir nokta ( .) ile isim hazırlanarak dosyalar gizlenir .
  • Windows "arşiv" ( A) özniteliğine de eşdeğer yoktur .
  • xDOS / Windows dosya özniteliklerinde "yürütülebilir" ( ) Linux özniteliklerine eşdeğer yoktur .
  • Orada ise , Windows "dizini" (eşdeğer D) özniteliği (ama yine de değiştirilemez).
  • Linux dosya sistemlerinde, her giriş tam olarak bir kullanıcı ve tam olarak bir gruba aittir ve bunların her biri için ve diğerleri için okuma / yazma / yürütmeye izin verilebilir. ACL'ler (Windows tarafından kullanılanlar gibi) daha esnek, ancak daha da karmaşıktır ve komut satırı sözdizimi bir PITA'dır (benim düşünceme göre, elbette)

DOS dosya özniteliği R(salt okunur), bir eşdeğeri olduğu düşünülebilecek olandır: Bu öznitelik kümesi , wtüm eksiklerin özniteliği gibidir ; ancak bu niteliği değiştirme izni ACL'ye tabidir.

Windows'ta bir chmod/ chowneşdeğerine sahip olmak harika olabilir , belki de bazı kodlama dillerinde yazılmış, ki bunlar sırasıyla aramalar attribve cacls(veya halefler) olabilir, ama bende yok.


İyi ilk mesaj!
slm

Dosya özelliklerini ve izinlerini karıştırıyorsunuz. Linux, chattr ile değiştirilebilen dosya özniteliklerine sahiptir . Linux, nitelikler için ince taneli erişim denetimine sahiptir (örneğin [değiştirilebilen özellik yalnızca kök veya bir CAP_LINUX_IMMUTABLEişlemle ayarlanabilir), ancak Windows'ta ayarlanan niteliklere erişim tamamen ya da hiç değildir. Bu yaygın olan hata uygulamalarında chmod, Windows salt okunur dosya özniteliği ayarlamak için bu komutu kullanmak için. Maalesef sistemler sadece onları geliştiren programcılar kadar bilgilidir.
Eryk Sun

@eryksun: İlginç - Bu chattrkomutun farkında değildim . Ama beni kastediyordun, "dosya özniteliklerini ve izinlerini karıştırmak", değil mi? AFAICS, DOS nitelikleri hakkında yazdığım her kelime hala doğru.
Tobias

Bir dosya birçok (genişletilmiş) nitelikten oluşur. Unix'te, öznitelikler kümesi dosya modu (izinler) dahil olmak üzere inode'da saklanır. Diğer genişletilmiş özellikler (örneğin, ACL'ler) harici olarak depolanabilir. Windows, Unix "mode" özniteliğine eşdeğer değildir. Ayrıca dosya sistemleri için ortak bir inode kaydına sahip değildir. Bir NTFS MFT kaydı benzer. POV'sinden, standart Windows dosya öznitelikleri, dosya kaydının tek bir özniteliğidir. Bunlar chattr, Windows inode olmadığı için bir dizin özniteliği olması dışında, üzerinden ayarlanan Linux dosya özniteliklerine karşılık gelir .
Eryk Sun

Soru, "[e] chmod'un Windows'taki dosya izinlerini değiştirmeye çalıştığı" sorusunu soruyor. chmodWindows'ta doğrudan bir eşdeğer yoktur çünkü "mode" özniteliği gibi bir şey yoktur. Standart Windows dosya özniteliklerinin bununla hiçbir ilgisi yoktur. Salt okunur özelliği bir dosya izni değil. Temelde dosyanın taşla yazıldığını, bu yüzden tüm değişiklik girişimlerinin başarısız olması gerektiğini söylüyor. Linux "değişmez" dosya özniteliği benzer. Windows izinler için yalnızca ACL kullanır, bu nedenle icacls.exe ve benzerleri izinler konusundaki benzer komutlardır.
Eryk Sun

6
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C

Etki alanı kullanıcıları için bir klasördeki izinleri değiştirmek için bir cazibe gibi çalışır. Ek bilgiler ile ilgili caclsve icacls.


Güzel ilk mesaj! İcacls hiç duymadım.
slm

5

attribKomut çok temel şeyler (salt okunur, arşiv bayrakları) için en yakın eşleşme. Sonra ACL (erişim kontrol listesi) komutu var cacls. Son fakat en az değil, Windows aslında Posix uyumlu olduğundan, unix benzeri bayraklar var. Cygwin araç setini kurarsanız, bir chmod. (Biraz konu dışı, bir unix komutunun eşdeğeri aradığınız için, Cgygwin'i indirmek ve yüklemek sizin için ilginç olabilir.)



2

Pencerelerde chmod diye bir şey yoktur çünkü Windows'un güvenlik modeli Linux'tan farklıdır. attribNesnelerin özelliklerini değiştirmek için komutu kullanabilirsiniz . (Fakat onlar daha çok küresel mülke yöneliktirler.)


2

Benim için, geçici çözüm Cygwin'i yüklemek ve bin klasörünü sistem yoluna eklemektir. Ardından, komut satırında "chmod" komutunu çalıştırırsanız, çalışacaktır. Yine de doğruluğunu doğrulamadım.


1
Referans: basit ve detaylı
Bob
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.