source

Windows에서 명령줄을 사용하여 사용자에게 디렉토리에 대한 권한을 부여하려면 어떻게 해야 합니까?

manycodes 2023. 4. 16. 15:24
반응형

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  

.
주의:

  1. 이 명령어가 지정된 디렉토리에 적용됩니다.

  2. 사용자 "Everyone"을 지정하면 모든 가능한 사용자를 포함하므로 가능한 한 광범위한 권한이 설정됩니다.

  3. "/remove:d" 옵션은 명시적 ALLOW 설정보다 우선하므로 존재할 수 있는 명시적 DENY 설정을 삭제합니다.이 설정은 새로운 ALLOW 설정을 작성하기 위한 필수 준비입니다.DENY 설정이 존재하지 않는 경우가 많기 때문에 이것은 예방책일 뿐이지만, 미안한 것보다 안전한 것이 좋습니다.

  4. 옵션 "/grant"는 존재하는 모든 명시적 Allow 설정을 대체하는 명시적 권한인 새 ALLOW 설정을 생성합니다.

  5. "F" 매개 변수(즉, 생성된 권한)는 이 매개 변수를 전체 제어 권한으로 만듭니다.

  6. "/T" 매개 변수는 폴더 자체뿐만 아니라 지정된 디렉터리의 모든 현재 하위 개체(파일 및 하위 폴더)에 이러한 변경 사항을 적용하는 재귀를 추가합니다.

  7. 와 (에 이러한 됩니다."(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명령어를 입력합니다.

  1. 탐색기를 사용하여 권한을 설정할 최상위 디렉토리로 이동합니다.
  2. 탐색기 창의 주소 표시줄에 cmd를 입력합니다.
  3. 「 「 」라고 입력합니다.icacls . /grant John:(OI)(CI)F /T(John)입니다.
  4. 이익

것이 보였기 때문에 사람들이 을 얻을 수 - 은 ------ --- --- -- -- -- -- -- -- -- -- -- -- - -- - - - - - - - - ----- -- - - - - - -- ----- - --- - ---- - - ---- --------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

이것이 나에게 효과가 있었다.

  1. 액세스가 거부된 폴더를 수동으로 엽니다.

  2. 해당 폴더에서 실행 파일/응용 프로그램 파일을 선택합니다.

  3. 마우스 오른쪽 버튼을 클릭하여 ->로 이동합니다.

  4. 이제 를 참조해 주세요.

  5. 를 클릭합니다.

그 문제는 이제 해결되었다.

언급URL : https://stackoverflow.com/questions/2928738/how-to-grant-permission-to-users-for-a-directory-using-command-line-in-windows

반응형