icacls nedir ve nasıl kullanılır
Bu makalede, icacls nedir ve nasıl kullanılır konusuna detaylı bakacağız. icacls komutuyla bir Windows işletim sisteminde bir dosya veya klasörün NTFS izinlerini nasıl ayarlayacağımızı veya sıfırlayacağımızı hatta acl izinlerini nasıl export edip import edebileceğimizi öğreneceğiz.
Bazı durumlarda dosya veya dizin izinlerini gözden kaçırabiliriz ve belirli bir dosyaya erişmeye çalıştığımızda hiçbir sonuca ulaşamayabiliriz çünkü bu işlemi yapma yetkimiz yoktur.
ya da izin sorunu için olması gerektiği gibi çalışmayan bir yazılım çalıştırmamız gerekebilir.
Bu gibi durumlarda, Icacls komutu imdadımıza koşuyor.
Makale İçeriği
icacls nedir ve nasıl kullanılır
Icacls nedir?
Icacls, dosyalar veya dizinler için ACL’de bazı işlemleri göstermenize ve gerçekleştirmenize olanak tanıyan bir komut satırı yardımcı programı olan cacl’lerin (Change Access Control List) yerine geçer.
ACL (Erişim Kontrol Listesi), bir dosya sistemi nesnesi için izinlerin bir listesidir ve güvenliğinin, kime ve nasıl erişilebileceğini yöneterek nasıl kontrol edildiğini tanımlar.
Aslında, ACL üzerindeki işlemler bu araçla mümkün olan tek şey değildir.
Onu güçlü bir araç yapan şey, ACL’de dosyalar veya dizinler için yedekleme ve geri yükleme işlemleri gerçekleştirme veya sahibi olarak belirli bir kullanıcıya sahip dosyaları arama yeteneğidir.
Ayrıca, bir ACL’nin hasar görmesi veya yok edilmesi durumunda, icacls ile onu sıfırlayarak ve varsayılan izinleri ayarlayarak veya ebeveyninkileri devralarak geri yükleyebilirsiniz.
Icacls: ntfs sıfırlama işlemi
Sıfırla
Icacls, Windows Vista, Windows 7, Windows 8 ve Windows 10’da çalışan yerel bir Windows komutudur
bir çalışmanın depolandığı harici bir sabit diskimiz olduğunu ve onu kurtarmak istediğimizi, ancak bizim tam kontrole sahip.
Klasörü açmaya çalışır çalışmaz aşağıdaki uyarı mesajını alacağız.
You don’t currently have permission to access this folder.
Bu gibi durumlarda çözüm , Icacls’ın sıfırlama işlevini kullanmaktır.
Komut terminalini yönetici modunda açalım.
Klasöre geçelim ve aşağıdaki gibi reset komutunu yazalım:
1 <strong><em><span style="font-size: 14pt;"> $> icacls * / t / q / c / reset</span></em></strong>
Ve yine yanıt olarak “Erişim reddedildi” mesajı alacağız.
Bu nedenle, önce takeown komutuyla klasörün sahibi olmalıyız :
1 <em><strong><span style="font-size: 14pt;">$> takeown / R / F *</span></strong></em>
Evet’i tıkladığınızda, artık ACL’yi sıfırlamış olacaksınız.
Yalnızca Hakan adlı kullanıcının klasöre erişimi vardır ve biz de Ali kullanıcısına izin vermek istiyoruz .
Önceki komutla klasörün sahibi olabiliriz
1 <em><strong><span style="font-size: 14pt;">$> takeown / R / F *</span></strong></em>
ve ardından aşağıdaki komutu yazın:
1 <em><strong><span style="font-size: 14pt;">$> icacls "E: \ Study2018" / t / grant: F</span></strong></em>
Bu durumda, recursive anlamına gelen / t seçeneklerini ve grant vermek istediğimiz kullanıcı için “Full access” anlamına gelen F’yi ekledim.
Daha fazla seçenek için resmi sayfaya bakabilirsiniz
Diğer icacls işlevleri
ACL’leri backup almak ve restore etmek için bir dosyaya kaydetmeniz gerekirse, birkaç komutla “backup ve restore” komutunu kullanarak bunu yapabilirsiniz.
Çok basit bir işlemle: NTFS üzerindeki ACL’ler bilgileri , geri yükleme ihtiyacı durumunda kullanılabilecek bir dosyaya kaydedilir.
Bu acl metin editörü ile açılıp kontrol edilmek istenebilir. Metin editörü ile açıp değişiklik yaparsanız bir daha restore işlemi yapamayabilirsiniz aman dikkat.
“icacls ile ntfs acl backup ve restore” komutları aşağıdaki gibidir:
1 <span style="font-family: terminal, monaco;"><em><strong><span style="font-size: 14pt;"><code style="box-sizing: border-box; display: block; line-height: 22px; word-break: break-all; overflow-wrap: break-word; margin: 0px 0px 24px;" data-author-content="icacls <target> /save acls.bin /t ">icacls FILE_O_DIRECTORY /save aclfile /t</code></span></strong></em></span>
1 <strong><em><span style="font-size: 14pt; font-family: terminal, monaco;"><code style="box-sizing: border-box; display: block; line-height: 22px; word-break: break-all; overflow-wrap: break-word; margin: 0px 0px 24px;" data-author-content="icacls <directory> /restore acls.bin ">icacls DIRECTORY/restoreaclfile</code></span></em></strong>
İki komut arasında bir fark göreceksiniz.
Kaydet komutu hem dosyada hem de dizinlerde çalıştırılabilir (FILE_O_O_DIRECTORY, ACL’yi kaydetmek istediğimiz dosya veya dizinin adıyla değiştirilmelidir).
restore komutu yalnızca dizinlerde çalışırken.
Bir kullanım örneği aşağıdaki gibidir:
1 <em><strong><span style="font-size: 14pt; font-family: terminal, monaco;"><code style="box-sizing: border-box; display: block; line-height: 22px; word-break: break-all; overflow-wrap: break-word; margin: 0px 0px 24px;" data-author-content="C:\Users\Jesper>icacls test.txt /save acls.bin processed file: test.txt Successfully processed 1 files; Failed processing 0 files C:\Users\Jesper>icacls test.txt /restore acls.bin test.txt\test.txt: The system cannot find the path specified Successfully processed 0 files; Failed processing 1 files C:\Users\Jesper>icacls . /restore acls.bin processed file: .\test.txt Successfully processed 1 files; Failed processing 0 files ">E:\> icacls ali.txt /save aclfile /t</code></span></strong></em>
1 <em><strong><span style="font-size: 14pt;"><code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; display: block; line-height: 22px; word-break: break-all; overflow-wrap: break-word; margin: 0px 0px 24px;" data-author-content="C:\Users\Jesper>icacls test.txt /save acls.bin processed file: test.txt Successfully processed 1 files; Failed processing 0 files C:\Users\Jesper>icacls test.txt /restore acls.bin test.txt\test.txt: The system cannot find the path specified Successfully processed 0 files; Failed processing 1 files C:\Users\Jesper>icacls . /restore acls.bin processed file: .\test.txt Successfully processed 1 files; Failed processing 0 files ">E:\>icacls . /restore aclfile</code></span></strong></em>
Gördüğünüz gibi, geri yükleme komut durumunda ali.txt değil (.) ile , içinde bulunduğu dizini kullanacağız.