Ответы:
Грег упоминает attrib
- но attrib
не близко к нему chmod
- attrib
может установить атрибуты «Только для чтения» / «Скрытый» для одного файла - он не предоставляет детальных элементов управления, как это icacls
делает.
icacls
устанавливает / сбрасывает списки контроля доступа, поэтому вы можете предоставлять / запрещать права для отдельных идентификаторов безопасности и групп. Это довольно сложно, хотя.
Вот пример, который я сохранил в своем Github Gist ; он сбрасывает список владения и контроля доступа для всех файлов в папке и особенно полезен для исправления тех раздражающих «Вам нужны разрешения от .. для выполнения этого действия», особенно при перемещении файлов из предыдущей установки:
icacls * /reset /t /c /q
Сброс заменяет существующий список по умолчанию.
/t
действует рекурсивно на все файлы, папки и подпапки
/q
, не отображает никаких сообщений об успешном
/c
продолжении работы с оставшимися файлами даже при возникновении ошибки.
Вы также можете делать такие вещи, как резервное копирование существующих ACL и применять их ко всем. Посмотрите на ss64, который очень хорошо объясняет различные опции и переключатели.
cmd
который вы получаете, нажимая [Win] + [R], лишен этого. Для таких особых нужд у меня есть ярлык «Оболочка администратора» с проверкой «Выполнить от имени администратора» (или аналогичной; я работаю в немецкой системе Windows) (и с темно-красным цветом фона).
Там (к сожалению) не может быть точного эквивалента, так как 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 и тому подобное являются единственными подобными командами в отношении разрешений.
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C
Работает как брелок для изменения прав доступа к папке для пользователей домена. Дополнительная информация относительно 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
команду для изменения свойств объектов. (Но они больше к глобальным свойствам.)