Вообщем хочу понять что я могу с файлом сделать.
нужен что то типо ls -l
ток для windows
-
Вопрос задан
-
2077 просмотров
Полный ответ:
- CACLS — cacls.exe
Использование —cacls имя_файла
Получение справки —cacls /?
- ICACLS — icacls.exe
Использование —icacls имя_файла
Получение справки —cacls /?
В чем разница? ICACLS мощнее и удобнее. Может даже сохранять\ресторить права
Пригласить эксперта
-
Показать ещё
Загружается…
09 окт. 2023, в 16:48
500 руб./в час
09 окт. 2023, в 16:18
1000 руб./в час
09 окт. 2023, в 15:39
20000 руб./за проект
Минуточку внимания
Download Windows Speedup Tool to fix errors and make PC run faster
Wan to check the owner of File or Folder in Windows with CMD? This step-by-step guide will show you how you can find the File & Folder Ownership information using Command Prompt. It is possible to check the ownership of a single directory, all sub-directories, and files with the help of this guide.
To find the File & Folder Ownership information using Command Prompt, follow these steps:
- Open Command Prompt on your computer
- Navigate to the desired folder
- Use DIR command switch
- Find the ownership information
To get started, you need to open the Command Prompt first. There are several methods to open the Command Prompt window on your Windows computer. The simplest way is to search for it in the Taskbar search box or press Win+R buttons together to open the Run box, type cmd in it, and hit Enter.
How to check owner of File or Folder in Windows with CMD
After opening the Command Prompt, you must use the DIR command switch. Next, you need to navigate to the folder where the target file or folder is located.
Say, for example, you have a folder on your Desktop, and it is named as TWC. To navigate to this folder, you need to enter this command-
cd C:\Users\<username>\Desktop\TWC
Now, if you want to check the ownership details of the TWC folder only, enter this command-
dir /q /ad
or
dir /ad
If you want to check the ownership details of all files included in the TWC folder, you have to enter this command-
dir /q
You will some columns as shown in the following image-
The fourth column contains the owner’s name.
As all the files are under one user account or owner, it is showing the same name. If you have multiple files and owners, you can find the difference in the same column.
This command also shows the number of files, folders or directories, and the respective size so that you can perform the next task according to your requirements.
Related reads:
- How to take full Ownership of Files & Folders
- How to change Ownership of a File or Folder.
When he is not writing about Microsoft Windows or Office, Sudip likes to work with Photoshop. He has managed the front end and back end of many websites over the years. He is currently pursuing his Bachelor’s degree.
Для управления доступом к файлам и папкам в Windows на каждый объект файловой системы NTFS (каталог или файл) назначается специальный ACL (Access Control List, список контроля доступа). В ACL объекта задаются доступные операции (разрешения), которые может совершать с этим объектом пользователь и/или группы . В большинстве случаев администраторы Window для управления NFTS разрешениями на файлы и папки используют графический интерфейс File Explorer (свойства папки/файла -> вкладка Security/Безопасность) или консольную утилиту icacls. В этой статье мы рассмотрим способы управления разрешениями на объекты файловой системы NTFS из PowerShell. Вы можете использовать эти команды в скриптах и для автоматизации управлением NTFS разрешениями на файловых серверах Windows.
Содержание:
- Встроенные командлеты для управления ACL в NTFS: Get-Acl и Set-Acl
- Используем модуль NTFSSecurity для управления разрешениями из PowerShell
- Проверка эффективных NTFS разрешений на объекты из PowerShell
Встроенные командлеты для управления ACL в NTFS: Get-Acl и Set-Acl
В PowerShell v5 (Windows 10 / Windows Server 2016) для управления ACL имеется два отдельных встроенных командлета (входят в модуль Microsoft.PowerShell.Security):
- Get-Acl — позволяет получить текущие ACL для конкретного объекта на файловой системе NTFS;
- Set-Acl – используется для добавления/изменения текущих ACL объекта.
Мы не будем подробно останавливаться на этих встроенных командлетах, т.к. их функционал в большинстве случае недостаточен для управления NTFS разрешениями в реальных задачах. Рассмотрим лишь несколько типовых примеров их использования.
Выведем текущего владельца папки (файла) и список назначенных NTFS разрешений:
get-acl C:\Drivers\ |fl
Path : Microsoft.PowerShell.Core\FileSystem::C:\Drivers\
Owner : WORKSTAT1\root
Group : WORKSTAT1\Отсутствует
Access : NT AUTHORITY\Authenticated Users Allow Modify, Synchronize
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Администраторы Allow FullControl
BUILTIN\Пользователи Allow ReadAndExecute, Synchronize
WORKSTAT1\root Allow Modify, Synchronize
Audit :
Sddl : O:S-1-5-21-3650440056-3766451173-3310994491-1001G:S-1-5-21-3650440056-766451173-3310994491-513D:PAI(A;OICI;0x 1301bf;;;AU)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;OICI;0x1301bf;;;S-1-5-21-3650440056-37664 51173-3310994491-1001)
Как вы видите, текущие разрешения также представлены в виде SDDL строки – мы вкратце рассматривали этот формат описания доступа в статье Управление правами на службы Windows.
Можно вывести только списки NTFS разрешений в более понятном формате:
(get-acl C:\Drivers\).access
С помощью следящей команды можно скопировать NTFS разрешения с одной папки и применить их на другую:
Get-Acl C:\Drivers | Set-Acl C:\Distr
Для выполнения этой операции учетная запись должна быть владельцем ресурса (Owner) и обладать правами Take Ownership.
Главная проблема при использовании Set-ACL – командлет всегда пытается сменить владельца ресурса, даже если вы просто хотите изменить NTFS разрешения. В результате, чтобы добавить права на объект нужно использовать такую конструкцию:
$path = "c:\drivers"
$user = "WORKSTAT1\user1"
$Rights = "Read, ReadAndExecute, ListDirectory"
$InheritSettings = "Containerinherit, ObjectInherit"
$PropogationSettings = "None"
$RuleType = "Allow"
$acl = Get-Acl $path
$perm = $user, $Rights, $InheritSettings, $PropogationSettings, $RuleType
$rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $perm
$acl.SetAccessRule($rule)
$acl | Set-Acl -Path $path
Чтобы убрать NTFS доступ к папке для пользователя или группы:
$path = "c:\drivers"
$acl = Get-Acl $path
$rules = $acl.Access | where IsInherited -eq $false
$targetrule = $rules | where IdentityReference -eq "WORKSTAT1\user1"
$acl.RemoveAccessRule($targetrule)
$acl | Set-Acl -Path $path
Чтобы отключить наследование для папки из PowerShell:
$path = 'C:\dist'
$acl = Get-ACL -Path $path
$acl.SetAccessRuleProtection($True, $True) # первый $True указывает, является ли данный каталог защищенным, второй $True – нужно ли скопировать текущие NTFS разрешения
Set-Acl -Path $path -AclObject $acl
Используем модуль NTFSSecurity для управления разрешениями из PowerShell
Как я уже говорил, встроенный модуль для управления ACL на объекты в PowerShell не самый удобный. Для управления NTFS правами на файлы и папки в Windows лучше использовать отдельный модуль их галереи PowerShell – NTFSSecurity. Последнюю версию модуля NTFSSecurity (4.2.4 на данный момент) можно установить командой
Install-Module -Name NTFSSecurity
, или скачать вручную (линк). При ручной установке достаточно распаковать содержимое архива модуля в каталог C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity (не забудьте разблокировать скачанные файлы).
Импортируйте модуль NTFSSecurity в сессию PowerShell:
Import-Module NTFSSecurity
Выведем список команд, доступных в модуле (доступно 36 командлетов):
Get-Command -Module NTFSSecurity
Выведем текущие NTFS разрешения на каталог:
Get-Item 'c:\distr' | Get-NTFSAccess
Как вы видите, текущие разрешения представлены в более удобной форме.
Чтобы предоставить конкретному пользователю и группе группе полные права на папку, выполните команду:
Add-NTFSAccess -Path C:\distr -Account 'WORKSTAT1\confroom','BUILTIN\Администраторы' -AccessRights 'Fullcontrol' -PassThru
Совет. По умолчанию командлеты модуля NTFSSecurity не возвращают никаких данных, чтобы команда после выполнения выводила новые ACL, используйте параметр PassThru.
Чтобы предоставить права только на верхнем уровне и не изменять разрешения на вложенные объекты (только на папку), используйте команду:
Add-NTFSAccess c:\data\public -Account corp\aaivanov -AccessRights Modify -AppliesTo ThisFolderOnly
Удалить назначенные NTFS разрешения:
Remove-NTFSAccess -Path C:\distr -Account 'WORKSTAT1\confroom' -AccessRights FullControl -PassThru
Следующей командой можно лишить указанную учетную прав на все вложенные объекты в указанной папке (наследованные разрешения будут пропущены):
Get-ChildItem -Path C:\distr -Recurse | Get-NTFSAccess -Account 'WORKSTAT1\confroom' -ExcludeInherited |Remove-NTFSAccess -PassThru
Следующей командой можно назначить учетную запись Administrator владельцем всех вложенных объектов в каталоге:
Get-ChildItem -Path C:\distr -Recurse -Force | Set-NTFSOwner -Account 'Administrator'
Чтобы очистить все разрешения, назначенные на объекты каталога вручную (не будет удалены унаследованные разрешения):
Get-ChildItem -Path C:\distr -Recurse -Force | Clear-NTFSAccess
Включить NTFS наследование для всех объектов в каталоге:
Get-ChildItem -Path C:\distr -Recurse -Force | Enable-NTFSAccessInheritance
Чтобы вывести все разрешения, которые назначены вручную, исключая унаследованные разрешения:
dir C:\distr | Get-NTFSAccess –ExcludeInherited
Можно вывести разрешения, назначенные для определенного аккаунта (не путайте с эффективными разрешениями, речь о них ниже):
dir C:\distr | Get-NTFSAccess -Account corp\aaivanov
Проверка эффективных NTFS разрешений на объекты из PowerShell
Вы можете проверить эффективные NTFS разрешения на конкретный файл или папку с помощью командлета
Get-EffectiveAccess
. Допустим вы предоставили доступ на некоторую папку нескольким группам безопасности AD и теперь хотите понять, есть ли у конкретного аккаунта (SID) доступ к данной папке или нет. Как это сделать, не выводя состав групп AD, в которых входит его учетная запись? В этой ситуации как раз поможет функция проверки эффективные NTFS разрешений. Допустим, нужно проверить эффективные права на все вложенные папки в каталоге для пользователя confroom.
Get-ChildItem -Path c:\distr -Recurse -Directory | Get-NTFSEffectiveAccess -Account 'WORKSTAT1\confroom' | select Account, AccessControlType, AccessRights, FullName
Либо вы можете проверить эффективные разрешения на конкретный файл:
Get-Item -Path 'C:\distr\mstsc.exe.manifest' | Get-NTFSEffectiveAccess -Account 'WORKSTAT1\confroom' | Format-List
Случается, что при работе с файлами или папками Вам бывает необходимо изменить для них владельца и права доступа.
Смена владельца файла или папки, используя Проводник.
- Щелкните правой кнопкой мыши на файле или папке и выберите пункт Свойства.
- Перейдите на вкладку Безопасность и нажмите кнопку Дополнительно.
- Перейдите на вкладку Владелец и нажмите кнопку Изменить.
- Выполните одно из следующих действий:
- Чтобы назначить владельцем пользователя или группу из списка, в окне «Изменить владельца на» выберите нового владельца и нажмите ОК.
- Чтобы назначить владельцем пользователя или группу, которых нет в списке:
- Нажмите кнопку Другие пользователи и группы
- Если владельцем необходимо установить службу TrustedInstaller, в качестве имени объекта в поле Введите имена выбираемых объектов (примеры) введите: NT SERVICE\TrustedInstaller и нажмите кнопку ОК.
- Если владельцем необходимо другого пользователя или группу, то нажмите кнопку Дополнительно, а затем кнопку Поиск.
- В результатах поиска выберите необходимую Вам группу или пользователя и нажмите кнопку ОК.
- В окне Изменить владельца на: выберите добавленную группу или пользователя.
- Чтобы сменить владельца всех субконтейнеров и объектов в папке, установите флажок Заменить владельца субконтейнеров и объектов и нажмите кнопку ОК.
Изменение разрешений для доступа к файлам и папкам, используя Проводник.
- Щелкните правой кнопкой мыши на файле или папке и выберите пункт Свойства.
- Перейдите на вкладку Безопасность и нажмите кнопку Дополнительно.
- Нажмите кнопку Изменить разрешения и выполните одно из следующих действий:
- Чтобы изменить разрешения для существующей группы или пользователя, выберите имя этой группы или пользователя и нажмите кнопку Изменить.
- Установите необходимые Вам флажки Разрешить или Запретить напротив каждого разрешения и нажмите кнопку ОК, а затем кнопку Применить.
- Чтобы изменить разрешения для группы или пользователя, которого нет в списке Элементы разрешений, нажмите кнопку Добавить.
- Если необходимо изменить разрешения для службы TrustedInstaller, в качестве имени объекта в поле Введите имена выбираемых объектов (примеры) введите: NT SERVICE\TrustedInstaller и нажмите кнопку ОК.
- Если необходимо изменить разрешения для другого пользователя или группы, то нажмите кнопку Дополнительно, а затем кнопку Поиск.
- В результатах поиска выберите необходимую Вам группу или пользователя и нажмите кнопку ОК.
- Установите необходимые Вам флажки Разрешить или Запретить напротив каждого разрешения и нажмите кнопку ОК, а затем кнопку Применить.
- Чтобы удалить группу или пользователя из списка Элементы разрешений, нажмите кнопку Удалить.
Далее рассказывается как можно изменить разрешения или сменить владельца, используя командную строку запущенную от имени администратора.
Если после использовании команды, разрешения или владелец не сменятся, то возможно Вам придется зайти в систему под встроенной учётной записью «Администратор» для их выполнения заново.
Изменение владельца файла (папки) на указанного Вами пользователя, используя командную строку.
- icacls папка\файл /setowner Пользователь параметры
Примеры:
icacls «C:\Test\file.exe» /setowner Administrtator /C /L /Q
icacls «C:\Test\file.exe» /setowner «NT SERVICE\TrustedInstaller» /C /L /Q
icacls «C:\Test\*» /setowner система /T /C /L /Q
icacls «C:\Test» /setowner Vince /T /C /L /Q
Параметры:
/T — операция выполняется для всех соответствующих файлов и каталогов, расположенных в указанных в имени каталогах.
/C — выполнение операции продолжается при любых файловых ошибках. Сообщения об ошибках по-прежнему выводятся на экран.
/L — операция выполняется над самой символической ссылкой, а не над ее целевым объектом.
/Q — команда icacls подавляет сообщения об успешном выполнении.
Изменение разрешений для файла (папки), используя командную строку.
- icacls папка\файл /grant:r Пользователь:разрешение
Разрешения:
F — полный доступ
M — доступ на изменение
RX — доступ на чтение и выполнение
R — доступ только на чтение
W — доступ только на запись
D — доступ на удаление
Примеры:
icacls «C:\Windows\file.exe» /grant:r Vince:F
icacls «C:\Windows\file.exe» /grant:r Vince:M
icacls «C:\Windows» /grant:r Vince:F
icacls «C:\Windows» /grant:r Vince:RX /T
icacls «C:\TEMP» /grant Все:(OI)(CI)F /T
*((OI)(CI) — включают наследование для дочерних папок и файлов)
Об остальных возможностях команды icacls Вы сможете узнать введя команду: icacls /?
Смотрите также:
Join @AdmNtsRu on Telegram
Одной из типичных задач для администратора Windows является управление разрешениями NTFS для папок и файлов в файловой системе.
Чтобы управлять разрешениями NTFS, вы можете использовать графический интерфейс Проводника (вкладка «Безопасность» в свойствах папки или файла) или встроенную утилиту командной строки iCACLS.
В этой статье мы рассмотрим пример использования команды iCACLS для просмотра и управления разрешениями на папки и файлы.
Содержание
- Использование команды iCACLS
- Настройки наследования iCACLS:
- Список основных прав доступа:
- Подробные права:
- Использовать iCACLS для предоставления разрешений или изменения списков доступа для папки
- Примеры
Использование команды iCACLS
Команда iCACLS позволяет отображать или изменять списки управления доступом (ACL) для файлов и папок в файловой системе.
Предшественником утилиты iCACLS.EXE является команда CACLS.EXE (используется в Windows XP).
Чтобы просмотреть текущие разрешения для определенной папки (например, C: \ PS), откройте командную строку и запустите команду:
icacls c:\PS
Эта команда вернет вам список всех пользователей и групп, которым назначены права для этого каталога.
Попробуем понять синтаксис разрешений, возвращаемых командой iCACLS:
c:\PS CORP\someusername:(OI)(CI)(M) NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) BUILTIN\Administrators:(I)(OI)(CI)(F) BUILTIN\Users:(I)(OI)(CI)(RX) CREATOR OWNER:(I)(OI)(CI)(IO)(F) Successfully processed 1 files; Failed processing 0 files
Права доступа указываются с использованием сокращений.
Рассмотрим разрешения для пользователя CORP \ someusername.
Для этого пользователя назначаются следующие разрешения:
(OI) – наследование объекта
(CI) – наследование контейнера
(M) – доступ на изменение
Это означает, что у этого пользователя есть права на запись и изменение данных в этом каталоге.
Эти права наследуются ко всем дочерним объектам в этом каталоге.
Ниже приведен полный список разрешений, которые можно установить с помощью утилиты icacls:
Настройки наследования iCACLS:
(OI) – наследование объекта
(CI) – наследование контейнера
(IO) – наследовать только
(NP) – не распространять наследование
(I) – разрешение, унаследованное от родительского контейнера
Список основных прав доступа:
- D – доступ на удаление
- F – полный доступ
- N – нет доступа
- M – изменение
- RX – чтение и выполнение
- R – доступ только для чтения
- W – доступ только для записи
Подробные права:
DE – удаление
RC – контроль чтения
WDAC – запись в DAC
WO – владелец записи
S – синхронизировать
AS – безопасность системы доступа
MA – максимальные права
GR – общий текст
GW – общая запись
GE – общий запуск
GA – общий
RD – чтение данных / список каталогов
WD – записать данные / добавить файл
AD – добавить данные / добавить подкаталог
REA – чтение расширенных атрибутов
WEA – писать расширенные атрибуты
X – выполнение / траверс
DC – удаление дочерних
RA – читать атрибуты
WA – атрибуты записи
Используя команду icacls, вы можете сохранить текущий ACL объекта в файле, а затем применить сохраненный список к тем же или другим объектам (своего рода резервный ACL-путь).
Чтобы экспортировать текущий ACL папки C: \ PS и сохранить их в файле PS_folder_ACLs.txt, выполните команду:
icacls C:\PS\* /save c:\temp\PS_folder_ACLs.txt /t
Эта команда сохраняет ACL не только о самом каталоге, но и о всех подпапках и файлах.
Полученный текстовый файл можно открыть с помощью блокнота или любого текстового редактора.
Чтобы применить ACL выполните команду:
icacls C:\PS /restore c:\temp\PS_folder_ACLs.txt
Использовать iCACLS для предоставления разрешений или изменения списков доступа для папки
Таким образом, процесс передачи ACL из одной папки в другую, становится намного проще.
С помощью команды icacls вы можете изменить списки доступа для этой папки.
Примеры
Например, вы хотите предоставить пользователю John разрешения на редактирование содержимого папки C: \ PS.
Выполните команду:
icacls C:\PS /grant John:M
Вы можете удалить все права Джона, используя команду:
icacls C:\PS /remove John
Кроме того, вы можете запретить пользователю или группе пользователей доступ к файлу или папке следующим образом:
icacls c:\ps /deny "NYUsers:(CI)(M)"
Имейте в виду, что запрещающие правила имеет более высокий приоритет, чем разрешающие правила.
Используя команду icacls, вы можете изменить владельца каталога или папки, например:
icacls c:\ps\secret.docx /setowner John /T /C /L /Q
Вы можете изменить владельца всех файлов в каталоге:
icacls c:\ps\* /setowner John /T /C /L /Q
Также с помощью icacls вы можете сбросить текущие разрешения на объектах файловой системы:
ICACLS C:\ps /T /Q /C /RESET