Эквивалент chmod для изменения прав доступа к файлу в Windows
Есть ли эквивалент Windows в Linux chmod
для изменения прав доступа к файлу?
Есть ли эквивалент Windows в Linux chmod
для изменения прав доступа к файлу?
Greg упоминает attrib
- но attrib
нигде не приближается к chmod
- attrib
может установить атрибуты только для чтения/скрытия одного файла - он не предоставляет точных элементов управления, как это делает icacls
.
icacls
устанавливает/сбросает списки контроля доступа, так что вы можете предоставить/отменить права для отдельных SID'ов и групп. Однако это довольно сложно.
Вот пример, который я сохранил в github gist ; он сбрасывает список прав собственности и контроля доступа для всех файлов в папке и особенно полезен для исправления этих надоедливых “Вам нужны права от … для выполнения этого действия”, особенно при перемещении файлов из предыдущей установки:
icacls * /reset /t /c /q
Reset заменяет существующий список списком по умолчанию.
/t
действует рекурсивно на все файлы, папки и вложенные папки
/q
не выводит никаких сообщений об успешности
/c
продолжает с оставшимися файлами даже при возникновении ошибки
Вы также можете делать такие вещи, как резервное копирование существующих ACL и применять их ко всем. Взгляните на ss64 , который очень хорошо объясняет различные опции и переключатели.
Точного эквивалента (к сожалению) быть не может, так как Linux и DOS/Windows используют атрибуты для разных целей, и (как уже говорил Чатуранга) модель безопасности отличается:
H
) и “системные” (S
) атрибуты, которые не имеют эквивалента в Linux; там файлы скрываются путем добавления имени с точкой (.
). A
) тоже нет. x
) Linux. D
) есть is эквивалент (но его все равно нельзя изменить). В файловых системах Linux каждая запись принадлежит ровно одному пользователю и ровно одной группе, и чтение/запись/исполнение может быть разрешено для каждого из них, а также для других. ACL (как в Windows) еще более гибкие, но и более сложные, а синтаксис командной строки - PITA (по моему скромному мнению, конечно)
Атрибут файла DOS R
(только для чтения) - это тот, который можно считать эквивалентным: этот атрибут set примерно похож на атрибут w
для всех отсутствующих; но разрешение на изменение этого атрибута зависит от ACL.
Было бы круто иметь chmod
/chown
эквивалент в Windows, возможно, написанный на каком-нибудь языке сценариев, который, в свою очередь, вызывает attrib
и cacls
(или преемников), но у меня его нет.
Команда attrib
- самое близкое совпадение для очень простых вещей (только для чтения, флаги архива). Затем есть команда cacls
ACL (список контроля доступа). И последнее, но не менее важное: поскольку Windows на самом деле соответствует Posix, флаги unix-подобные существуют. При установке набора инструментов Cygwin вы получите chmod
. (Немного нестандартно, поскольку вы ищете эквивалент команды unix, загрузка и установка Cgygwin может быть чем-то интересным для вас).
Я использую команду Windows takeown.exe
для изменения файловых разрешений на свой текущий идентификатор пользователя, вошедшего в систему: http://technet.microsoft.com/en-us/library/cc753024.aspx
В Windows нет ничего, называемого chmod, потому что модель безопасности Windows отличается от Linux. Вы можете использовать команду attrib
для изменения свойств объектов. (Но они больше похожи на глобальные свойства).