2010-02-08 09:34:14 +0000 2010-02-08 09:34:14 +0000
63
63

Ekwiwalent chmoda do zmiany uprawnień do plików w systemie Windows

Czy istnieje ekwiwalent systemu Windows w systemie Linux chmod do zmiany uprawnień do plików?

Odpowiedzi (8)

27
27
27
2011-08-02 17:10:18 +0000

Greg wzmianki attrib - ale attrib nie jest nigdzie w pobliżu chmod - attrib może ustawić tylko do odczytu/ukryte atrybuty pojedynczego pliku - nie dostarcza drobnoziarnistych kontrolek jak icacls robi.

icacls ustawia/resetuje listy kontroli dostępu, więc można przyznać/odebrać prawa dla poszczególnych SIDów i grup. Jest to jednak dość skomplikowane.

Oto przykład, który zapisałem w moim github gist ; resetuje on listę własności i kontroli dostępu dla wszystkich plików w folderze i jest szczególnie przydatny do naprawienia tych irytujących “Potrzebujesz uprawnień od … do wykonania tej akcji”, szczególnie podczas przenoszenia plików z poprzedniej instalacji:

icacls * /reset /t /c /q

Reset zastępuje istniejącą listę domyślną.
/t działa rekurencyjnie na wszystkie pliki, foldery i podfoldery /q nie wyświetla żadnych komunikatów o powodzeniu /c kontynuuje z pozostałymi plikami nawet w przypadku wystąpienia błędu.

Możesz również zrobić kopię zapasową istniejących ACL i zastosować je we wszystkich. Spójrz na ss64 , który bardzo dobrze wyjaśnia różne opcje i przełączniki.

13
13
13
2010-02-08 10:41:26 +0000

Albo cacls , xcacls , albo mój osobisty ulubiony icacls prawdopodobnie zrobi to, czego potrzebujesz.

10
10
10
2012-12-28 18:04:43 +0000

Nie ma (niestety) dokładnego odpowiednika, ponieważ Linux i DOS/Windows używają atrybutów do różnych celów, a (jak wcześniej powiedział Chathuranga) model bezpieczeństwa jest inny:

  • W systemach plików Windows istnieją atrybuty “ukryte” (H) i “systemowe” (S), które nie mają odpowiednika w Linuksie; tam pliki są ukryte przez podanie nazwy z kropką (.).
  • Nie ma też odpowiednika atrybutu “archiwum” Windows (A).
  • W atrybutach plików DOS/Windows nie ma odpowiednika atrybutów “wykonywalnych” (x) systemu Linux.
  • W systemie Linux każdy wpis należy do dokładnie jednego użytkownika i dokładnie jednej grupy, a odczyt/zapis/wykonanie może być dozwolone dla każdego z nich i dla innych. ACL (podobnie jak używane przez Windows) są jeszcze bardziej elastyczne, ale również bardziej skomplikowane, a składnia linii poleceń jest PITA (oczywiście w mojej skromnej opinii)

Atrybut pliku DOS D (tylko do odczytu) jest tym, który może być uznany za równoważny: ten atrybut set jest mniej więcej taki sam jak atrybut R dla wszystkich brakujących; ale pozwolenie na zmianę tego atrybutu jest uzależnione od ACL.

Fajnie byłoby mieć odpowiednik w/chmod na Windows, być może napisany w jakimś języku skryptowym, który z kolei wywołuje chown i attrib (lub jego następców), ale ja go nie mam.

7
7
7
2012-12-28 18:26:58 +0000
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C

Działa jak urok umożliwiający zmianę uprawnień w folderze dla użytkowników domeny. Dodatkowe informacje dotyczące cacls i icacls.

5
5
5
2010-02-08 11:37:51 +0000

Polecenie attrib jest najbliższym dopasowaniem dla bardzo podstawowych rzeczy (tylko do odczytu, flagi archiwalne). Następnie pojawia się polecenie ACL (lista kontroli dostępu) cacls. Wreszcie, ponieważ Windows jest w rzeczywistości zgodny z Posixem, flagi uniksowe istnieją. Jeśli zainstalujesz zestaw narzędzi Cygwin, otrzymasz komendę chmod. (Trochę poza tematem, ponieważ szukasz odpowiednika komendy uniksowej, pobranie i zainstalowanie Cgygwina może być dla Ciebie czymś interesującym).

3
3
3
2014-07-29 14:22:12 +0000

Używam polecenia Windows takeown.exe do zmiany uprawnień do plików na mój bieżący zalogowany identyfikator użytkownika: http://technet.microsoft.com/en-us/library/cc753024.aspx

2
2
2
2017-12-22 03:29:44 +0000

Dla mnie, obejściem jest zainstalowanie Cygwina i dodanie jego folderu bin do ścieżki systemowej. Następnie, jeśli uruchomisz “chmod” w linii poleceń, to będzie działać. Chociaż nie zweryfikowałem jego poprawności.

2
2
2
2010-02-08 09:37:07 +0000

Nie ma nic, co nazywa się chmod w oknach, ponieważ model bezpieczeństwa Windows jest inny niż Linux. Możesz użyć komendy attrib do zmiany właściwości obiektów. (Ale są one bardziej w kierunku właściwości globalnych).