Windows에서 명령줄을 사용하여 사용자에게 디렉토리에 대한 권한을 부여하려면 어떻게 해야 합니까?
Windows 명령줄을 사용하여 디렉토리(읽기, 쓰기, 수정)의 사용자에게 권한을 부여하려면 어떻게 해야 합니까?
vista 、 Vista 점 as as as ascacls
을 사용하다처음 몇 개의 도움말 라인을 다음에 나타냅니다.
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
하면 됩니다.icacls
하면 에게 모든 을 부여할 수 .D:\test
「 」 「 」 、 「 」:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
MS 매뉴얼에 따라 다음 절차를 따릅니다.
F
= 제어 = 완전 제어CI
= 컨테이너 상속 - 이 플래그는 하위 컨테이너가 이 ACE를 상속함을 나타냅니다.OI
= 객체 상속 - 하위 파일이 ACE를 상속함을 나타냅니다./T
= =기파파파파파((((((((((((((((((((((( (OI
★★★★★★★★★★★★★★★★★」CI
@ 코멘트@AlexSpence : @AlexSpence
것에 대하여는, 「 」를참조해 .icacls
인수 없이 또는 Microsoft 의 메뉴얼을 참조해 주세요.
ICACLS 를 사용할 수도 있습니다.
사용자 그룹에 폴더에 전체 제어 권한을 부여하려면:
>icacls "C:\MyFolder" /grant Users:F
IIS 사용자에게 다음에 대한 수정 권한을 부여하려면 다음과 같이 하십시오.C:\MyFolder
(IIS에 특정 폴더에 파일을 R/W할 수 있는 기능이 필요한 경우):
>icacls "C:\MyFolder" /grant IIS_IUSRS:M
ICACLS /?를 사용하면 사용 가능한 모든 옵션을 볼 수 있습니다.
명령 프롬프트를 열고 다음 명령을 실행합니다.
icacls "c:\somelocation\of\path" /q /c /t /grant Users:F
F
풀 액세스
/q /c /t
는 서브폴더에 권한을 적용합니다.
주의: "관리자로서 실행"이 도움이 될 수 있습니다.
cacls
명령어를 입력합니다.자세한 것은 이쪽을 봐 주세요.
CACLS 파일 /e /p {USERNAME}:PERMISSION}
어디에,
/p : 새 권한 설정
/e : 권한을 편집하고 이전 권한을 그대로 유지합니다. 즉, ACL을 대체하는 대신 편집하십시오.
{USERNAME} : 사용자 이름
{PERMISSION} : 사용 권한은 다음과 같습니다.
R - 읽기
W - 쓰기
C - 변경(쓰기)
F - 풀 컨트롤
예를 들어 다음 명령을 사용하여 Rocky Full(F) 컨트롤을 부여합니다(Windows 명령 프롬프트에 입력).
C:> CACLS 파일 /e /p locky:f
다음 명령을 입력하여 전체 도움말을 읽습니다.
C:> cacls /?
다음과 같은 방법을 시도하면 효과가 있습니다.
열림 1. 열림cmd.exe
2. takeown /R /F *.*
3. icacls * /T /grant [username]:(D)
4. del *.* /S /Q
파일이 나만의 액세스가 되어 「Delete(삭제)」에 할당되어 파일과 폴더를 삭제할 수 있도록 합니다.
손상된 권한: 폴더 및 하위 개체에 대한 액세스 다시 찾기
질문에 대한 답변은 대부분 장점이 있지만 IMHO는 완벽한 답을 내놓지 못하고 있다.권한 설정이 손상되어 폴더가 잠긴 경우 Windows 7에 적합한 솔루션은 다음과 같습니다.
icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T
Windows 10 에서는, 유저/SID 를 다음의 순서로 지정할 필요가 있습니다./remove:d
★★★★
icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T
.
주의:
이 명령어가 지정된 디렉토리에 적용됩니다.
사용자 "Everyone"을 지정하면 모든 가능한 사용자를 포함하므로 가능한 한 광범위한 권한이 설정됩니다.
"/remove:d" 옵션은 명시적 ALLOW 설정보다 우선하므로 존재할 수 있는 명시적 DENY 설정을 삭제합니다.이 설정은 새로운 ALLOW 설정을 작성하기 위한 필수 준비입니다.DENY 설정이 존재하지 않는 경우가 많기 때문에 이것은 예방책일 뿐이지만, 미안한 것보다 안전한 것이 좋습니다.
옵션 "/grant"는 존재하는 모든 명시적 Allow 설정을 대체하는 명시적 권한인 새 ALLOW 설정을 생성합니다.
"F" 매개 변수(즉, 생성된 권한)는 이 매개 변수를 전체 제어 권한으로 만듭니다.
"/T" 매개 변수는 폴더 자체뿐만 아니라 지정된 디렉터리의 모든 현재 하위 개체(파일 및 하위 폴더)에 이러한 변경 사항을 적용하는 재귀를 추가합니다.
와 (에 이러한 됩니다."(OI)" " "(CI)" " " " " " " " 。
부록(2019/02/10) -
상기의 Windows 10 커맨드 라인은, 오늘 친절하게 추천을 받았습니다만, 여기 있습니다.테스트할 Windows 10은 없습니다만, 테스트해 주세요(아래에 코멘트를 달아 주세요.
변경은 첫 번째 단계로 DENY 설정을 삭제하는 것에 불과합니다.DENY 설정이 존재하지 않을 가능성이 있기 때문에 이 옵션에는 차이가 없을 수 있습니다.Windows 7 에서는 /remove:d 뒤에 사용자를 지정할 필요가 없는 것으로 알고 있습니다만, 제가 잘못 알고 있을 수도 있습니다.
.
부록(2019/11/21) -
사용자 Astark는 명령어가 언어에 의존하지 않도록 Everyone을 *S-1-1-0이라는 용어로 대체할 것을 권장합니다.저는 영어판 Windows밖에 없기 때문에 이 제안서는 테스트할 수 없지만 합리적인 것 같습니다.
잠시 동안 이 문제에 대해 고민했지만, 이 스레드의 답변만 조합할 수 있었습니다(Windows 10에서는).
1. cmd PowerShell이 합니다.
2. takeown /R /F
* /T/dan : 3 . icacls * /T / grant dan : F f
행운을 빕니다.
Excel vba 스크립트를 사용하여 계정을 프로비저닝 및 생성합니다.관리자 'x' 계정을 사용하여 도구에서 만든 폴더 및 하위 폴더에 대한 모든 권한을 새 사용자에게 부여해야 했습니다.
cacls는 다음과 같습니다.cacls \ File Server \사용자명 /e /g 도메인\사용자 이름:c
이 코드를 Windows 7 이상으로 이행할 필요가 있었습니다.저의 솔루션은 다음과 같습니다.
icacls \FileServer\Users\Username/grant:r Domain\사용자명:(OI)(CI)F/t
/grant:r - 지정된 사용자 액세스 권한을 부여합니다.권한은 이전에 부여된 명시적 권한을 대체합니다.:r을 지정하지 않으면 이전에 부여된 명시적 권한에 권한이 추가됩니다.
(OI)(CI) - 이 폴더, 하위 폴더 및 파일입니다.
F - 풀 액세스
/t - 모든 하위 폴더를 이동하여 파일/디렉토리와 일치시킵니다.
이를 통해 이 서버상의 폴더는 사용자가 해당 폴더만 볼 수 있고 하위 폴더는 파일을 읽고 쓸 수 있게 되었습니다.새로운 폴더 작성도 가능합니다.
이 페이지에서 다른 사용자가 더듬거리는 경우를 대비해 여러 권한을 하나의 명령으로 묶는 경우 다음과 같이 했습니다.
icacls "c:\TestFolder" /grant:r Test_User:(OI)(CI)(RC,RD,RX)
다양한 권한에 대한 csv 문자열을 적어 둡니다.
XCACLS.VBS는 ACL 정보를 변경/편집하는 매우 강력한 스크립트입니다.c:\windows\system32\cscript.exe xcacls.vbs를 사용하면 모든 스위치와 옵션이 반환됩니다.
Microsoft Support Page에서 정식 배포를 받을 수 있습니다.
대량 폴더 생성 및 권한 부여는 다음 powershell 스크립트를 사용하여 수행할 수 있습니다.
Import-Csv "D:\Scripts\foldernames.csv" | foreach-object {
$username = $_.foldername
# foldername is the header of csv file
$domain = “example.com”
$folder= "D:\Users"
$domainusername = $domain+“\”+$username
New-Item $folder\$username –Type Directory
Get-Acl $folder\$username
$acl = Get-Acl $folder\$username
$acl.SetAccessRuleProtection($True, $False)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$domain\Domain Admins","Read", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($domainusername,"Modify", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
Set-Acl $folder\$username $acl
}
주의: CSV 파일에 동일한 도메인 사용자 이름을 생성해야 합니다. 생성하지 않으면 권한 문제가 발생합니다.
attrib +r +a +s +h <folder name> <file name> to hide
attrib -r -a -s -h <folder name> <file name> to unhide
뛰어난 포인트 컬린 달리
cacls를 사용하는 스크립트가 너무 많아서 루트마운트 볼륨을 변경하는 스크립트를 찾을 수 없는 경우 icacls로 이동합니다(예: d:\datafolder).마지막으로 아래 스크립트를 작성했습니다.이 스크립트는 볼륨을 임시 드라이브로 마운트한 후 sec.를 적용하고 마운트 해제합니다.루트 마운트 보안을 업데이트할 수 있는 유일한 방법입니다.
1은 폴더 마운트 GUID를 임시 파일로 가져온 다음 GUID를 읽고 볼륨을 마운트합니다. 임시 드라이브 X:가 초를 적용하고 변경 사항을 기록한 다음 X: 드라이브에서만 볼륨을 마운트 해제하므로 마운트된 폴더가 적용된 초 이외에는 변경되거나 중단되지 않습니다.
다음은 스크립트의 예입니다.
**mountvol "d:\%1" /L >tempDrive.temp && FOR /f "tokens=*" %%I IN (tempDrive.temp) DO mountvol X: %%I
D:\tools\security\icacls.exe %~2 /grant domain\group:(OI)(CI)F /T /C >>%~1LUNsec-%TDWEEK%-%TMONTH%-%TDAY%-%TYEAR%-%THOUR%-%TMINUTE%-%TAM%.txt
if exist x:\*.* mountvol X: /d**
나는 관리자이며, 일부 스크립트는 디렉토리 내의 모든 파일 및 하위 폴더에 대해 내 이름에 "거부" 권한을 부여했습니다.의 실행icacls "D:\test" /grant John:(OI)(CI)F /T
이 목록에서 내 이름에서 "거부"를 삭제하지 않은 것 같았기 때문에 명령어가 작동하지 않았습니다.
은 모든 을 일일 the the the the the the the the the the all 이다.icacls "D:\test" /reset /T
명령어를 입력합니다.
- 탐색기를 사용하여 권한을 설정할 최상위 디렉토리로 이동합니다.
- 탐색기 창의 주소 표시줄에 cmd를 입력합니다.
- 「 「 」라고 입력합니다.
icacls . /grant John:(OI)(CI)F /T
(John)입니다. - 이익
것이 보였기 때문에 사람들이 을 얻을 수 - 은 ------ --- --- -- -- -- -- -- -- -- -- -- -- - -- - - - - - - - - ----- -- - - - - - -- ----- - --- - ---- - - ---- --------Călin Darie
.
명령어를 실행했을 때:
icacls "c:/path/to/folderA/folderB" /grant:r Everyone:(OI)(CI)F /T
의 none의 none 。folderB
메시지로 됩니다.이것은 출력 메시지로 표시됩니다.
Successfully processed 0 files; Failed processing 0 files
를 부모 디렉토리 「」)로하면, 「」가 됩니다."c:/path/to/folderA"
folderB
이치노
: 다른 : "/"/""folderA
처리하지 않으려면 위의 명령을 실행하기 전에 모든 파일/파일을 다른 위치로 이동해 보십시오.
이것이 같은 문제에 부딪힌 모든 사람에게 도움이 되기를 바랍니다.
드라이브에서 파일을 열 수 없습니다. 이 명령은 모두 잠금을 해제했습니다.
icacls i:\* /grant Users:F /t /q /c
"c:>" 및 ">" 없이 동작하는 윈도 10
예를 들어 다음과 같습니다.
F = Full Control
/e : Edit permission and kept old permission
/p : Set new permission
cacls "file or folder path" /e /p UserName :f
(오류 2502 및 2503도 수정됩니다).
cacls "C:\Windows\Temp" /e /p 사용자 이름:f
이것이 나에게 효과가 있었다.
액세스가 거부된 폴더를 수동으로 엽니다.
해당 폴더에서 실행 파일/응용 프로그램 파일을 선택합니다.
마우스 오른쪽 버튼을 클릭하여 ->로 이동합니다.
이제 를 참조해 주세요.
를 클릭합니다.
그 문제는 이제 해결되었다.
언급URL : https://stackoverflow.com/questions/2928738/how-to-grant-permission-to-users-for-a-directory-using-command-line-in-windows
'source' 카테고리의 다른 글
UIButton에서 텍스트 오른쪽에 이미지를 배치하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
---|---|
OS X에서 $PATH 변수의 현재 값을 확인하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
Swift를 사용하여 이미지 크기를 조정하는 방법UI? (0) | 2023.04.16 |
UILabel에서 줄 간격을 제어하는 방법 (0) | 2023.04.16 |
Git 저장소에서 삭제된 파일을 찾아서 복원하려면 어떻게 해야 하나요? (0) | 2023.04.16 |