Есть ли в Windows эквивалент Linux chmod
для изменения прав доступа к файлу?
источник
Есть ли в Windows эквивалент Linux chmod
для изменения прав доступа к файлу?
Грег упоминает attrib
- но attrib
не близко к нему chmod
- attrib
может установить атрибуты «Только для чтения» / «Скрытый» для одного файла - он не предоставляет детальных элементов управления, как это icacls
делает.
icacls
устанавливает / сбрасывает списки контроля доступа, поэтому вы можете предоставлять / запрещать права для отдельных идентификаторов безопасности и групп. Это довольно сложно, хотя.
Вот пример, который я сохранил в своем Github Gist ; он сбрасывает список владения и контроля доступа для всех файлов в папке и особенно полезен для исправления тех раздражающих «Вам нужны разрешения от .. для выполнения этого действия», особенно при перемещении файлов из предыдущей установки:
icacls * /reset /t /c /q
Сброс заменяет существующий список по умолчанию.
/t
действует рекурсивно на все файлы, папки и подпапки
/q
, не отображает никаких сообщений об успешном
/c
продолжении работы с оставшимися файлами даже при возникновении ошибки.
Вы также можете делать такие вещи, как резервное копирование существующих ACL и применять их ко всем. Посмотрите на ss64, который очень хорошо объясняет различные опции и переключатели.
cmd
который вы получаете, нажимая [Win] + [R], лишен этого. Для таких особых нужд у меня есть ярлык «Оболочка администратора» с проверкой «Выполнить от имени администратора» (или аналогичной; я работаю в немецкой системе Windows) (и с темно-красным цветом фона).Либо cacls , xcacls , либо мои личные любимые icacls , вероятно, сделают то, что вам нужно.
источник
icacls
что доступно только на Vista / 7.Там (к сожалению) не может быть точного эквивалента, так как Linux и DOS / Windows используют атрибуты для разных целей, и (как ранее говорил Чатуранга) модель безопасности отличается:
H
) и «system» (S
), которые не имеют эквивалента в Linux; там файлы скрываются путем добавления имени к точке (.
).A
атрибуту Windows "archive" ( ).x
атрибутах файла DOS / Windows нет эквивалента атрибутам «executeable» ( ) Linux.D
) атрибут (но он не может быть изменен в любом случае).Атрибут файла DOS
R
(только для чтения) - это тот, который можно считать имеющим эквивалент: этот набор атрибутов примерно такой же, какw
атрибут для всех отсутствующих; но разрешение на изменение этого атрибута зависит от ACL.Было бы здорово иметь
chmod
/chown
эквивалент в Windows, возможно написанный на каком-то языке сценариев, который в свою очередь вызываетattrib
иcacls
(или преемников), но у меня его нет.источник
CAP_LINUX_IMMUTABLE
процессом), тогда как доступ к заданным атрибутам в Windows - «все или ничего». В реализациях Windows часто встречается ошибка приchmod
использовании этой команды для установки атрибута файла только для чтения. К сожалению, системы информированы только так, как программисты, которые их разрабатывают.chattr
команде. Но вы не имели в виду меня, чтобы "перепутать атрибуты файла и разрешения", верно? AFAICS, каждое слово, которое я написал о атрибутах DOS, все еще верно.chattr
, за исключением того, что в Windows есть атрибут каталога, так как здесь нет inode.chmod
Windows нет прямого эквивалента, потому что нет ничего похожего на атрибут «mode» файла. Стандартный набор атрибутов файлов Windows не имеет к этому никакого отношения. Атрибут только для чтения не является разрешением для файла. Это в основном говорит, что файл написан в камне, поэтому все попытки изменить его должны потерпеть неудачу. Linux «неизменяемый» атрибут файла аналогичен. Windows использует только ACL для разрешений, поэтому icacls.exe и тому подобное являются единственными подобными командами в отношении разрешений.Работает как брелок для изменения прав доступа к папке для пользователей домена. Дополнительная информация относительно
cacls
иicacls
.источник
Команда
attrib
наиболее близко подходит для самых простых вещей (только для чтения, архивные флаги). Затем есть команда ACL (список контроля доступа)cacls
. И последнее, но не менее важное: поскольку Windows на самом деле совместима с Posix, флаги в стиле unix существуют. Если вы установите набор инструментов Cygwin, вы получитеchmod
. (Немного не по теме, так как вы ищете эквивалент команды unix, загрузка и установка Cgygwin может быть чем-то интересным для вас.)источник
Я использую команду Windows,
takeown.exe
чтобы изменить права доступа к файлу для моего текущего зарегистрированного идентификатора пользователя: http://technet.microsoft.com/en-us/library/cc753024.aspxисточник
В Windows нет ничего, что называется chmod, потому что модель безопасности Windows отличается от Linux. Вы можете использовать
attrib
команду для изменения свойств объектов. (Но они больше к глобальным свойствам.)источник
Для меня обходной путь - установить Cygwin и добавить его папку bin в системный путь. Затем, если вы запустите "chmod" в командной строке, он будет работать. Хотя я не проверил его правильность.
источник