Powershell: sudo ์ง€์›<powershell cmdlet=""/>

์— ๋งŒ๋“  2017๋…„ 02์›” 28์ผ  ยท  99์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: PowerShell/PowerShell

์žฌํ˜„ ๋‹จ๊ณ„

sudo Remove-Item foo.txt ์—ฌ๊ธฐ์„œ foo.txt๋Š” ๋ฃจํŠธ๊ฐ€ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

foo.txt ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

sudo: Remove-Item: command not found

Committee-Reviewed Issue-Enhancement WG-Engine

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Windows์—์„œ๋„ cmdlet์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ๋˜๋Š” ์Šน๊ฒฉ ๋œ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ๊ณผ ์ด์‹ ๊ฐ€๋Šฅํ•œ ์Šคํฌ๋ฆฝํŠธ์— ์˜์กด ํ•  ์ˆ˜์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด RFC๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  99 ๋Œ“๊ธ€

ํ ! ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ ํ–‰๋™์€ ์˜ˆ์ƒ๋Œ€๋กœ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Windows์—์„œ์™€ ๊ฐ™์ด sudo์™€ ๊ฐ™์€ ๋ช…๋ น์ด ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ 'sudo powershell'์„ ์‚ฌ์šฉํ•˜๊ณ  'sudo powershell'์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“  foo.txt ์ œ๊ฑฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด Remove-Item์„ ์‚ฌ์šฉํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋น„ ์Šน๊ฒฉ ๊ถŒํ•œ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

PowerShell ๋‚ด์—์„œ Linux ๋ช…๋ น ( "sudo nautilus")์—์„œ๋งŒ 'sudo'๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

:)

Windows์—์„œ๋„ cmdlet์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ๋˜๋Š” ์Šน๊ฒฉ ๋œ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜์žˆ๋Š” ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ๊ณผ ์ด์‹ ๊ฐ€๋Šฅํ•œ ์Šคํฌ๋ฆฝํŠธ์— ์˜์กด ํ•  ์ˆ˜์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด RFC๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ # 3506์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด Linux๋ฅผ ์ ์‘์‹œํ‚ค๋Š” ๋ฐ ๋ฐฉํ•ด๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” bash๋ฅผ sudo ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ sudo powershell์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Maximo์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. sudo๋ฅผ bash์— ๋งก๊ธฐ๊ณ  ์˜ˆ์ƒ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์Šค์บ ํด๋”ฉ์œผ๋กœ sudo๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ powershell์—์„œ ์ƒ์Šน์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์œ„ํ•œ ์ƒˆ cmdlet์„ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@dantraMSFT๊ฐ€์ด ๋ฅผ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Dan์ด ์ด์— ๋Œ€ํ•œ ํ˜„์žฌ ์ƒ๊ฐ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@pixelrebirth ๋‹น์‹ ์ด ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋Œ€๊ธฐ, ์ถœ๋ ฅ ๋ฆฌ๋””๋ ‰์…˜ ๋˜๋Š” ํŒŒ์ดํ”„ ๋ผ์ธ ๋ฆฌ๋””๋ ‰์…˜์œผ๋กœ ๊ฐ„๋‹จํ•œ ์‹คํ–‰์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ ์‚ฌ์šฉ๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

@dantraMSFT ์ธ์ˆ˜๋ฅผ ์œ„ํ•ด cmdlet๊ณผ ๊ฐ™์€ ์ƒˆ sudo๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Invoke-Elevated
์ด๊ฒƒ์ด sudo๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ powershell ๋ฐฉ์‹์œผ๋กœ Invoke-Elevated๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

$cred = Get-Credential
Invoke-Elevated -credential $cred -command {
        Get-ChildItem ./test | Remove-Item -force
} | Get-SomeCmdlet

์ด ์˜ˆ์—์„œ ์Šคํฌ๋ฆฝํŠธ ๋ธ”๋ก์˜ ๋ชจ๋“  ๊ฒƒ์€ ์ƒ์Šน ๋œ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ ๋œ ๋‹ค์Œ ๊ถŒํ•œ์ด์—†๋Š” Get-SomeCmdlet์œผ๋กœ ํŒŒ์ดํ”„๋ฉ๋‹ˆ๋‹ค.
Cred๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์ด๊ฑฐ๋‚˜ ์ž์‹ ์ด ์Šน๊ฒฉ ๋œ ์‚ฌ์šฉ์ž ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ถŒํ•œ์€ sudoers ํŒŒ์ผ์ด ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ๋ผ๊ณ ๋„ ํ•จ)์ฒ˜๋Ÿผ ์–ด๋”˜๊ฐ€์— ๋ณด๊ด€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Invoke-Elevated๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ๊น…์„ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž | ๋ช…๋ น | DateTime ๋˜๋Š” ์œ ์‚ฌํ•œ ํ˜•์‹ ๋กœ๊น…

์ด ์ค‘ ์ผ๋ถ€๋Š” ๋‚˜์ค‘์— ํ™•์žฅ๋˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๋‚ด ์ฐจ๋‹จ์ œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Get-ChildItem ./test | Invoke-Elevated -command {Remove-Item -force}
์ž๊ฒฉ ์ฆ๋ช…์ด ํ˜„์žฌ ์‚ฌ์šฉ์ž์ด๊ณ  ์•”ํ˜ธ ๋งŒ ๋ฌป๋Š” ๊ฒฝ์šฐ ...

์ด ์˜ˆ์—์„œ๋Š” Get-ChildItem์ด ์ƒ์Šน๋˜์ง€ ์•Š์•˜๊ณ  Remove-Item์ด ์ƒ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „ํ™”์—์„œ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ฌผ์–ด ๋ดค๋Š”๋ฐ ์•„๋‚ด๊ฐ€ ๊ทธ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋™์•ˆ ๋‹ค์ณค๊ณ  ๋งŽ์ด ๋†“์ณค์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋ฉ”๋ชจ๋ฅผ ์จ ์ฃผ์‹œ๋ฉด ์ƒ์‚ฌ์—๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๋‚˜๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋•๊ณ  ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ณณ์— ์••๋ ฅ์„ ๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@pixelrebirth ๊ทธ๋…€๊ฐ€ ๊ดœ์ฐฎ

๊ธฐ๋ณธ ์š”์•ฝ์€ @dantraMSFT ๊ฐ€ sudo powershell -c "invoke-foo" ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ถ„๋ช…ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@dantraMSFT : ์กฐ์‚ฌ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์„œ๋กœ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒํƒœ๋ฅผ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹น์—ฐํ•ด ๋ณด์ผ์ง€ ๋ชจ๋ฅด์ง€๋งŒ sudo ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๋ฉด ์ €์ˆ˜์ค€ ์ฝ”๋”ฉ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋  ๋” ๊นŠ์€ ์ฝ”๋“œ ์ดํ•ด๊ฐ€ ์žˆ์—ˆ์œผ๋ฉดํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋…€๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ทธ๋…€๋Š” ์ˆ˜์ˆ  ์šฉ ์—‰๋ฉ์ด๋ฅผ ๋Š๋‚๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋น ๋ฅธ ์‘๋‹ต์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ’€๋ฉด ์—ฌ๊ธฐ์— ๊ฒŒ์‹œ ํ•  ์•ฝ๊ฐ„์˜ ํ•ดํ‚น ์ž‘์—…์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@pixelrebirth ์ฐธ๊ณ ๋กœ sudo๋Š” setuid ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://unix.stackexchange.com/a/80350/86669 ๋ฅผ ์ฐธ์กฐ

๊ธฐ๋ณธ Windows sudo๊ฐ€ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค (๋”ฐ๋ผ์„œ Powershell์„ ํ†ตํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์˜ต์…˜์ด ํ—ˆ์šฉ๋˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์— ์†ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ์ €๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ Powershell์„ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ์œ„์˜ Invoke-Elevated (๋˜๋Š” ๋งค์ผ ์‚ฌ์šฉํ•˜๋Š” ์ œ ์ž์‹ ์˜ ๊ฒƒ)๊ณผ ๊ฐ™์€ 99 ๊ฐœ์˜ sudo ์Šคํฌ๋ฆฝํŠธ ๋ณ€ํ˜•์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. Powershell์— ์ด์™€ ๊ฐ™์€ cmdlet์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์€ ํ•œ ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ์ง€๋งŒ Linux์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋น„ํ•ด ๋ชจ๋‘ ๋ฒˆ๊ฑฐ ๋กญ์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ ์„ฑ๊ฐ€์‹  ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” Windows์—์„œ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์€ Powershell / Windows์—์„œ ๊ตฌํ˜„๋˜๊ณ  ์‹ถ์€ ์ƒˆ ์…ธ ์ฐฝ (๋ฆฌ๋ˆ…์Šค๊ฐ€ ์•„๋‹˜)์„ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Windows์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ cmdlet ( "Invoke-Elevated")์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€๋งŒ high๋กœ ์‹คํ–‰ํ•  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ 'sudo'๋กœ PowerShell์„ ์—ด์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŠน๊ถŒ?

ํŠนํžˆ ์–ด์จŒ๋“  ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋†’์€ ๊ถŒํ•œ ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ์˜ˆ์•ฝ ๋  ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ํŠนํžˆ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.
:)

์ด๋Š” ์ผ๋ฐ˜์ ์ธ ์›Œํฌ ํ”Œ๋กœ์šฐ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ 'sudo'๊ฐ€ ์•„๋‹ˆ๋ผ ๊ทธ๊ณณ์—์„œ ์˜์›ํžˆ ์‚ด๋ฉฐ, ํŠน์ • ๋ช…๋ น์„ sudoํ•˜๊ณ  non-sudo ์„ธ๊ณ„์— ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Windows์—์„œ๋Š” ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฉฐ Powershell ์ž์ฒด๋Š” ์‹œ์ž‘ ์†๋„๊ฐ€ ๋งค์šฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค. ํŠนํžˆ ํ”„๋กœํ•„ ์š”์†Œ๊ฐ€ ๊ฑฐ์˜ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋งค์ผ ์„ธ์…˜์—์„œ ํŠน์ • ๋ช…๋ น์„ 20 ๋ฒˆ sudoํ•˜๊ณ  ๋‹ค๋ฅธ ๋ช…๋ น์€ ๊ถŒํ•œ์—†์ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด sudo์˜ ์š”์ ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•  ๋•Œ๋งŒ ํŠน๊ถŒ์„ ๋†’์ด๊ณ  ์ž์ฃผ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์›Œํฌ ํ”Œ๋กœ๋Š” ๋ช…๋ น ์‹คํ–‰, ๊ถŒํ•œ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ์œผ๋กœ ๋งˆ์ง€๋ง‰ ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” sudo -L ์ž…๋‹ˆ๋‹ค. posh๋Š” ์‹œ์ž‘ ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ์ž ์…ธ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ์‚ด์•„๊ฐ‘๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ข‹์€ ์ƒ๊ฐ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @majkinetor!
:)

sudo๋Š” UAC ํ”„๋กฌํ”„ํŠธ์˜ CLI ๋ณ€ํ˜•์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. Windows๋Š” ์ตœ๊ทผ๊นŒ์ง€ CLI ์นœํ™”์ ์ด์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์ง€๊ธˆ์€ ์ด๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์…ธ์—์„œ๋งŒ 100 % Windows ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ๋•Œ๊ฐ€ ์™”์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์…ธ๊ณผ ๋ธŒ๋ผ์šฐ์ € ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์€ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@majkinetor : ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์ƒ์Šน ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ UAC ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
FWIW : ShellExecuteEx๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ powershell ๋ณ€๊ฒฝ์—†์ด Windows์—์„œ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋ ค๋Š” ๊ฒฝ์šฐ; ๋งค์šฐ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์ƒ์Šน ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ UAC ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠน์ • ์•ฑ์€ UAC์—์„œ ์ œ์™ธ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ณ ์œ  ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณ ๋„๋ฅผ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค.

Windows์—์„œ Sudo์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜ / ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ / ๋น„ํŒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ฒŒ์‹œ๋ฌผ์„ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜์ง€ ์•Š๋‹ค๋ฉด ๋ฏธ๋ฆฌ ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

https://github.com/pldmgg/misc-powershell/tree/master/MyModules/Sudo

https://www.powershellgallery.com/packages/Sudo

Sudo ๋ชจ๋“ˆ์—๋Š” ์„ธ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • New-SudoSession
  • SudoSession ์ œ๊ฑฐ
  • Start-SudoSession

Start-SudoSession (๋ณ„์นญ "sudo")์€ ๊ถŒํ•œ์„ ๋†’์—ฌ์•ผํ•˜๋Š” ์ผํšŒ์„ฑ ๋ช…๋ น์„์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  UAC ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

.์˜ˆ

$ModuleToInstall = "PackageManagement"
$LatestVersion = $(Find-Module PackageManagement).Version
# PLEASE NOTE the use of single quotes in the below $InstallModuleExpression string
$InstallModuleExpression = 'Install-Module -Name $ModuleToInstall -RequiredVersion $LatestVersion'
Start-SudoSession -Credentials $MyCreds -Expression $InstallModuleExpression

์ƒ์Šน ๋œ ๋ช…๋ น์„ ์‚ฝ์ž… ํ•  ์ˆ˜์žˆ๋Š” ElevatedPSSession์„ ์—ด๊ธฐ์œ„ํ•œ ๊ฒฝ์šฐ New-SudoSession. ์•„์ด๋””์–ด๋Š” ์ƒ์Šน์ด ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ์ž‘์—…์ด ํฌํ•จ ๋œ ๋” ๊ธด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฒ˜์Œ์— ElevatedPSSession์„ ๋งŒ๋“ค๊ณ  UAC ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ•œ ๋ฒˆ๋ฐ›์€ ๋‹ค์Œ ํ•„์š”ํ•  ๋•Œ Invoke-Command๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์Šน ๋œ ๋ช…๋ น์„ ํ•ด๋‹น ElevatedPSSession์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

.์˜ˆ

PS C:\Users\zeroadmin> $MyElevatedSession = New-SudoSession -UserName zeroadmin -Credentials $MyCreds
PS C:\Users\zeroadmin> Get-PSSession
 Id Name            ComputerName    ComputerType    State         ConfigurationName     Availability
 -- ----            ------------    ------------    -----         -----------------     ------------
  1 ElevatedSess... localhost       RemoteMachine   Opened        Microsoft.PowerShell     Available

PS C:\Users\zeroadmin> Invoke-Command -Session $MyElevatedSession.ElevatedPSSession -Scriptblock {Install-Package Nuget.CommandLine -Source chocolatey}

๋งˆ์ง€๋ง‰์œผ๋กœ Remove-SudoSession์€ New-SudoSession ํ•จ์ˆ˜์— ์˜ํ•ด ์ƒ์„ฑ ๋œ ElevatedPSSession์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ์ด๊ฒƒ์„ ์Šคํฌ๋ฆฝํŠธ ๋์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด UAC ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์ฒด์ ์œผ๋กœ ํŠน์ • ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ƒ์Šน ๋œ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‘ ๊ฐœ์˜ UAC ํ”„๋กฌํ”„ํŠธ ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ElevatedPSSession์„ ์—ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋‹ซ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Remove-PSSession ์‚ฌ์šฉ๋ฒ• :

.์˜ˆ

$MyElevatedSession = New-SudoSession -UserName zeroadmin -Credentials $MyCreds
PS C:\Users\zeroadmin> Get-PSSession
 Id Name            ComputerName    ComputerType    State         ConfigurationName     Availability
 -- ----            ------------    ------------    -----         -----------------     ------------
  1 ElevatedSess... localhost       RemoteMachine   Opened        Microsoft.PowerShell     Available

Remove-SudoSession -Credentials $MyCreds -OriginalConfigInfo $MyElevatedSession.OriginalWSManAndRegistryStatus -SessionToRemove $MyElevatedSession.ElevatedPSSession

๋‚ด๋ถ€์ ์œผ๋กœ Non-Elevated PowerShell ์„ธ์…˜์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค (์„ธ์…˜์ด ์ด๋ฏธ ์ƒ์Šน ๋œ ๊ฒฝ์šฐ ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ).

  • WinRM / WSMan์ด ํ™œ์„ฑํ™”๋˜๊ณ  CredSSP ์ธ์ฆ์„ ํ—ˆ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค (๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ
    ๊ตฌ์„ฑ ๋ณ€๊ฒฝ)

  • ๋กœ์ปฌ ๊ทธ๋ฃน ์ •์ฑ… ๊ฐœ์ฒด ํ™•์ธ ...

    ์ปดํ“จํ„ฐ ๊ตฌ์„ฑ-> ๊ด€๋ฆฌ ํ…œํ”Œ๋ฆฟ-> ์‹œ์Šคํ…œ-> ์ž๊ฒฉ ์ฆ๋ช… ์œ„์ž„-> ์ƒˆ ์ž๊ฒฉ ์ฆ๋ช… ์œ„์ž„ ํ—ˆ์šฉ

    ... WSMAN / LocalHostFQDN์„ ํ†ตํ•œ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜๋„๋ก ํ™œ์„ฑํ™” ๋ฐ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • New-PSSession cmdlet์„ ์‚ฌ์šฉํ•˜์—ฌ Elevated PSSession์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • Elevated PSSession์˜ -Expression ๋งค๊ฐœ ๋ณ€์ˆ˜์— ์ „๋‹ฌ ๋œ ์‹์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • Elevated PSSession์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ (์žˆ๋Š” ๊ฒฝ์šฐ)์„ ๋กœ์ปฌ ๊ทธ๋ฃน ์ •์ฑ… ๋ฐ WSMAN / WinRM ๊ตฌ์„ฑ์œผ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : Remove-SudoSession ์˜ˆ์ œ ์˜คํƒ€๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@pldmgg ๊ท€ํ•˜์˜ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ๋ผ์ด์„ ์Šค์— ํ•ด๋‹นํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ท€ํ•˜๊ฐ€ ํ•œ ์ผ๋„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. LICENSE ํŒŒ์ผ์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? MIT๋Š” ๊ฐ€์žฅ ์นœ๊ทผํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ์—์„œ ํŒŒ์ƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

@pldmgg @ SteveL-MSFT๊ฐ€ ์–ธ๊ธ‰ ํ•œ ๋‚ด์šฉ์— ์ด์–ด์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„์™€์ฃผ๋Š” ํ›Œ๋ฅญํ•œ ๊ฐ€์ด๋“œ๋Š” https://choosealicense.com/์ž…๋‹ˆ๋‹ค.

tl; dr- ๋‹ค์Œ ๋ผ์ด์„ ์Šค๋Š” ์ž˜๋ชป๋˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

  • Apache 2.0
  • MIT

์ž์„ธํ•œ ๋‚ด์šฉ์€

Apache 2.0์€ MIT์— ๋น„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๊ฐ•์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ „๋ฐ˜์ ์œผ๋กœ ๋งค์šฐ ๊ด€๋Œ€ํ•˜๊ณ  ๋‹ค๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ ์Šค์™€ ํ•จ๊ป˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉ๋˜๋ฉฐ ๋งค์šฐ ๋น„์ฆˆ๋‹ˆ์Šค ์นœํ™”์ ์ž…๋‹ˆ๋‹ค. ์นดํ”ผ ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค (GPL)๋ฅผ ์„ ํƒํ•˜๋ฉด ๋‹ค๋ฅธ ๋„๊ตฌ๊ฐ€ GPL ๋ผ์ด์„ ์Šค๋กœ ์ด๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (๋ฐ”์ด๋Ÿฌ์Šค ๋ผ์ด์„ ์Šค๋ผ๊ณ ๋„ ํ•จ-์—ฌ๊ธฐ์„œ LGPL์€ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ LGPL ๋ผ์ด์„ ์Šค ๋ชจ๋“ˆ / ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ผ์ด์„ผ์Šค ๋ณ€๊ฒฝ์—†์ด ๋‹ค๋ฅธ ๋„๊ตฌ ์˜†์— ๋ฐฐ์น˜).

@pldmgg ๋„ ์•„์ฃผ, ์•„์ฃผ ๋ฉ‹์ ธ์š”!

@ferventcoder https://choosealicense.com์„ ์ฐธ์กฐ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ! ์—ฌ๋Ÿฌ๋ถ„๋“ค (+ @ SteveL-MSFT) ์•„๋งˆ ์˜์‹ฌ ํ•˜์…จ๊ฒ ์ง€๋งŒ, ์ €๋Š” ์–ด๋–ค ๋ผ์ด์„ ์Šค๋ฅผ ๊ณ ๋ฅผ ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Apache 2.0์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „์ฒด ๊ธฐํƒ€ powershell ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  Apache 2.0์„ ์ฐธ์กฐํ•˜๋„๋ก Sudo.psd1์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค (๋‚ด git repo ๋ฐ PowerShell Gallery์—์„œ). ์ด๊ฒƒ์ด ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ๋ชจ๋“  ์กฐ์–ธ / ๋น„ํŒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

@ SteveL-MSFT ๋ผ์ด์„ผ์Šค๊ฐ€ Apache 2.0 ์ธ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? MIT๊ฐ€๋˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์•Œ๋ ค ์ฃผ์‹œ๋ฉด ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@pldmgg ์†”๋ฃจ์…˜์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” CredSSP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ž๊ฒฉ ์ฆ๋ช… ์ฒ˜๋ฆฌ๋ฅผ์œ„ํ•œ ๋œ ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ด๋ฉฐ UAC ๊ฒฝ๊ณ„์— ๋งŽ์€ ์œ„ํ—˜์„ ๋…ธ์ถœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Powershell Magaize ์—์„œ ์ธ์šฉํ•˜๋ ค๋ฉด,

"CredSSP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์›Œํฌ ์Šคํ…Œ์ด์…˜์— ์ธ์ฆํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์™•๊ตญ์— ํ‚ค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค."

"์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์€ ์ปดํ“จํ„ฐ์— ๋†’์€ ์‹ ๋ขฐ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ž…๋ ฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค."

UAC์˜ ์š”์ ์€ ์ปดํ“จํ„ฐ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹ ๋ขฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ํ˜ผ๋ž€์„ ์ผ์œผํ‚ค๋Š” sudo ๋ช…๋ น์— ๋™์˜ํ•˜๋”๋ผ๋„ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‚ด ์ž๊ฒฉ ์ฆ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. sudo ๋ช…๋ น์ด ์ด์ œ ๋‚ด ๋„๋ฉ”์ธ ์ž๊ฒฉ ์ฆ๋ช…์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋‚ด ๋„คํŠธ์›Œํฌ๋ฅผ ์†์ƒ์‹œํ‚ค๋Š” ๋ฐ ํ›จ์”ฌ ๋” ๋งŽ์€ ํ”ผํ•ด๋ฅผ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜์ด CredSSP์—†์ด ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด CredSSP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋ ค๊ณ ํ–ˆ๋˜ ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ์ •๋ณด๋Š” PowerShell ํŒ€์ด๋ณด๋‹ค ์•ˆ์ „ํ•œ ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ๋ฐ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@pldmgg Apache 2.0์ด๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

@ dragonwolf83 ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ๊ด€์‹ฌ์‚ฌ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‹ค์ œ๋กœ์ด ์Šค๋ ˆ๋“œ์˜ ํŠน์ • ์ƒํ™ฉ์—์„œ ๊ดœ์ฐฎ๋‹ค๋Š” ๋‚ด ๋ชจ๋“  ์ฃผ์žฅ์„ ๋‚ด๋†“์•˜์Šต๋‹ˆ๋‹ค.

https://www.reddit.com/r/PowerShell/comments/6c778m/startsudosession_sudo_for_powershell_written_in/dhsretm/

๊ทธ๋Ÿฌ๋‚˜ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ์—ฌ๊ธฐ์—์„œ ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ (์›๊ฒฉ ์•„๋‹˜)์— ์—ฐ๊ฒฐ ์ค‘์ž…๋‹ˆ๋‹ค.

  • Windows 8.1 / Server 2012R2๋ถ€ํ„ฐ CredSSP๋Š” ๋” ์ด์ƒ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์•”ํ˜ธ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ ํ”„๋กœํ† ์ฝœ์€ CredSSP์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•ด์‹œ ํŒจ์Šค ๊ณต๊ฒฉ์— ์—ฌ์ „ํžˆ ์ทจ์•ฝํ•˜๋ฏ€๋กœ CredSSP์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜๋Š” ๊ฒฝ์šฐ RDP์— ๋Œ€ํ•ด์„œ๋„ ๊ฑฑ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. (๋ฌผ๋ก  RDP Restricted Admin ๋ชจ๋“œ ๋˜๋Š” ์ƒˆ๋กœ์šด "Credential Guard"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.)

์ถ”์‹  :์ด ๊ธฐ์‚ฌ๋Š” PowerShell ๋ณด์•ˆ์— ๋Œ€ํ•œ ์ฐธ์กฐ ์ž๋ฃŒ๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  Credential Guard์— ๋Œ€ํ•ด ๋ฐฐ์› ๋˜ ๊ณณ์ž…๋‹ˆ๋‹ค). ์ ๊ทน ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

https://blogs.msdn.microsoft.com/daviddasneves/2017/05/25/powershell-security-at-enterprise-customers

6.0.0์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋๋‚  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Linux์—๋งŒ ์กด์žฌํ•˜๋Š” sudo๋ผ๋Š” ์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ (Windows ์ƒ์Šน ์ง€์›์„ ์—ฐ๊ธฐํ•ฉ๋‹ˆ๋‹ค). ์ธ์ˆ˜๊ฐ€ cmdlet / scriptblock์ด๋ฉด ํ•ด๋‹น ์ธ์ˆ˜๋กœ powershell์„ sudoํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ๋กœ์„œ๋Š” ํŒŒ์ดํ”„ ๋ผ์ด๋‹ ๊ฐœ์ฒด๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ธ์ˆ˜๊ฐ€ ๊ธฐ๋ณธ ๋ช…๋ น์ด๋ฉด sudo์— ์ง์ ‘ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

6.0.0 ์ดํ›„, ์šฐ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝํ—˜์„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

Get-Item foo.txt | sudo Remove-Item

Windows์™€ Linux ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. cc @joeyaiello

@ PowerShell / powershell-committee ํ† ๋ก ์— ๋”ฐ๋ฅด๋ฉด 6.0.0์—๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ Invoke-AsUser ์œ ํ˜• cmdlet์— ํˆฌ์žํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๊ณ ๋„๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด UNIX์—์„œ setuid ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋ฉฐ ๊ทธ ์ž์ฒด๊ฐ€ sudo์ž…๋‹ˆ๋‹ค. sudo๋Š” ์‰ฝ๊ฒŒ ์—๋ฎฌ๋ ˆ์ด์…˜ ํ•  ์ˆ˜์—†๊ณ  ๋ณด์•ˆ์„ ์œ„ํ•ด ์—๋ฎฌ๋ ˆ์ด์…˜ํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ํŠน์ˆ˜ ๋ฐ”์ด๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” powershell์˜ ์ž„์‹œ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์‹ค์ œ sudo๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋˜ํ•œ ์ „์ฒด ์…ธ์„ sudoํ•˜๋Š” ๊ฒƒ์€ ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ์—ด๋ฆฐ ์…ธ์„ ์žŠ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•  ๋•Œ ๋‹ค์†Œ ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. sudo๋Š” ์žฅ๊ธฐ์ ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•˜๋Š” ๋ช‡ ๋ถ„ ํ›„์— ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์Šนํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Linux ์„œ๋ฒ„์˜ ํ”„๋กœ๋•์…˜์—์„œ powershell์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํ™ฉ์— ๋”ฐ๋ผ powershell์€ ๋ณด์•ˆ์ด ์ƒ์‚ฐ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€์—…์œผ๋กœ ๋‚จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@borgdylan ์˜ค๋Š˜์€ PowerShell Core ๋‚ด์—์„œ sudo pwsh -c foo (๋˜๋Š” sudo nativecmd )๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด PowerShell Core ์„ธ์…˜ ๋‚ด์—์„œ cmdlet์„ sudo ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด ์š•๋ง์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ sudo ๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค๋ ค๊ณ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋„๋ก ์•ฝ๊ฐ„์˜ ๊ตฌ๋ฌธ ์  ์„คํƒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

# 1527๊ณผ์ด ๋ฌธ์ œ๊ฐ€ ์ด์ •ํ‘œ๋กœ ๋ฐ€๋ ค๋‚˜ ๊ฐ€๋ฉด์„œ ์ €๋Š” ๊ถ๊ธˆํ•ดํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฃจํŠธ ์„ธ์…˜์— ๋กœ๊ทธ์ธํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ํŽธํ•œ๊ฐ€์š”? PS๊ฐ€ ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ๊ด€๋ จ๋˜์–ด์žˆ์„ ๋•Œ PowerShell ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜๋Š” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

@MathiasMagnus ๋‚˜๋Š” ์ด๊ฒƒ์„ ์ฒ ์ €ํžˆ ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ sudo์—์„œ ์•”ํ˜ธ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋„๋ก ๊ณตํ†ต ๋˜๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์„ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด visudo๋กœ ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

mark ALL=(ALL:ALL) NOPASSWD: /usr/bin/pwsh

๊ทธ๋Ÿฐ ๋‹ค์Œ PowerShell SSH ์›๊ฒฉ ์„ธ์…˜์„ ํ†ตํ•ด sudo pwsh -c 'cat /etc/sudoers' ๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ sudoers์—์„œ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๊ตฌ์„ฑํ–ˆ๋Š”์ง€์— ๋”ฐ๋ผ (์˜ˆ : All=(ALL:ALL) ๋Š” ์•ฝ๊ฐ„ ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค ...) ์ด๊ฒƒ์€ ์•ˆ์ „ํ•˜๊ฑฐ๋‚˜ ์œ„ํ—˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Linux๋กœ sshํ•˜๋Š” ๊ฒฝ์šฐ (์ฆ‰, PowerShell SSH ์›๊ฒฉ ๋Œ€์‹  bash ์‰˜๋กœ) ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜์žˆ๋Š” ํ•œ pwsh ๋‚ด์—์„œ ์ผ๋ฐ˜ ์•”ํ˜ธ ํ”„๋กฌํ”„ํŠธ๋กœ sudo๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ˜„์žฌ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ์•ฝ๊ฐ„์˜ ์ˆ˜ํ•˜๋ฌผ์ด ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

@MathiasMagnus # 1527์€ ์ข‹์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ 6.1.0์„ ๋Œ€์ƒ์œผ๋กœํ•ฉ๋‹ˆ๋‹ค. cmdlet์˜ ๊ฒฝ์šฐ ์ฃผ๋œ ๋ฌธ์ œ๋Š” sudo'd cmdlet๊ณผ์˜ ํŒŒ์ดํ”„ ๋ผ์ด๋‹์˜ ๋ณต์žก์„ฑ์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ ์ž‘์—…์˜ ๊ฒฝ์šฐ sudo pwsh -c ๊ฐ€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ PR์„ ์ œ์ถœํ•˜๋ฉด ๊ธฐ๊บผ์ด ๋ฐ›์•„ ๋“ค์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Windows์—์„œ ์ด๊ฒƒ์€ ์ด์ œ ssh ์—ฐ๊ฒฐ์„ ๋†’์ด ์ง€ ์•Š์œผ๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐ

์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ์กฐ์น˜๋ฅผ ์ทจํ•˜์ง€ ์•Š๋Š” ์ผ์— ๋Œ€ํ•ด ์‰ฝ๊ฒŒ ์•Œ์•„ ์ฐจ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด ์ „๋ฌธ ์ง€์‹์€ ๋‹ค๋ฅธ ๊ณณ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ฃผ๋กœ C ++ ๋ฐ GPGPU ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ Vcpkg์— ๋งŽ์€ CMake ํฌํŒ…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” C #์„ ์ž‘์„ฑํ•œ ์ ์ด์—†๊ณ  ๊ทธ๋Ÿด ๋Šฅ๋ ฅ์ด ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ~ 12 ๋Œ€์˜ ์ž‘์€ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ์†์œผ๋กœ ๊ด€๋ฆฌ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ๊ณ„์— ์žˆ์ง€๋งŒ sudo ๊ธฐ๋Šฅ์ด ์‹ฌ๊ฐํ•˜๊ฒŒ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์šฐ๋ถ„ํˆฌ์—์„œ ๋ฃจํŠธ ์‚ฌ์šฉ์ž๋ฅผ์œ„ํ•œ ๋กœ๊ทธ์ธ์„ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ ๋ˆˆ์‚ด์„ ์ฐŒํ‘ธ๋ฆฌ๋Š” ์ผ์ž…๋‹ˆ๋‹ค. DSC Core๊ฐ€ ํ•ด๊ฒฐ์ฑ…์ด ๋  ๊ฒƒ์ด์ง€๋งŒ, 1 ๋…„ ์ „์— ๋ฐœํ‘œ๋˜์—ˆ์ง€๋งŒ ์ตœ๊ทผ ๋ฌด๊ธฐํ•œ ์—ฐ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ Linux์˜ PowerShell Core๋Š” ์ž๋™ํ™” ๋œ ์ž‘์—… ๋ฐฉ์‹๊ณผ Linux ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์นœ์ˆ™ํ•œ ์ž„์‹œ ์Šคํƒ€์ผ ์‚ฌ์ด์— ๊ฐ‡ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€์ด ๋ฌธ์ œ์— ์ฐธ์„ํ•  ์‹œ๊ฐ„์„ ๊ฐ–๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@MathiasMagnus ์ด๊ฒƒ์€ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์›ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ๋ช…๋ น์— ๋Œ€ํ•ด sudo ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ cmdlet์— ๋Œ€ํ•ด sudo ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ pwsh ๋‚ด์—์„œ pwsh๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

sudo pwsh -c ํ•ญ๋ชฉ ์ œ๊ฑฐ

์ฃผ์š” ๋ฌธ์ œ๋Š” ํŒŒ์ดํ”„ ๋ผ์ธ ๋‚ด์—์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

get-item foo * | sudo ํ•ญ๋ชฉ ์ œ๊ฑฐ

@ SteveL-MSFT ์ ์–ด๋„ ๊ฐœ๋…์€ ๊ทธ๋ ‡๊ฒŒ ๋ณต์žกํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์ƒ๊ฐ์„ ๋ง ํ•ด์ฃผ์„ธ์š”.

๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด sudo, su ๋ฐ ๋กœ๊ทธ์ธ ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์กฐํ•ฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  • ์ฝœ๋ฐฑ์— ๋Œ€ํ•œ ์œ ๋‹‰์Šค ์†Œ์ผ“์„ ๋งŒ๋“ค๊ณ  ๋Œ€์ƒ ์‚ฌ์šฉ์ž ๋งŒ ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜ธ์ถœ์ž์—๊ฒŒ sudo ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค ( su , sudo ๋ฐ login ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํžˆ ๋ณต์‚ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค)

    • / etc / sudoers๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.



      • ํŠน์ • ๋ช…๋ น ๋งŒ


      • ๋Œ€์ƒ ์‚ฌ์šฉ์ž ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ


      • ์ž๊ฒฉ ์ฆ๋ช…์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  (์•”ํ˜ธ ์—†์Œ)



    • ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ pem์„ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ root ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ง์ ‘ "์•Œ๊ณ  ์žˆ๋Š”์ง€"ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    • ๋Œ€์ƒ ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…๋„ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ ์•ก์„ธ์Šค๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ  powershell์—์„œ ์˜ˆ์™ธ๋ฅผ throwํ•ฉ๋‹ˆ๋‹ค.

  • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ํ†ต๊ณผ๋˜๋ฉด ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ๋ฅผ ๋ฃจํŠธ ๋˜๋Š” ๋Œ€์ƒ ์‚ฌ์šฉ์ž๋กœ ์ „ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ๋ฅผ ์ „ํ™˜ํ•˜๋ฉด ์ƒˆ ํ”„๋กœ์„ธ์Šค๋Š” ์œ ๋‹‰์Šค ์†Œ์ผ“์— ์—ฐ๊ฒฐํ•˜์—ฌ ์‹คํ–‰์ค‘์ธ ์›๋ž˜ powershell๋กœ ๋‹ค์‹œ ํ†ต์‹ ์„ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ "exit"๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์œ ๋‹‰์Šค ์†Œ์ผ“์„ ํ†ตํ•ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๊ณ  ์ข…๋ฃŒํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ์ž๋™์œผ๋กœ ํ˜ธ์ถœ์ž ๊ถŒํ•œ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜ธ์ŠคํŠธ ํŒŒ์›Œ ์‰˜ ๋งŒ ์žˆ์œผ๋ฉด ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ต์ˆ˜.
  • ๋Œ€์‹  ํ˜ธ์ŠคํŠธ powershell์ด โ€‹โ€‹์ข…๋ฃŒ๋˜๋ฉด unix ์†Œ์ผ“์ด ๋‹ซํžˆ๊ณ  ์ƒ์Šน ๋œ powershell์ด โ€‹โ€‹ํ„ฐ๋ฏธ๋„์„ ๋‹ซ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‹คํ–‰์„ ์ค‘์ง€ํ•˜๊ณ  ์ข…๋ฃŒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
PWSH (์†Œ์ผ“ /proc/self/change-user.socket ์ƒ์„ฑ) => PWSH-SU (์†Œ์ผ“ ๋ฐ ๋Œ€์ƒ ์‚ฌ์šฉ์ž๋ฅผ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ํ˜ธ์ถœ, PWSH-SU๋Š” ๋ฃจํŠธ ์ž์ฒด๋กœ ์‹คํ–‰๋˜๋„๋ก suid ์„ค์ •) => ๋Œ€์ƒ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฐ๊ฒฐํ•  ๋•Œ PWSH ์œ ๋‹‰์Šค ์†Œ์ผ“์—.

๊ฐ€์žฅ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ๋ถ€๋ถ„์€ powershell์ด โ€‹โ€‹์œ ๋‹‰์Šค ์†Œ์ผ“์„ ํ†ตํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์œ ๋‹‰์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ๋งํฌ๋ฅผ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ ๋ฌธ์ž์—ด๋ฟ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์„ธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ์‚ฌ ๊ธฐ๋Šฅ ์„ ์žƒ์ง€ ์•Š๊ณ  ๋ฃจํŠธ ์ปจํ…์ŠคํŠธ๋กœ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋ ค๋ฉด sudo ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
su ๋Š” ๋Œ€์ƒ ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
login ์€ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ powershell์—๋„ ํฌํ•จํ•˜๋ฉด ํ•˜๋‚˜๋งŒ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋งŽ์€ ๊ฒฝ์šฐ์— ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ ๋†€๋ž๊ณ  ํŽธ๋ฆฌํ•œ ๋ฐฉ์‹์œผ๋กœ Windows์—์„œ๋„์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  "sudo"์Šคํฌ๋ฆฝํŠธ + UAC ํด๋ฆญ์œผ๋กœ ๋‹ค๋ฅธ ์…ธ์„ ์–ป๋Š” ๊ฒƒ์ด ์‹ซ์ง€๋งŒ ์ด์™€ ๊ฐ™์€ ํŒŒ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ผํ•œ ์…ธ ๋‚ด์—์„œ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Linux์—์„œ์™€ ๊ฐ™์ด ์ด๋ฏธ ๊ด€๋ฆฌ์ž๋กœ ์‹คํ–‰์ค‘์ธ ๋‹ค๋ฅธ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ํŒŒ์ดํ”„๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๊ณ  ์‹ค์ œ sudo ํ•ญ๋ชฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ : ํ”„๋กฌํ”„ํŠธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • powershell ๋์  ๋Œ€์‹  ๋ช…๋ น์ด์žˆ๋Š” sudoers ํŒŒ์ผ).

์ด๊ฒƒ์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ๋ณด๋‹ˆ ์ •๋ง ๊ธฐ์˜์ง€๋งŒ ์‹ค์ œ ๊ตฌํ˜„์— ๊ด€ํ•ด์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์กฐ๊ธˆ ์•ž์„œ ๊ฐ€๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์‹œ์Šคํ…œ์ด ์ƒ์Šน๋˜์ง€ ์•Š์€ ํ”„๋กœ์„ธ์Šค์—์„œ ์ƒ์Šน ๋œ ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. UAC๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์‹œ์ž‘ํ•  PowerShell์˜ ์ƒ์Šน ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ cmdlet ๋ฌธ์ œ๋Š” โ€‹โ€‹์‹ค์ œ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. IMO, ์—ฌ๊ธฐ์„œ ๋‹ค๋ฃจ์–ด์•ผ ํ•  ์ฒซ ๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š”-์ œํ•œ๋œ SSH ์„ธ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค-๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์ผ๋ฐ˜ exe๋ฅผ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์—์„œ ์‹คํ—˜์„ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ (ํ˜„์žฌ๋Š” ๋ฆฌํŒฉํ† ๋ง ์ค‘์ด์ง€๋งŒ ๊ฐœ๋…์€ ์ž‘๋™ํ•˜์ง€๋งŒ) ํƒ€์‚ฌ ์•ฑ์ด ์‹ค์ œ ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows๊ฐ€ ๋จผ์ € 'sudo'exe๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ runas ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๊ฒฉ ์ฆ๋ช… ํ”„๋กฌํ”„ํŠธ๊ฐ€์žˆ๋Š” ์Šน๊ฒฉ ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ„๋‹จ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์—†์ด๋Š” ๋ชจ๋‘ ์ด๋ก ์ ์ž…๋‹ˆ๋‹ค.

UAC๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์‹œ์ž‘ํ•  PowerShell์˜ ์ƒ์Šน ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฉด cmdlet ๋ฌธ์ œ๋ฅผ ์‹ค์ œ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ์œ„ํ•œ ํ•œ ๊ฐ€์ง€ ๊ฐ€๋Šฅ์„ฑ์€ '์ตœ๊ณ  ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰'์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์˜ˆ์•ฝ ๋œ ์ž‘์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ,ํ•˜์ง€๋งŒ ๋งŒ๋“ค๋ ค๋ฉด ์ด๋ฏธ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด psexec์ดํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ, ์ง€๊ธˆ ๋‹น์žฅ์€ UAC๋ฅผ ๊ฑฐ์ณ์•ผํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ ๋ณ€ํ™”๋ฅผ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  SSH ์„ธ์…˜์ด ์ƒ์Šนํ•จ์— ๋”ฐ๋ผ ๊ทธ๊ฒƒ์€ ์ผ์ข…์˜ ๋ณด์•ˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ ํ‚ค๊ฐ€ ์„ค์ •๋œ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ (๋˜๋Š” ๋ฃจํ”„๋ฐฑ ์‹œ๋‚˜๋ฆฌ์˜ค)์—์„œ์™€ ๊ฐ™์ด ์ผ๋ถ€ ์Šค์ผ€์น˜ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋‚ด Windows ์ปดํ“จํ„ฐ์— SSH๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์›ํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@parkovski ๋‚ด ์†”๋ฃจ์…˜์€ Linux / MacOS ๋ฐ ๊ธฐํƒ€ ๋ชจ๋“  * NIX OS ์ „์šฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. Windows๋Š” SUID ๋ฐ GUID๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
sudo๋Š” ํ˜„์žฌ Windows์—๋„ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค.

UAC ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Windows๋Š” ํ–ฅํ›„ SUID ๋ฐ GUID๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ์˜ค๋žœ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋”๋Ÿฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์˜ˆ,ํ•˜์ง€๋งŒ ๋งŒ๋“ค๋ ค๋ฉด ์ด๋ฏธ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋งž์ง€๋งŒ UAC ํŒ์—…์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

UAC๋Š” Microsoft์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ˜ธํ™˜์„ฑ ๋„๊ตฌ ํ‚คํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์‹์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๊ฑด๋„ˆ ๋›ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows๋Š” SUID ๋ฐ GUID๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Windows๋Š”์ด๋ฅผ ์ง€์›ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ํ•ด๋‹น OS์—์„œ ๊ฐœ๋…์ด ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ถŒํ•œ ๋ชจ๋ธ์€ ACL์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋ฉฐ ๋‹จ์ผ ๊ทธ๋ฃน ์†Œ์œ ๊ถŒ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Windows์—์„œ ์ „์ฒด sudo ๋ณต์ œ๋ณธ ์ผ ํ•„์š”๋Š” ์—†์œผ๋ฉฐ ๊ด€๋ฆฌ์ž ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜๋Š” ๋” ์นœ์ˆ™ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Windows ์‚ฌ์šฉ์ž๋Š” ์•„๋งˆ๋„ ์˜ค๋Š˜ ์ƒ์Šน ๋œ PowerShell ์„ธ์…˜์„ ์—ฌ๋Š” ๋ฐ ์ต์ˆ™ํ•œ ๋ฐ˜๋ฉด Linux ์‚ฌ์šฉ์ž๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ sudo๋กœ ์‹คํ–‰๋˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋ฏ€๋กœ Windows ์ง€์›์„ ์—ฐ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋””์ž์ธ์ด ํ–ฅํ›„ Windows ์ง€์›์„ ๋ฐฐ์ œํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜๊ณ ์žํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ์ž„์˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๊ฒƒ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋ฃจํŠธ์— ๋Œ€ํ•ด ๋‹จ์ˆœํžˆ sudo๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์ด๊ฒƒ์ด ์‚ฌ์šฉ๋Ÿ‰์˜ 90 % ์ด์ƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@ SteveL-MSFT

๋˜ํ•œ ์ž„์˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ ๋ฃจํŠธ์— ๋Œ€ํ•ด ๋‹จ์ˆœํžˆ sudo๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถœ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ๋ฅผ ๋ฃจํŠธ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์œ„์—์„œ ์„ค๋ช…ํ•œ ์ถ”์ƒ์— ๋Œ€ํ•œ ์™„์ „ํ•œ su / sudo ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Windows ์‚ฌ์šฉ์ž๋Š” ์˜ค๋Š˜ ์ƒ์Šน ๋œ PowerShell ์„ธ์…˜์„ ์—ฌ๋Š” ๋ฐ ์ต์ˆ™ ํ•  ๊ฒƒ์ด๋ฏ€๋กœ Windows ์ง€์›์„ ์—ฐ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ•จ๊ป˜ ์ผํ–ˆ๋˜ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ UAC๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ์ด๊ฒƒ์€ ๋งŽ์€ ํ™˜๊ฒฝ์—์„œ ์‹ค์ œ๋กœ ์˜ต์…˜์ด ์•„๋‹ˆ๋ฉฐ MS๊ฐ€ UAC๋ฅผ ์™„์ „ํžˆ ๋ฒ„๋ฆฌ๊ณ  ๋ฒ„๋ฆด ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๐Ÿ˜•

์ด ๋ฌธ์ œ๋Š” UAC์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ๊ด€์ ์—์„œ๋Š” ์™„์ „ํžˆ ๋ฒ„๋ ค์•ผํ•˜๋ฉฐ ์—„๊ฒฉํ•œ ๋‘ ๊ณ„์ •์œผ๋กœ ๊ต์ฒดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. * NIX์™€ ๋™์ผํ•œ ๊ฐœ๋…์œผ๋กœ ์‚ฌ์šฉ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  sudo ๋ฐ SUID / SGID-Flags๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ์Šน๊ฒฉํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ์— $profile ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. https://stackoverflow.com/a/56265080/118098 ์—์„œ ๋” ์ž์„ธํžˆ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค.

function Invoke-MySudo { & /usr/bin/env sudo pwsh -command "& $args" }
set-alias sudo invoke-mysudo

์ ์–ด๋„ ๊ทธ๊ฒƒ์˜ ์–ผ๊ตด์— ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜๊ณ  "sudo". https://github.com/PowerShell/PowerShell/issues/3232#issuecomment -354853084์— ๋”ฐ๋ผ" ๊ธฐ์กด PowerShell Core ์„ธ์…˜ ๋‚ด์—์„œ cmdlet์„ sudo ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค "์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ˜ธ์ถœ ๋ช…๋ น์˜ ์ „์ฒด ์„ธ์…˜์— ์ƒ์Šน ๋œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์…ธ์—์„œ sudo ์—ฌ์ „ํžˆ ์ƒˆ ์ปจํ…์ŠคํŠธ์—์„œ ์ œ๊ณต๋œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Windows์—์„œ ๊ด€๋ฆฌ์ž๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ธฐ๋ณธ sudo๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. "RunAs"๊ฐ€ ํ•ด๋‹น ํ”Œ๋žซํผ์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ƒ์Šนํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด linux / mac์—์„œ๋„ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋กœํ•„ ์ˆ˜์ •:

PS > notepad $PROFILE

๋‹ค์Œ sudo ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

function sudo {
    Start-Process -Verb RunAs -FilePath "pwsh" -ArgumentList (@("-NoExit", "-Command") + $args)
}

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‰˜์—์„œ ํ˜ธ์ถœํ•˜์‹ญ์‹œ์˜ค. cmdlet, ์‹คํ–‰ ํŒŒ์ผ, ์ผ๋ฐ˜์ ์œผ๋กœ PS ํ”„๋กฌํ”„ํŠธ์— ์ž…๋ ฅ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

PS > sudo Remove-Item .\test.txt  # Remove a file
PS > sudo Copy-Item .\test.txt C:\  # Copy a file
PS > sudo net start w3svc  # Start IIS

๋ฏธ๋ฆฌ ํ‰๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๋Ÿฐํƒ€์ž„์— ํ‰๊ฐ€ํ•  ๋ณ€์ˆ˜ ๋˜๋Š” ์‹์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด :

PS > $myvar = "a"
PS > sudo echo $myvar  # $myvar is pre-evaluated, so the command reads: sudo echo "a"
PS > sudo { $PSVersionTable }  # with braces, $PSVersionTable is not evaluated until it is run as administrator

์™„๋ฃŒ์‹œ ๊ด€๋ฆฌ์ž ์ฐฝ์„ ๋‹ซ์œผ๋ ค๋ฉด sudo ํ•จ์ˆ˜์—์„œ "-NoExit" ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

@vsalvino ์ด๊ฒƒ์€ GUI๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์„ ๋•Œ ์œ ์šฉํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋ฉฐ ๊ทธ๋™์•ˆ ์œ ์šฉํ•˜์ง€๋งŒ GUI ์•ก์„ธ์Šค ์—†์ด๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ์‹ค์ œ sudo๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์›๊ฒฉ ์…ธ (ssh)์—์„œ ๋ง ๊ทธ๋Œ€๋กœ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ• ์€ ์—ฌ๊ธฐ์—์„œ ๋ณด์—ฌ ์ฃผ๋ ค๊ณ  ์‹œ๋„ํ•œ ์„œ๋น„์Šค์™€ ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์ œ์•ˆ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๊ฐ€๋Šฅ์„ฑ์„ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

  • UAC๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐœ์ธ์  ์„ ํƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜์žˆ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์•„๋‹™๋‹ˆ๋‹ค.
  • UAC (๋‚ด๊ฐ€ ๋ณธ ๋ชจ๋“  "sudo"์Šคํฌ๋ฆฝํŠธ)๋ฅผ ํŒ์—…ํ•˜๋Š” ๊ฒƒ์€ ํ•œ ๋ฒˆ๋งŒ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ƒ์Šน ๋œ ์›๊ฒฉ ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค.
  • GUI๋ฅผ ํ•„์š”๋กœํ•˜๋Š” ๊ฒƒ์€ _ ์ „ํ˜€ _ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ssh๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  GUI๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๊ฐ€์ • ํ•ด ๋ด…์‹œ๋‹ค.
  • Windows์— ๋Œ€ํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” UAC๊ฐ€ ๋” ๋‚˜์€ ๊ฒƒ์œผ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Microsoft์˜ ์„œ๋ช… ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ์กฐ์ฐจ๋„ UAC๊ฐ€ high๋กœ ์„ค์ •๋˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค (wsudo readme์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค).
  • Windows์—์„œ sudo์— ๋Œ€ํ•œ ์œ ์ผํ•œ ์‹ค์ œ ์†”๋ฃจ์…˜์€ ์„ฑ๊ณต์ ์ธ ์ธ์ฆ์‹œ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์•„์ด๋””์–ด๋ฅผ ๋“ฃ๊ณ  ์‹ถ์ง€๋งŒ ๋จผ์ € ์กฐ์‚ฌํ•ด์ฃผ์„ธ์š”.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ˆ„๊ตฐ๊ฐ€๋Š” ๋งŽ์€ ์ผ์„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋‹จ PowerShell์ด โ€‹โ€‹Unix์—์„œ ์ด๊ฒƒ์„ ์ง€์›ํ•˜๋ฉด Windows์—์„œ ๋Œ€์ฒดํ’ˆ์ด๋ฉฐ sudo๊ฐ€ ์ž‘๋™ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ ํ•œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (GUI ์—†์Œ, UAC ์—†์Œ).

๋จผ์ €์ด ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋ฅผ ๋ช…ํ™•ํžˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ์„œ๋กœ ๋‹ค๋ฅธ ์ฃผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?
a) Linux / mac ์‹œ์Šคํ…œ ์šฉ powershell ๋‚ด์—์„œ sudo๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
b) Windows์— sudo ๋ณต์ œ๋ณธ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๊นŒ?
c) psremoting์‹œ ๊ถŒํ•œ ์ƒ์Šน์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๊นŒ?
d) Windows์—์„œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
e) ๊ถŒํ•œ์—†๋Š” ์‚ฌ์šฉ์ž ๊ณ„์ •์—์„œ ๊ถŒํ•œ์žˆ๋Š” ์‚ฌ์šฉ์ž ๊ณ„์ •์œผ๋กœ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
f) ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฒƒ?

a) https://github.com/PowerShell/PowerShell/issues/3232#issuecomment-444849067
b) a์™€ ๋™์ผํ•˜์ง€๋งŒ (์ฐฝ์—๋Š” ์œ ๋‹‰์Šค ์†Œ์ผ“๋„ ์žˆ์Œ) suid ๋ฐ”์ด๋„ˆ๋ฆฌ ๋Œ€์‹  ์„œ๋น„์Šค ( "์šด์˜ ์ฒด์ œ์˜ ์ผ๋ถ€๋กœ ์ž‘๋™"๊ถŒํ•œ์ด์žˆ๋Š” ์‚ฌ์šฉ์ž ๋‚ด์—์„œ ์‹คํ–‰, ์˜ˆ : ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ)์— ์˜ํ•ด ์ƒ์„ฑ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์„œ๋น„์Šค๋Š” ๊ถŒํ•œ๋„ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Windows์—์„œ SUID / GUID ๊ฐœ๋…์„ ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค.
c) ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์›๊ฒฉ ์ž‘์—…์‹œ ์ด๋ฏธ ๊ฐ€์žฅ ๋†’์€ ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์— ์•ก์„ธ์Šค ํ•  ๋•Œ ๊ถŒํ•œ์ด ๋ถ„๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ผ๋ถ€ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ ๋ฃจํ”„๋ฐฑ UAC ์šฐํšŒ๋„ ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค).
d) ๋˜ํ•œ a / b์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ชจ๋ฅด๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด windows / activedirectory ์ธ์ฆ ๋ฐฑ์—”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
e) b์™€ ๋™์ผํ•˜์ง€๋งŒ ์ž๊ฒฉ ์ฆ๋ช… ๊ฒ€์‚ฌ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ์•„๋Š” ์‚ฌ๋žŒ์ด ์ƒˆ ์‚ฌ์šฉ์ž ํ† ํฐ์„ ์–ป๊ณ  ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์† ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋„๋ก runas api๋ฅผ ํ’€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (UAC ๋ณด์•ˆ ๊ฐœ๋… ๋ฐ ๊ณ ๋ ค ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ b๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค.)

IMO์ด ๋ฌธ์ œ๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š” PowerShell์—์„œ sudo๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Windows ์šฉ sudo์— ๋Œ€ํ•œ ๋…ผ์˜ ๋Š”์ด ํ„ฐ๋ฏธ๋„ ๋ฌธ์ œ์—์„œ ๋” ์ ์ ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Windows ์šฉ sudo์— ๋Œ€ํ•œ ๋…ผ์˜๋Š”์ด ํ„ฐ๋ฏธ๋„ ๋ฌธ์ œ์—์„œ ๋” ์ ์ ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CLI ์„ธ๊ณ„์— ๋Œ€ํ•œ ์œ ์ผํ•œ ๋˜ ๋‹ค๋ฅธ ํ”„๋ก ํŠธ ์—”๋“œ๋ผ๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ํ„ฐ๋ฏธ๋„ ์•ฑ์ด sudo๋ฅผ ๋…ผ์˜ํ•˜๊ธฐ์— ๋” ์ข‹์€ ์žฅ์†Œ ์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋™์ผํ•œ ๋…ผ๋ฆฌ๋กœ ConEmu ์ €์žฅ์†Œ์— ํ‹ฐ์ผ“์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IMO์ด ๋ฌธ์ œ๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š” PowerShell์—์„œ sudo๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ Powershell์˜ ์š”์  ์ค‘ ํ•˜๋‚˜๋Š”์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ์ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์‹œ์Šคํ…œ X์—์„œ๋งŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ IMO๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” CLI ์‚ฌ์šฉ์ž๋กœ์„œ sudo ๊ฐ€ suders ํŒŒ์ผ ๋˜๋Š” ์ผ๋ถ€ ์ฐฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํžˆ ๋‚ ์•„๊ฐ„ Linux sudo๋ผ๋ฉด ๋œ ์‹ ๊ฒฝ ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Sudo๋Š” OS์˜ ๊ณ ๋„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” '๋ฐฑ์—”๋“œ'์— ๊ด€๊ณ„์—†์ด ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด @parkovski ๊ฐ€ GUI ์Šคํƒ ๋“œ์— ๋Œ€ํ•ด ์ง€์ ํ•ฉ๋‹ˆ๋‹ค. ์ด์œ  ์ค‘ Windows Core๋ฅผ ์ถ”๊ฐ€ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CLI ์„ธ๊ณ„์— ๋Œ€ํ•œ ์œ ์ผํ•œ ๋˜ ๋‹ค๋ฅธ ํ”„๋ก ํŠธ ์—”๋“œ๋ผ๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ํ„ฐ๋ฏธ๋„ ์•ฑ์ด sudo๋ฅผ ๋…ผ์˜ํ•˜๊ธฐ์— ๋” ์ข‹์€ ์žฅ์†Œ ์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋™์ผํ•œ ๋…ผ๋ฆฌ๋กœ ConEmu ์ €์žฅ์†Œ์— ํ‹ฐ์ผ“์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ €์žฅ์†Œ๋Š” ๋‹จ์ง€ "ํ„ฐ๋ฏธ๋„ ์•ฑ"์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŒ€์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Windows์˜ ํ…์ŠคํŠธ ๋ชจ๋“œ ๋ถ€๋ถ„์„ ์†Œ์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์‹œ๊ฐ„์ด์žˆ์„ ๋•Œ sudo๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๊ณ  ์ด๋ฏธ ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— PowerShell ํŒ€์ด๋‚˜ ConEmu์˜ ๋ˆ„๊ตฌ๋„ ์ œ์•ˆํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Windows sudo๊ฐ€ ์—ฌ๊ธฐ์„œ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฌ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์œ ๋Š” ์ œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ƒ๋‹นํžˆ ๋งŽ์€ ์ž‘์—…์ด๋ฉฐ PowerShell ์ž์ฒด์™€ ์ง๊ตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ด๋ฏธ ํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. PowerShell์€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ํŠน์ • ์…ธ์—์„œ ๋…๋ฆฝ์  ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— PowerShell์€ ํ”Œ๋žซํผ์ด๋‚˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๊ด€๊ณ„์—†์ด sudo ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํ†ตํ•ด cmdlet์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์™„์ „ํžˆ ์—ฌ๊ธฐ์— ์†ํ•˜๋Š” PowerShell์˜ ์ผ๋ถ€ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” CLI ์‚ฌ์šฉ์ž๋กœ์„œ sudo๊ฐ€ suders ํŒŒ์ผ ๋˜๋Š” ์ผ๋ถ€ ์ฐฝ์„ ์‚ฌ์šฉํ•˜์—ฌ Linux sudo๋ฅผ ์™„์ „ํžˆ ๋ง๊ฐ€ ๋œจ๋ฆฌ๋ฉด ์‹ ๊ฒฝ ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Sudo๋Š” OS์˜ ๊ณ ๋„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” '๋ฐฑ์—”๋“œ'์— ๊ด€๊ณ„์—†์ด ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ์ ˆ๋Œ€์ ์œผ๋กœ ๊ทธ๋ž˜์•ผํ•ฉ๋‹ˆ๋‹ค. sudo๋Š” ์•„์ง Windows์— ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋ฉฐ ์•„๋งˆ๋„ PowerShell ํŒ€์—์„œ ์ž‘์„ฑํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค๋ฉด PowerShell์ด โ€‹โ€‹Windows์—์„œ๋„ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์–ด์จŒ๋“ ,์ด ๋ฌธ์ œ๋Š” ์˜จ๊ฐ– ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์‹์ ์ธ ๋‹ต๋ณ€์„ ์–ป์„ ๋•Œ๊นŒ์ง€ ์ถ”๊ฐ€ ์˜๊ฒฌ์„ ์—ฐ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
http://blog.lukesampson.com/sudo-for-windows
scoop install sudo ์™€ ํ•จ๊ป˜ ์„ค์น˜๋˜์–ด ๋‚ด๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค sudo์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค-์ƒ์Šน์œผ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด pip ๋˜๋Š” Install-Module๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Windows ์šฉ Sudo

@ Restia666Ashdoll Invoke-ElevatedCommand ๋กœ ์ด๋ฆ„์ด ๋ฐ”๋€Œ๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.
sudo๋Š” ๋ช…๋ น์„ ์ƒ์Šน์‹œํ‚ฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๋ฅผ ๊ฐ€์žฅํ•˜๊ณ  ( sudo -u nobody command ) ๊ถŒํ•œ์„ "์‚ญ์ œ"ํ•˜๋Š” ์—ญํ• ์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์ด๋ฆ„์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ๊ธฐ๋Šฅ๊ณผ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ์ด๋ฏธ ๋‚˜์œ ์ƒ๊ฐ์œผ๋กœ ํŒ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ด๋ฏธ ์œ„์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ์ง„์ •ํ•œ sudo์˜ ๋ชจ์–‘๊ณผ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

@ Restia666Ashdoll ์ด ์Šค๋ ˆ๋“œ ์—์„œ์ด ์˜๊ฒฌ ์„ ์ฝ์œผ์‹ญ์‹œ์˜ค.

@parkovski ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋ช‡ ๊ฐ€์ง€ ๋ช…๋ น์œผ๋กœ ๋งŒ ์ž‘๋™ํ•˜๋Š” -Verb RunAs์˜ ๋ž˜ํผ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์—ฐ๊ฒฐ ํ•œ ๊ฒƒ์€ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค- sudo pip install httpie .

๋‚ด ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ์ง€ ์•Š์•˜๋‚˜์š”?

"NOT A SUDO ON WINDOWS DISCUSSION"๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ํฌํ•จํ•˜๋„๋ก ์ œ๋ชฉ์„ ํŽธ์ง‘ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ์ด ์งˆ๋ฌธ์— ๊ณ„์† ๋Œ€๋‹ต ํ•  ์˜๋ฌด๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์€ ์กฐ์‚ฌ๋ฅผํ•˜์ง€ ์•Š๊ณ  ๋˜‘๊ฐ™์€ ๋ง์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.

์ด ์‚ฌ๋žŒ์˜ ๊ตฌ๋… ์ทจ์†Œ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ์•ˆํƒ€๊น๊ฒŒ๋„ ๊ทธ ์‚ฌ๋žŒ์œผ๋กœ ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š๊ณ ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ @troymoore ๋ฅผ GitHub์— ์‹ ๊ณ 

์—ฌ๊ธฐ์—์„œ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์€ ๋…ํŠนํ•˜๊ณ  ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ช…๋ช… ๋œ ํŒŒ์ดํ”„์™€ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์„ ์ƒ์Šน ๋œ ํ”„๋กœ์„ธ์Šค๋กœ ์ง๋ ฌํ™” ํ•œ ๋‹ค์Œ ์ง๋ ฌํ™” ๋œ ์ถœ๋ ฅ์„ ํ˜ธ์ถœ ํ”„๋กœ์„ธ์Šค๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

๋‹ค์Œ์€ ์ด๊ฒƒ์ด NT์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค : https://github.com/mmillar-bolis/Invoke-AsAdmin

๋ฌผ๋ก  ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋‹ค๋ฅธ ์ฝ˜์†”์„ ์—ด์ง€ ์•Š๊ณ ๋„ ๊ฐ„๋‹จํ•œ ์ž‘์—…๊ณผ ํŒŒ์ดํ”„ ๋ผ์ธ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‚˜๋Š” sudo์˜ ๋””์ž์ธ์„ ๋ณต์ œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์žฅ๊ธฐ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ sudo์™€ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋Š” ์•Š์ง€๋งŒ์ด ๋ชจํ˜ธํ•œ ์ƒ์Šน ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋” ๊ฑด์„ค์ ์ธ ๋…ผ์˜๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋‚˜๋Š” ๋˜ํ•œ ์–ธ๊ธ‰ํ•ด์•ผํ•œ๋‹ค,์ด UACless ์ƒ์Šน์— ๋Œ€ํ•œ @parkovski์˜ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

JEA์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
์ง๋ ฌํ™”์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ชจ๋“ˆ์ด์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

JEA์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋„ค, ๊ทธ๊ฒŒ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.

์ง๋ ฌํ™”์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ชจ๋“ˆ์ด์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ฝ”๋“œ์—์„œ ๋ณด์…จ ๊ฒ ์ง€๋งŒ ํŒŒ์ดํ”„์˜ ๋‹ค๋ฅธ ์ชฝ ๋์—์„œ ์ฝ”๋“œ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ํ…์ŠคํŠธ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ์™„ํ™”๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋Š๋ฆฌ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ•˜์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. JEA์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์–ธ๊ธ‰์€ ์—ฌ๊ธฐ์„œ๋„ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ์ผ๋ถ€๊ฐ€ ์ƒ์Šน ๋  ํ•„์š”๊ฐ€ ์—†๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“ˆ์€ NT์˜ GUI ์„ธ์…˜ ๋‚ด์—์„œ ๋Œ€ํ™”์‹ ๋ช…๋ น์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋งค์šฐ ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ผ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋„ค์ดํ‹ฐ๋ธŒ ssh๊ฐ€ NT๋ฅผ์œ„ํ•œ ๊ฒƒ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ์ƒํ•˜๊ธฐ ์ „์— 5 ๋…„ ์ „์— ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด NT๊ฐ€ ์ƒ์Šน์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ ๋ผ๋Š” ์ ์— ๋™์˜ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋น„์Šค๊ฐ€ ์œค๊ณฝ์ด์žˆ๋Š” ํ˜•ํƒœ์˜ ๋ช…๋ น ์ƒ์Šน์„ ์ˆ˜์‹ ํ•˜๊ณ  ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด sudo, pkexec ๋˜๋Š” doas์™€ ์œ ์‚ฌํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์‰ฝ๊ฒŒ ๋‹ฌ์„ฑํ•˜๊ธฐ๊ฐ€ ๋‹ค์†Œ ์–ด๋ ต๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ PowerShell์ด โ€‹โ€‹๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ช…๋ น ์ƒ์Šน์„ ์ง€์›ํ•˜๋ ค๋ฉด ๋จผ์ € sudo์™€ ๊ฐ™์€ ๊ตฌํ˜„์ด NT์— ์กด์žฌํ•ด์•ผํ•œ๋‹ค๋Š” ์—ด๋ฐ˜์˜ ์˜ค๋ฅ˜์— ์˜ํ•ด ์ค‘๋‹จ๋˜๋Š” ๋Œ€์‹  ์‰˜ ์„ธ์…˜ ๋‚ด์—์„œ ์–ด๋–ค ํ˜•ํƒœ์˜ JEA ๋Œ€ํ™” ํ˜• ์ƒ์Šน์„ ๋จผ์ € ์ถ”์ง„ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ์ ์–ด๋„ NT ์„ธ๊ณ„์—์„œ ํ–ฅ์ƒ๋œ ๋ณด์•ˆ ๊ด€ํ–‰์„ ์ด‰์ง„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€ํ™” ํ˜•์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” cmdlet๊ณผ ๋ณ„๋„์˜ ์ฝ˜์†” ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๋Š” cmdlet์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋˜๋Š” ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋‹ค๋ฅธ๋ณด๋‹ค ์ŠคํŒŒ๋ฅดํƒ€์ ์ธ cmdlet ์ง‘ํ•ฉ๊ณผ ํ•จ๊ป˜ ์ƒ์Šน ๋œ ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๋Š” ํ˜„์žฌ ๋ฐฉ๋ฒ•์„ ํ™๋ณดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์–ด๋„ ํ•œ ๊ฑธ์Œ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ‘๋‹ˆ๋‹ค.

๋˜ํ•œ Python elevate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์กฐ์ฐจ๋„์ด ๋ชจ๋“ˆ์ดํ•˜๋Š” ์ผ์„ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ง๋ถ™์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ? ๋‚ด ์š”์ ์€ ์•„๋งˆ๋„ ๋‚ด ๊ฒƒ๋ณด๋‹ค ๋” ๋˜‘๋˜‘ํ•œ ์‚ฌ๋žŒ์ด์ด ๋ชจ๋“ˆ์„ ๋ฐ›์•„ ๋“ค์ผ ์ˆ˜ ์žˆ๊ณ  NT์— ์ ํ•ฉํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์•„์ด๋””์–ด์™€ ํ•จ๊ป˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ํ›„, NT์™€ * nix๊ฐ€ ์ค‘๊ฐ„์— ๋งŒ๋‚˜๋Š” ํ”Œ๋žซํผ์˜ ์‹œ์ž‘์ด์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ,์ด๋ฅผ ํ†ตํ•ด PowerShell์— ๋Œ€ํ•œ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ๊ตฌํ˜„์„ ์ˆ˜์ •ํ•˜์—ฌ ๋ช…๋ น์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์ ์–ด๋„ ๋‚ด 2 ์„ผํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ”๋“œ๋ฅผ๋ณด๊ณ  ๊ทธ ์•ˆ์—์žˆ๋Š” ์•„์ด๋””์–ด๊ฐ€ ์ข‹์ง€ ์•Š๋‹ค๊ณ  ๋Š๋ผ๋ฉด ์ดํ•ดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„์ง ์ด๋Ÿฐ ๊ฒƒ์„ ์‹œ๋„ํ•˜๋Š” ์‚ฌ๋žŒ์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

(a) ์˜ˆ ์ด๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๊ณ , (b) MS์—์„œ๋งŒ ์ œ๋Œ€๋กœ ํ•ด๊ฒฐ ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž ์‹œ ๋™์•ˆ sudo์˜ ์š”์ ์„ ์„ค๋ช…ํ•˜๋Š” ์ขŒ์ ˆ ํ•œ ์Šฌํ””์—์„œ ๋ฌผ๋Ÿฌ๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค (์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, Windows). (c) ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋„ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์—ด์ •์ ์ด๋ผ๋Š” ๊ฒƒ์„ ๋ณด๋Š” ๊ฒƒ์€ ์ •๋ง ๋ฉ‹์ง€๋‹ค.

๋‚˜๋Š” ๊ทธ ๊ธธ์„ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ์ œ๋Œ€๋กœํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ํž˜๋“ ์ง€ ์••๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ง€๊ธˆ ์šฐ๋ฆฌ๋ฅผ ๋ง‰๋Š” ์œ ์ผํ•œ ๊ฒƒ์ด UAC ๋Œ€ํ™”์ฐฝ์ด๋ผ๋ฉด ๊ทธ๋ ‡๊ฒŒํ•˜์„ธ์š”. ์ตœ์†Œํ•œ ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์•ฝ๊ฐ„์˜ ๋…ธ๋ ฅ์œผ๋กœ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์†”๋ฃจ์…˜์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐœ์ธ์ ์œผ๋กœ PowerShell์—์„œ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์€ Unix sudo์— ๋Œ€ํ•œ ํฌ๊ด„์  ์ธ ์ง€์›์ด์ง€๋งŒ, ํ˜„์žฌ์™€ ๊ฐ™์€ ์ผ๋ถ€ ํ˜•ํƒœ์˜ "pseudo-sudo"์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง€์›ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ํ–ฅํ›„ ์ž ์žฌ์  ์ธ ์‹ค์ œ Windows sudo์ž…๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Windows sudo๊ฐ€ ๊ถ๊ทน์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ํ”„๋กœํ†  ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค์—ˆ์ง€ ๋งŒ UAC ์ œํ•œ์„ ๋ฒ—์–ด๋‚œ๋‹ค๋ฉด ์ƒ๋‹นํžˆ ๊ฐ„๋‹จํ•ด์•ผํ•˜๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€๊ธˆ๋งŒํผ ์ข‹์€ ๊ฒƒ์„ ์ œ๊ณตํ•ด์•ผํ•˜๋ฉฐ, ์‹ค์ œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์œผ๋ฉด ๊ฝค ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋“œ๋กญ ์ธ ๊ต์ฒด ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Unix uid / gid ๋ชจ๋ธ๊ณผ Windows sid / acl ๋ชจ๋ธ์„ ๋ชจ๋‘ ์ดํ•ดํ•˜๊ฑฐ๋‚˜ ์ ์–ด๋„ ๋ฒˆ์—ญํ•˜๋Š” ๋ชจ๋ธ์„ ์ƒ๊ฐํ•ด ๋‚ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ๋žŒ์ด ๋„์ „์„ ์ข‹์•„ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” MS ๋‚ด์˜ ํ„ฐ๋ฏธ๋„ ๋ฐ Windows ๋ณด์•ˆ ํŒ€๊ณผ์˜ ๋Œ€ํ™”๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์˜ ์ตœ์„ ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋งŒ๋“ค๊ณ  ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ด๋“œ ๋…ธํŠธ-์ด๋Ÿฌํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‚ฌ๋žŒ์€ sudo๊ฐ€ ๊ฐ€์ง„ ์‹œ๊ฐ„ ์ œํ•œ ๊ธฐ๋Šฅ์„ ํŒ์—…๋งŒํผ์ด๋‚˜ ์„ฑ๊ฐ€ ์‹œ๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Start-Process pwsh -NoNewWindow -Credential $cred ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€ ์•Š์ง€๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Unix uid / gid ๋ชจ๋ธ๊ณผ Windows sid / acl ๋ชจ๋ธ์„ ๋ชจ๋‘ ์ดํ•ดํ•˜๊ฑฐ๋‚˜ ์ ์–ด๋„ ๋ฒˆ์—ญํ•˜๋Š” ๋ชจ๋ธ์„ ์ƒ๊ฐํ•ด ๋‚ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ๋žŒ์ด ๋„์ „์„ ์ข‹์•„ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” MS ๋‚ด์˜ ํ„ฐ๋ฏธ๋„ ๋ฐ Windows ๋ณด์•ˆ ํŒ€๊ณผ์˜ ๋Œ€ํ™”๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์œ ๋‹‰์Šค๋Š” ๋˜ํ•œ acls๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  windows๋Š” posix ํ˜ธํ™˜์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ ์–ด๋„ ๊ทธ๊ฒƒ์ด ๋„๋ฉ”์ธ ์กฐ์ธํŠธ๋ผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” 1 ์ฐจ ๊ทธ๋ฃน ์†์„ฑ๋„ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  posix ์†์„ฑ๋“ค). ๋„๋ฉ”์ธ์— ๊ฐ€์ž… ํ•˜์ง€ ์•Š์€ Windows ํด๋ผ์ด์–ธํŠธ (๋˜๋Š” ์ง€๊ธˆ์€ User ๊ฐ€์ •)์— ๋Œ€ํ•ด ๊ตฌํ˜„ํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์œ ๋‹‰์Šค ๋ฐ Windows ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜ ๋ชจ๋ธ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์†Œ์œ  ์‚ฌ์šฉ์ž ๋ฐ ์ผ๋ถ€ ์˜ˆ์ƒ ACE (์‚ฌ์šฉ์ž, ๊ทธ๋ฃน ๋ฐ ๊ธฐํƒ€)๊ฐ€์žˆ๋Š” ์†Œ์œ  ๊ทธ๋ฃน์ด์žˆ๋Š” ACL.

์œ ๋‹‰์Šค ๊ถŒํ•œ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งคํ•‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
uid => ์†Œ์œ ์ž SID
gid => ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“  ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ๊ทธ๋ฃน SID์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž => ์ œ์ž‘์ž ์†Œ์œ ์ž ID S-1-3-0
๊ทธ๋ฃน => ํฌ๋ฆฌ์—์ดํ„ฐ ๊ทธ๋ฃน ID S-1-3-1
๊ธฐํƒ€ => ์„ธ๊ณ„ / ๋ชจ๋‘ S-1-1-0
์œ ๋‹‰์Šค์˜ acl ๋ชฉ๋ก์—์„œ uid๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์€ ์‹œ์Šคํ…œ์ด ldap, ํ™œ์„ฑ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ๊ธฐํƒ€ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ผ๋ถ€์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผํ•˜๋ฏ€๋กœ ์กฐ๊ธˆ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. powershell์˜ ๋ฒ”์œ„์—์„œ ๊ณ ๋ คํ•  ์œ ์ผํ•œ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์—†์Œ๊ณผ ldap / active ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” S-1-6-1-uid ๋ฐ S-1-6-2-gid๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค (S-1-6์ด ์—ฌ์ „ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ๋‹ด๋‹น ํŒ€์ด์ด ๋ชฉ์ ์„ ์œ„ํ•ด์ด๋ฅผ ํ• ๋‹น ํ•  ์˜์‚ฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •). ).
๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” ์ธ์ฆ ๋ฐฑ์—”๋“œ๋ฅผ ํ†ตํ•ด uid๋ฅผ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ldap / active ๋””๋ ‰ํ† ๋ฆฌ ์„œ๋ฒ„๋Š” sid ์ œ๊ณต์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ ๋งคํ•‘ ํ•  ๋ช‡ ๊ฐ€์ง€ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
uid 0 => S-1-5-32-544
gid 0 => S-1-6-500 (๋ฐ S-1-5-21-*-500)
๋Œ€๋ถ€๋ถ„์˜ ๋‹ค๋ฅธ ์ž˜ ์•Œ๋ ค์ง„ sid๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ ๋˜๋Š” ์ผ์ข…์˜ API๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค (๋˜๋Š” ์–ด์จŒ๋“  ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๊ฐ€์žฅ ๋†’์œผ๋ฏ€๋กœ ๊ทธ๋ƒฅ ์‚ญ์ œ)

์…ธ ๋นŒ๋“œ์—์„œ Get-Acl / Set-Acl๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๊ถŒํ•œ์ด ๋””์Šคํฌ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹์„ ์•Œ์ง€ ๋ชปํ•œ ์ฑ„ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

@ mmillar-bolis ๋‚˜๋Š” ์ด๋ฏธ ์—ฌ๊ธฐ์—์„œ ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค : https://github.com/PowerShell/PowerShell/issues/3232#issuecomment -444849067

Start-Process pwsh -NoNewWindow -Credential $ cred์— ๋Œ€ํ•ด ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€ ์•Š์ง€๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : .Net Core (๊ทธ๋ฆฌ๊ณ  Windows API๋„ ํฌํ•จ)๋Š” ๋™์ผํ•œ ์ฝ˜์†”์— ์—ฐ๊ฒฐ๋œ ์ƒˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋‹จ์ผ ๋ฐฉ๋ฒ•์€ ์ƒ์Šน ๋œ Windows ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณด์•ˆ์„ ์œ„ํ•ด "sudo"๋ณ„๋กœ ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์†”๋ฃจ์…˜์€ ํ–ฅ์ƒ๋œ ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ New-PSSession (๋˜๋Š” PSSession์—์„œ ํ˜ธ์ถœ)์ž…๋‹ˆ๋‹ค.

@iSazonov ๋™์ผํ•œ ์ฝ˜์†”์— ์—ฐ๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ์ด๋ฏธ ์–ธ๊ธ‰ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. https://github.com/PowerShell/PowerShell/issues/3232#issuecomment -444849067

์ด์ œ Windows๊ฐ€ ์œ ๋‹‰์Šค ์†Œ์ผ“์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์ด๋“ค ๋˜๋Š” ๋ช…๋ช… ๋œ ํŒŒ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ถŒํ•œ์žˆ๋Š” ์„œ๋น„์Šค๋Š” ์ž๊ฒฉ ์ฆ๋ช…์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ํ•ญ์ƒ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (* nix oses์— ๋Œ€ํ•œ ๋งํฌ ๋œ ๊ฒŒ์‹œ๋ฌผ์— ์–ธ๊ธ‰ ๋œ๋Œ€๋กœ suid๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ต). .

์•„๋งˆ๋„ lsas๋Š” ๊ทธ๋Ÿฌํ•œ ์ธ์ฆ API ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํ™•์žฅ๋˜์–ด์•ผํ• ๊นŒ์š”?
์ด๋ ‡๊ฒŒํ•˜๋ฉด ๋™์ผํ•œ ์ฝ˜์†”์— ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•˜๊ณ  ์ž…๋ ฅ์„ ์ˆ˜๋ฝํ•˜๋Š” ๋™์‹œ์— ์™„์ „ํ•œ ๊ฐ€์žฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ agowa338 ๊ท€ํ•˜์˜ ์ œ์•ˆ "์‚ฌ์‹ค์ƒ"์€ PowerShell ์›๊ฒฉ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜

๋”ฐ๋ผ์„œ ์†”๋ฃจ์…˜์€ ํ–ฅ์ƒ๋œ ์‚ฌ์šฉ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ New-PSSession (๋˜๋Š” PSSession์—์„œ ํ˜ธ์ถœ)์ž…๋‹ˆ๋‹ค.

localhost์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. AccessDenied ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋Š” ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.

  • UAC๊ฐ€ ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ์ž ์Šน์ธ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  BUILDIN \ Administrator์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค (Powershell)๊ฐ€ ์ด๋ฏธ ์ƒ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค.

@ jborean93์— ์˜ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/PowerShell/Win32-OpenSSH/issues/1308#issuecomment -448430464

๋”ฐ๋ผ์„œ ๋ธŒ๋กœ์ปค ์—ญํ• ์„ํ•˜๋Š” ๊ถŒํ•œ์žˆ๋Š” ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ API ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผํ•˜์ง€๋งŒ ์ด๋Š” PowerShell / PowerShell ๋‚ด์—์„œ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ์ž‘์—…์ด ์•„๋‹ˆ๋ฉฐ Microsoft ์ง์›์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์œ„์ž„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@ agowa338 ์–ธ๊ธ‰ ํ•œ ์ฝ”๋ฉ˜ํŠธ๋Š” ๋กœ์ปฌ Windows API์— ๋Œ€ํ•œ ๊ฒƒ์ด์ง€, ๊ฑฐ๊ธฐ์—์„œ ์งˆ๋ฌธ์ด์—ˆ๋˜ PowerShell ์›๊ฒฉ์ด ์•„๋‹™๋‹ˆ๋‹ค.

@iSazonov : localhost์— powershell ์›๊ฒฉ ์ž‘์—…์„ ์‹œ๋„ํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ์œ„์—์„œ ์„ค๋ช…ํ•œ ์ด์œ  ๋•Œ๋ฌธ์— ์ž‘๋™ ํ•˜์ง€

localhost์— ๋Œ€ํ•œ PowerShell ์›๊ฒฉ์€ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ์ƒ์Šน ๋œ ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค .

๊ทธ๋Ÿฌ๋‚˜ PowerShell ์›๊ฒฉ์€ localhost๋ฅผ ์ œ์™ธํ•œ ๋„คํŠธ์›Œํฌ์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์ƒ์Šน ๋œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค (๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž ๋“ฑ์˜ ๊ตฌ์„ฑ์›์ด๋ผ๊ณ  ๊ฐ€์ •).

๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ฐฝ์— sudo๋ฅผ ๋™๋“ฑํ•œ ํ•„์š” ์ด์œ ์ž…๋‹ˆ๋‹ค. PowerShell ์›๊ฒฉ ๊ธฐ๋Šฅ์ด ๊ทธ๋ ‡๊ฒŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋Šฅ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋ฏ€๋กœ ๋ฌธ์„œ์— ์˜ˆ์ œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ์ด ํ‹ฐ์ผ“์„ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ agowa338 ๋ณด์•ˆ ๋ณดํ˜ธ๋กœ ์ธํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. OS ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_remote_troubleshooting์— ์„ค๋ช… ๋œ๋Œ€๋กœ WinRM์„ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ ํ•œ ๋ฌธ์ œ๋Š” SSH์—์„œ๋„ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค (๋‹จ๊ณ„๋Š” ๊ธฐ์‚ฌ์—์„œ ์ฐธ์กฐ).

๊ธฐ๋Šฅ์ด ์ด๋ฏธ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์š”์ฒญ์€ "sudo Remove-Item foo.txt where foo.txt๋Š” root๊ฐ€ ์†Œ์œ  ํ•จ"์„ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ž‘๋™ํ•˜์ง€ ์•Š์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ์–ธ์–ด์™€ ๊ตฌํ˜„์˜ ๊ตฌ๋ฌธ ์„คํƒ•์ด๋ผ๋Š” ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์ƒ๊ฐํ•˜๋ฉด ์‚ฌ์šฉ์ž ๋‹น / ์„ธ์…˜ ๋‹น / ์‹คํ–‰ ๊ณต๊ฐ„ ๋‹น / ๋ฒ”์œ„ ๋‹น powershell ์ปจํ…์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ณด์•ˆ ๊ทœ์ • ์ค€์ˆ˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋ฉฐ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ "์•ก์„ธ์Šค ๊ฑฐ๋ถ€"๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์ œ์•ˆ์€ ์ด๋ฏธ ๊ตฌํ˜„ ๋œ PowerShell ์›๊ฒฉ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ ๋ณดํ˜ธ๋กœ ์ธํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. OS ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌธ์„œ์— ์„ค๋ช… ๋œ๋Œ€๋กœ WinRM์„ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@iSazonov ์ข€ ๋” ์ž์„ธํžˆ

์š”์ฒญ์€ "sudo Remove-Item foo.txt where foo.txt๋Š” root๊ฐ€ ์†Œ์œ  ํ•จ"์„ ๊ฐ€์ ธ ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋น„ Windows ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์œ ๋‹‰์Šค ์†Œ์ผ“ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ powershell ์›๊ฒฉ์— ๋Œ€ํ•œ ๊ฐ€์žฅ / ์Šน๊ฒฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ ๋จธ์‹ ๊ณผ ๋„คํŠธ์›Œํฌ์˜ ๋‹ค๋ฅธ ๋จธ์‹ ์œผ๋กœ ์›๊ฒฉ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ์—์„œ๋„ localhost๋กœ ์ด๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ค, ๊ทธ ํŽ˜์ด์ง€๋ฅผ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๊ณต๊ฒฉ์€ ์ง€์—ญ ๊ณ ๋„๋ฅผ ๋ชฉํ‘œ๋กœํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๊ตฌ์„ฑ์€ "๊ธฐ๋ณธ์ ์œผ๋กœ ์•ˆ์ „"ํ•ฉ๋‹ˆ๋‹ค. WMI, WinRM, IIS ๋ฃจํ”„๋ฐฑ ๋“ฑ-๋ชจ๋“  ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ๋กœ์ปฌ ๊ถŒํ•œ ์ƒ์Šน์„ ํ—ˆ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ† ๋ก ์—๋Š” ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PowerShell ์›๊ฒฉ ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ sudo๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด์ œํ•˜๊ฑฐ๋‚˜ ๋Œ€ํ™” ํ˜• ์„ธ์…˜ ๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows๊ฐ€ ์•„๋‹Œ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์œ ๋‹‰์Šค ์†Œ์ผ“ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ powershell ์›๊ฒฉ์— ๋Œ€ํ•œ ๊ฐ€์žฅ / ์Šน๊ฒฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๋™์ผํ•œ UX๋ฅผ ๊ฐ€์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ PSRP๋Š” WinRM ๋˜๋Š” SSH ์ „์†ก์„ ํ†ตํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. MSFT๋Š” ๊ทธ๋“ค์ด SSH๋ฅผ ์ข‹์•„ํ•œ๋‹ค๊ณ  ๋งํ–ˆ์ง€๋งŒ ์ง€๋‚œ 2 ๋…„ ๋™์•ˆ ๋ˆˆ์— ๋„๋Š” ์ง„์ „์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์ด _ ๊ฐ€๊นŒ์šด _ ๋ฏธ๋ž˜์— ์„ธ ๋ฒˆ์งธ ํ”„๋กœํ† ์ฝœ์„ ์›ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์€ ๋ฏฟ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.-๋„ˆ๋ฌด ๋งŽ์€ ์ž‘์—… (์˜ค๋ž˜๋œ ์‹œ์Šคํ…œ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•  ํ•„์š”์„ฑ).

๋Œ€๋ถ€๋ถ„์˜ ๊ณต๊ฒฉ์€ ์ง€์—ญ ๊ณ ๋„๋ฅผ ๋ชฉํ‘œ๋กœํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๊ตฌ์„ฑ์€ "๊ธฐ๋ณธ์ ์œผ๋กœ ์•ˆ์ „"ํ•ฉ๋‹ˆ๋‹ค. WMI, WinRM, IIS ๋ฃจํ”„๋ฐฑ ๋“ฑ-๋ชจ๋“  ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ๋กœ์ปฌ ๊ถŒํ•œ ์ƒ์Šน์„ ํ—ˆ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ† ๋ก ์—๋Š” ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PowerShell ์›๊ฒฉ ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ sudo๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด์ œํ•˜๊ฑฐ๋‚˜ ๋Œ€ํ™” ํ˜• ์„ธ์…˜ ๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์–ผ๋งˆ ์ „์— ๊ทธ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๊ณ , ์ด๊ฒƒ์ด ๋‚ด๋ถ€์ ์œผ๋กœ OS์— ์˜ํ•ด ์ œํ•œ๋˜๊ณ  Windows ๋‚ด๋ถ€์— ๊นŠ์ด ์—ฐ๊ฒฐ๋˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์—†์ด๋Š” ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋งŽ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์œˆ๋„์šฐ API ์ œํ•œ์„ ์ง€์ ํ•˜๊ณ  ์™œ powershell์ด โ€‹โ€‹๊ทธ๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์—†๋Š”์ง€์— ๋Œ€ํ•œ ์ฃผ์žฅ์œผ๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ตฐ๊ฐ€๋Š” ๋ฃจํ”„๋ฐฑ ์ƒ์Šน์ด ์˜๋„์ ์œผ๋กœ ์ œ๊ฑฐ ๋œ CVE๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ ํ† ๋ผ ๊ตฌ๋ฉ์„ ์กฐ๊ธˆ ๋” ๊นŠ์ด ๋‚ด๋ ค๊ฐ€๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋ฌด์—‡์„ ๊ตฌ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๊ฒŒ ์–ด๋””์„œ๋‚˜ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๋™์ผํ•œ UX๋ฅผ ๊ฐ€์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ PSRP๋Š” WinRM ๋˜๋Š” SSH ์ „์†ก์„ ํ†ตํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. MSFT๋Š” ๊ทธ๋“ค์ด SSH๋ฅผ ์ข‹์•„ํ•œ๋‹ค๊ณ  ๋งํ–ˆ์ง€๋งŒ ์ง€๋‚œ 2 ๋…„ ๋™์•ˆ ๋ˆˆ์— ๋„๋Š” ์ง„์ „์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์ด ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ์„ธ ๋ฒˆ์งธ ํ”„๋กœํ† ์ฝœ์„ ์›ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์€ ๋ฏฟ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ์ž‘์—… (์˜ค๋ž˜๋œ ์‹œ์Šคํ…œ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•  ํ•„์š”)์ž…๋‹ˆ๋‹ค.

๋‘˜ ๋‹ค ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•˜๋ฏ€๋กœ ๋‘ ์†”๋ฃจ์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ถ”์ง„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  • PSRP : localhost์— ๋Œ€ํ•œ SSHing์€ Windows ๋ฐ Linux์—์„œ ์Šน๊ฒฉ์„ ์œ„ํ•ด ์ž‘๋™ํ•˜๋ฏ€๋กœ psrp ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ ์˜ฌ๋ฐ”๋ฅธ ๊ถŒํ•œ์ด ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ์ฒด ์ „๋‹ฌ์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด powershell ๊ณ„์ธต ๋งŒ ๊ท ์ผํ™”ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ถŒ๋ฆฌ?
  • ์œ ๋‹‰์Šค ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜๋ฉด powershell ์›๊ฒฉ๊ณผ ๊ฐ™์€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž‘์„ฑ ๋‹น์‹œ์—๋Š” ํ† ํฐ ์Šค์™€ํ•‘์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ ์‹œ์Šคํ…œ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ถ”๊ฐ€ ์„œ๋น„์Šค์—†์ด ๋กœ์ปฌ ๊ถŒํ•œ ์ƒ์Šน์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์šด ์ œํ•œ์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ powershell remoting์ด ์ด๋ฏธ ์กด์žฌํ•˜๋ฏ€๋กœ (๋˜ํ•œ ์ด๋ฏธ ssh๋ณด๋‹ค ์ž‘๋™ํ•˜๋ฏ€๋กœ) ํ•ด๋‹น ์†”๋ฃจ์…˜์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ตฐ๊ฐ€๋Š” ๋ฃจํ”„๋ฐฑ ์ƒ์Šน์ด ์˜๋„์ ์œผ๋กœ ์ œ๊ฑฐ ๋œ CVE๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. CVE๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฃจํ”„๋ฐฑ์„ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ „ํ˜€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
https://github.com/PowerShell/PowerShell/issues/3874#issuecomment -510715727๋„

@iSazonov : ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ฎ์€ ๊ถŒํ•œ ์•ก์„ธ์Šค ํ† ํฐ ๋งŒ ์ œ๊ณตํ•˜๊ณ  ์ƒ์Šน ๋œ ์•ก์„ธ์Šค ํ† ํฐ (์˜ˆ : Mandatory Label\High Mandatory Level )์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. TrustedHosts๊ฐ€ ๋‚˜๋ฅผ ์œ„ํ•ด * ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด๋„ ๋‚ฎ์€ ๊ถŒํ•œ์˜ powershell์—์„œ ๊ด€๋ฆฌ ๊ถŒํ•œ์„ ์–ป์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์˜จ ํ† ํฐ์€ Enter-PSSession ์ดํ›„์—๋„ ํ•ญ์ƒ ๋Œ€ํ™” ํ˜• ์œ ํ˜•์ž…๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ Enter-PSSession localhost -ScriptBlock {} ์žˆ์ง€๋งŒ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ „๋‹ฌํ•˜๋ฉด "์•ก์„ธ์Šค ๊ฑฐ๋ถ€"๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. , ์•„๋‹ˆ์š”, ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ uac๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ๋‹ค๋Š” "์•ก์„ธ์Šค ๊ฑฐ๋ถ€"๊ฐ€ ํ•ญ์ƒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด์ œ SSH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๋กœ๊ทธ์˜จ ์œ ํ˜• Network์™€ ํ•จ๊ป˜ ์ƒ์Šน ๋œ ํ† ํฐ ( Mandatory Label\High Mandatory Level )์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ PSCore์—์„œ ์šฐ๋ฆฌ๋Š” ์Šน๊ฒฉ์„ ์œ„ํ•ด psrp์— ์˜์กด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์‹ฌ์ง€์–ด ๋ช…์‹œ์ ์ธ ์ž๊ฒฉ ์ฆ๋ช…์ด ์ „๋‹ฌ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ž‘๋™ํ•˜๋Š” Enter-PSSession -HostName localhost ๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ์—์„œ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
Enter-PSSession -ComputerName localhost -Credential $foo ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ($ foo.Username์ด ํ˜„์žฌ ์‚ฌ์šฉ์ž์™€ ๋™์ผํ•˜๋”๋ผ๋„)

@ agowa338 ์—ฌ๊ธฐ์„œ WinRM์˜ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์šฐํšŒํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์ค€์ˆ˜ ๊ฐ์ง€ ์˜์—ญ์ž…๋‹ˆ๋‹ค). (1) ํ”„๋กœํ† ์ฝœ์— ๊ด€๊ณ„์—†์ด ๋ณด์•ˆ์€ ๋™์ผํ•œ ์ˆ˜์ค€์œผ๋กœ ์œ ์ง€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Windows ๋‚ด๋ถ€๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ•˜์—ฌ SSH ๋ฃจํ”„๋ฐฑ์ด WinRM๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (2) PS sudo ๊ตฌํ˜„์ด ๊ณ„์† ์ž‘๋™ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์šด์†ก.

@iSazonov : ์ €๋Š” ์ต์Šคํ”Œ๋กœ์ž‡์„ ์š”์ฒญํ•˜์ง€ ์•Š์•˜์ง€๋งŒ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑํ•ด์•ผ ํ•  ์‚ฌํ•ญ ๋งŒ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฃจํ”„๋ฐฑ ์ƒ์Šน์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด WinRM์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋‚ธ ์œ ์ผํ•œ ์‚ฌ๋žŒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋งค์šฐ ์˜ค๋žซ๋™์•ˆ ํ™œ์„ฑํ™”ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์งˆ๋ฌธ (stackoverflow, reddit, github ๋ฌธ์ œ, ...) "์œˆ๋„์šฐ๊ฐ€ ์ด์ƒ ํ•ด์š”", "์œˆ๋„์šฐ๊ฐ€ ๊ฑฐ๊ธฐ์—์„œ ๋ฌด์Šจ ์ผ์„ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์š”", "์•„๋ฌด๋ฐ๋„ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค", "์œˆ๋„์šฐ๊ฐ€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๊ทธ ๊ธฐ๋Šฅ ","๋Œ€์‹  Linux ์‚ฌ์šฉ ","UAC ๋น„ํ™œ์„ฑํ™” ","์‹œ์Šคํ…œ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๋ธŒ๋กœ์ปค ์„œ๋น„์Šค๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ". ๊ทธ๋ž˜์„œ ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด, ๋‹น์‹ ์˜ ์ง€์‹์„ ๊ณต์œ ํ•˜์‹ญ์‹œ์˜ค.

ํ”„๋กœํ† ์ฝœ์— ๊ด€๊ณ„์—†์ด ๋ณด์•ˆ์€ ๋™์ผํ•œ ์ˆ˜์ค€์œผ๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•จ์„ (1) ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋ฌด์Šจ ๋œป์ด์•ผ?

์ด๋Š” SSH ๋ฃจํ”„๋ฐฑ์ด Windows ๋‚ด๋ถ€์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ๊ณ ๋ คํ•˜์—ฌ WinRM๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Well SSH์—๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ธŒ๋กœ์ปค ์—ญํ• ์„ํ•˜๋Š” ์‹œ์Šคํ…œ ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค ํ† ํฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค ...

(2) PS sudo ๊ตฌํ˜„์€ ๋ชจ๋“  ์ „์†ก์—์„œ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•ํžˆ ๊ทธ ์ด์œ  ๋•Œ๋ฌธ์— WinRM์„ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฃจํ”„๋ฐฑ WinRM์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ๋ง์”€ํ•˜์‹  ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ผ๋ฉด.

๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์ดํ•ดํ–ˆ๋‹ค๋ฉด, ๋‹น์‹ ์˜ ์ง€์‹์„ ๊ณต์œ ํ•˜์‹ญ์‹œ์˜ค.

@ agowa338 MSFT ํŒ€์ด ๋ณด์•ˆ์— ๋Œ€ํ•ด ๊ณต๊ฐœ์ ์œผ๋กœ ๋…ผ์˜ํ•˜์ง€ ๋ง๋ผ๊ณ  ์š”์ฒญํ–ˆ๊ณ  CoC๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ณ ์žํ•˜๋Š” ์—ฌ๋Ÿฌ๋ถ„์˜ ์—ด๋ง์„์ง€์ง€ํ•˜์ง€๋งŒ,์ด ํ† ๋ก ์˜ ์ผ๋ถ€๋กœ MSFT๋Š”์ด ์†”๋ฃจ์…˜์„ Windows์— ํ†ตํ•ฉํ•˜๊ณ  ๋ณด์•ˆ ๊ทœ์ •์„ ์ค€์ˆ˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ณจ์นซ๊ฑฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ๋ถˆ๋Ÿฌ๋‚ด๋ ค๋ฉด :

  • Windows์—๋Š” WinRM ๋‚ด์—์„œ sudo์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ ๊ทธ๊ฒƒ์„ ํ™œ์„ฑํ™” / ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๊ณต๊ฐœํ•˜๋ฉด ๋ณด์•ˆ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๋ฐฑ๋„์–ด์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๋‹น์‹  ์ด์™ธ์˜ ์‚ฌ๋žŒ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋ชจํ˜ธ์„ฑ์„ ํ†ตํ•œ ๋ณด์•ˆ์€ ๊ณผ๊ฑฐ์—๋„ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋ธŒ๋กœ์ปค ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@ agowa338 MSFT ํŒ€์ด ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€์ฒด ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ ์˜ฌํ•ด ์ดˆ https://devblogs.microsoft.com/powershell/windows-security-change-affecting-powershell/ ํŒจ์น˜๊ฐ€ KB4480116 ํŒจ์น˜ ๋ฐ ํ›„์† ๋ˆ„์  ์—…๋ฐ์ดํŠธ๋กœ ํŒจ์น˜ LocalAccountTokenFilterPolicy ๊ฐ€ winrm quickconfig ์˜ ๊ธฐ๋Šฅ์ธ 1๋กœ ์„ค์ •๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค (์‹ค์ œ๋กœ WinRM์— ํ•„์š”ํ•จ).

JEA ์—”๋“œ ํฌ์ธํŠธ๊ฐ€ ์˜ํ–ฅ์„๋ฐ›์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž ์žฌ์ ์œผ๋กœ ์ž์‹ ์˜ PSSessionConfiguration์„ ๋งŒ๋“ค๊ณ  ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฉ”๋ชจ๊ฐ€ ์žˆ์ง€๋งŒ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ์ด ํŒจ์น˜๋Š” PowerShell ํด๋ผ์ด์–ธํŠธ๊ฐ€ localhost์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ๋•Œ๋ฌธ์—์ด ํŒจ์น˜๋Š” ์–ด๋ฆฌ์„์€ ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ˆ˜ํ–‰์ค‘์ธ ์ž‘์—…์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์‰ฝ๊ฒŒ ์šฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SSH ๋˜๋Š” ๋‹ค๋ฅธ PSRemoting ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UAC๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ ๋„ ์ œํ•œ์—์„œ ์ƒ์Šน์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PS C:\Users\vagrant> whoami.exe /groups  # prove the current process is limited

GROUP INFORMATION
-----------------

Group Name                                                    Type             SID          Attributes

============================================================= ================ ============ ============================
======================
Everyone                                                      Well-known group S-1-1-0      Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Local account and member of Administrators group Well-known group S-1-5-114    Group used for deny only

BUILTIN\Administrators                                        Alias            S-1-5-32-544 Group used for deny only

BUILTIN\Remote Management Users                               Alias            S-1-5-32-580 Mandatory group, Enabled by
default, Enabled group
BUILTIN\Users                                                 Alias            S-1-5-32-545 Mandatory group, Enabled by
default, Enabled group
BUILTIN\Performance Log Users                                 Alias            S-1-5-32-559 Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\REMOTE INTERACTIVE LOGON                         Well-known group S-1-5-14     Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\INTERACTIVE                                      Well-known group S-1-5-4      Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Authenticated Users                              Well-known group S-1-5-11     Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\This Organization                                Well-known group S-1-5-15     Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Local account                                    Well-known group S-1-5-113    Mandatory group, Enabled by
default, Enabled group
LOCAL                                                         Well-known group S-1-2-0      Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\NTLM Authentication                              Well-known group S-1-5-64-10  Mandatory group, Enabled by
default, Enabled group
Mandatory Label\Medium Mandatory Level                        Label            S-1-16-8192

PS C:\Users\vagrant> ssh vagrant<strong i="11">@localhost</strong> whoami.exe /groups  # prove that SSH is elevated
vagrant<strong i="12">@localhost</strong>'s password:

GROUP INFORMATION
-----------------

Group Name                                                    Type             SID          Attributes

============================================================= ================ ============ ============================
===================================
Everyone                                                      Well-known group S-1-1-0      Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Local account and member of Administrators group Well-known group S-1-5-114    Mandatory group, Enabled by
default, Enabled group
BUILTIN\Administrators                                        Alias            S-1-5-32-544 Mandatory group, Enabled by
default, Enabled group, Group owner
BUILTIN\Remote Management Users                               Alias            S-1-5-32-580 Mandatory group, Enabled by
default, Enabled group
BUILTIN\Users                                                 Alias            S-1-5-32-545 Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\NETWORK                                          Well-known group S-1-5-2      Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Authenticated Users                              Well-known group S-1-5-11     Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\This Organization                                Well-known group S-1-5-15     Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Local account                                    Well-known group S-1-5-113    Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\NTLM Authentication                              Well-known group S-1-5-64-10  Mandatory group, Enabled by
default, Enabled group
Mandatory Label\High Mandatory Level                          Label            S-1-16-12288

PS C:\Users\vagrant> python -c "from pypsrp.client import Client; c = Client('localhost', username='vagrant', password='
<password>', ssl=False); print(c.execute_ps('whoami.exe /groups')[0])"

GROUP INFORMATION
-----------------

Group Name                                                    Type             SID          Attributes

============================================================= ================ ============ ============================
===================================
Everyone                                                      Well-known group S-1-1-0      Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Local account and member of Administrators group Well-known group S-1-5-114    Mandatory group, Enabled by
default, Enabled group
BUILTIN\Administrators                                        Alias            S-1-5-32-544 Mandatory group, Enabled by
default, Enabled group, Group owner
BUILTIN\Remote Management Users                               Alias            S-1-5-32-580 Mandatory group, Enabled by
default, Enabled group
BUILTIN\Users                                                 Alias            S-1-5-32-545 Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\NETWORK                                          Well-known group S-1-5-2      Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Authenticated Users                              Well-known group S-1-5-11     Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\This Organization                                Well-known group S-1-5-15     Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\Local account                                    Well-known group S-1-5-113    Mandatory group, Enabled by
default, Enabled group
NT AUTHORITY\NTLM Authentication                              Well-known group S-1-5-64-10  Mandatory group, Enabled by
default, Enabled group
Mandatory Label\High Mandatory Level                          Label            S-1-16-12288

SSH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์Šน ๋œ ํ† ํฐ์ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์Šน ๋œ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๋Š” localhost PSRemoting์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŒจ์น˜๊ฐ€์ด ๊ธฐ๋Šฅ์˜ ์ „์ฒด ๋ธ”๋ก์ด ์•„๋‹˜์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MS๊ฐ€ UAC๊ฐ€ ๋ณด์•ˆ ๊ฒฝ๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ง ํ–ˆ์œผ๋ฏ€๋กœ ๋ณด์•ˆ ๋ฌธ์ œ ๋˜๋Š” ๋ณด์•ˆ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ€๊น๊ฑฐ๋‚˜ ๋น„์Šทํ•˜๊ฒŒ ํ–‰๋™ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ ˆ๋Œ€ ์•ˆ์ „ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. UAC๋ฅผ ์šฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ์•Œ๋ ค์ง„ LocalAccountTokenFilterPolicy ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ด ์†์„ฑ์˜ ๋ช…์‹œ์ ์ธ ๋ชฉ์ ์€ ๋„คํŠธ์›Œํฌ ๋กœ๊ทธ์˜จ์ด ํ•„ํ„ฐ๋ง ๋œ ํ† ํฐ์ด ์•„๋‹ˆ๋ผ ํ•ญ์ƒ ์ƒ์Šน๋˜๋„๋กํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ,์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด "๋ฃจํ”„๋ฐฑ"๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•œ๋‹ค๊ณ  ๋ช…์‹œ ์ ์œผ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋กœ์ปฌ ๊ด€๋ฆฌ์ž ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์› ์ธ ์‚ฌ์šฉ์ž๋ฅผ ๋” ์ž˜ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ์— UAC ์ œํ•œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ "๋ฃจํ”„๋ฐฑ"๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋˜ํ•œ ๋กœ์ปฌ ์•…์„ฑ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ด€๋ฆฌ ๊ถŒํ•œ์œผ๋กœ ์›๊ฒฉ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ถ๊ทน์ ์œผ๋กœ ์ด๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” Windows์—์„œ ๋น„๋Œ€ํ™” ํ˜• ๋ฐฉ์‹์œผ๋กœ ์ œํ•œ๋œ ๊ถŒํ•œ์—์„œ ๊ด€๋ฆฌ์ž๋กœ ๊ถŒํ•œ์„ ๋†’์ผ ์ˆ˜์žˆ๋Š” ๊ณต์‹์ ์ธ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Start-Process ... -Verb Runas ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€๋งŒ UAC ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋Œ€ํ™” ํ˜• ๋กœ๊ทธ์˜จ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. sudo์™€ ๊ฐ™์€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด์ด ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜์ง€๋งŒ ์ œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด PowerShell๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Windows ์ž์ฒด์—์„œ ์ž‘์—…ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. "ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•"์ด ์žˆ์ง€๋งŒ ๊ณต์‹์ ์œผ๋กœ ๋ถ€๋ฅด์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋ฉฐ WinRM ํ™œ์„ฑํ™”์˜ ์•Œ๋ ค์ง„ ๋ถ€์‚ฐ๋ฌผ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

PowerShell
PowerShell์— ์˜ํ–ฅ์„์ฃผ๋Š” Windows ๋ณด์•ˆ ๋ณ€๊ฒฝ 2019 ๋…„ 1 ์›” 9 ์ผ ์ตœ๊ทผ (2019 ๋…„ 1 ์›” 8 ์ผ) Windows ๋ณด์•ˆ ํŒจ์น˜ CVE-2019-0543์€ PowerShell ์›๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„์ฃผ์ง€ ์•Š๋Š” ์ข์€ ๋ฒ”์œ„์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋กœ์ปฌ ๋ฃจํ”„๋ฐฑ ์›๊ฒฉ์—๋งŒ ์˜ํ–ฅ์„์ค๋‹ˆ๋‹ค.
Mark์˜ ๋ธ”๋กœ๊ทธ
ํ•„์ž๋Š” Windows XP์˜ ๊ด€๋ฆฌ์ž ๊ณ„์ •์—์„œ ํ‘œ์ค€ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ์•ฝ 1 ๋…„ ๋ฐ˜ ์ „์— PsExec์— -l ์Šค์œ„์น˜๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œํ•œ๋œ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰ โ€“ ์‰ฌ์šด ๋ฐฉ๋ฒ• PsExec์ด CreateRestrictedToken API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ์ปจํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.
Windows 7 ์—”์ง€๋‹ˆ์–ด๋ง
์•ˆ๋…•ํ•˜์„ธ์š”, Jon DeVaan์ด ์ตœ๊ทผ๋ฐ›์€ UAC ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. Windows 7์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์€ ํ”ผ๋“œ๋ฐฑ์— ์‘๋‹ตํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. UAC ํ”ผ๋“œ๋ฐฑ์€ ์—”์ง€๋‹ˆ์–ด๋ง ์˜์‚ฌ ๊ฒฐ์ • ํ”„๋กœ์„ธ์Šค์˜ ๋ช‡ ๊ฐ€์ง€ ์ฐจ์›์—์„œ ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์ฐจ์›์„ ํƒ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์šด e7์„ ๋งŒ๋“ค ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@iSazonov ์ด๋Ÿฌํ•œ ์ œ์•ˆ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ _ ๋™์ผํ•œ ์ฝ˜์†” ์„ธ์…˜ ๋‚ด์—์„œ _, ํŠนํžˆ UAC_๊ฐ€์—†๋Š” ํ™˜๊ฒฝ์—์„œ _user-interactive_ ๋ช…๋ น ์ƒ์Šน์„ ๋‹ฌ์„ฑํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด Microsoft๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋ฐœ์–ธ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์„ค๋ช…ํ•œ๋Œ€๋กœ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๋Š” ๋ฐ ๋‹จ์ˆœํžˆ ๊ด€์‹ฌ์ด ์—†๋Š”์ง€ ๋ถ„๋ช…ํžˆ ๋ง์”€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด ๊ฒฝ์šฐ ์œ„์˜ ๊ฒŒ์‹œ๋ฌผ์—์„œ ํ•ด์„ํ–ˆ๋“ฏ์ด ๋‚˜๋จธ์ง€ ์‚ฌ์šฉ์ž๋Š” @parkovski ์˜ TokenServer ์•„์ด๋””์–ด์™€ ๊ฐ™์€ ์†”๋ฃจ์…˜์„ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ฐพ์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์ด ํ˜„๋ช…ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด Microsoft๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋งํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

์ €๋Š” MSFT ํšŒ์›์ด ์•„๋‹Œ ํ”„๋กœ์ ํŠธ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ด€๋ฆฌ์ž์ด๋ฉฐ Microsoft๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋“ค์ด ๋‚ด๊ฐ€ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†๋Š”์ง€ ๋ช…ํ™•ํžˆ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

_ ๋ชจ๋“  ์ œ์•ˆ์—๋Š” ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ค‘ ๋ˆ„๊ตฌ๋„ ๊ฑฐ๋ถ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ† ๋ก ์€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ œ์•ˆ์„ ์ˆ˜์ง‘ํ•˜๊ธฐ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค ._

ํ˜„์žฌ ์ €๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ •์ฒด๋˜์ง€ ์•Š๊ณ  ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“  ์ œ์•ˆ์„ ์š”์•ฝํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ณธ๋‹ค.
์ฃผ์š” ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” Windows์—์„œ Unix ์‚ฌ์šฉ์ž๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์—ญ์‚ฌ์ ์œผ๋กœ Unix ์‚ฌ์šฉ์ž๋Š” ํ•˜๋‚˜์˜ ์ฝ˜์†”์—์„œ ์ž‘์—…ํ•˜๊ณ  sudo๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ _same_ ์ฝ˜์†”์—์„œ ์ƒ์Šน ๋œ ๊ถŒํ•œ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.
  • ์—ญ์‚ฌ์ ์œผ๋กœ Windows ์‚ฌ์šฉ์ž๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ƒ์Šน ๋œ ๊ถŒํ•œ ์ฝ˜์†”๋กœ ์ƒˆ ์ฐฝ์„ ์—ฝ๋‹ˆ ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์ค‘ ์ฐฝ ํ™˜๊ฒฝ์—์„œ ํŽธ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋…„ ๋™์•ˆ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. (Windows ์‚ฌ์šฉ์ž๋Š” Windows Core ๋ฐ Nano๋ฅผ ๊ณ ๋ คํ•˜์—ฌ pssudo์˜ ํ˜œํƒ์„๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋”ฐ๋ผ์„œ ๊ธฐ๋Œ€์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์˜์‚ฌ๋Š” ๋Œ€ํ™” ํ˜• ์„ธ์…˜์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • pssudo๊ฐ€ ์ƒˆ ์ฝ˜์†”์„ ์—ด์ง€ ์•Š์Œ (UAC ์ฐฝ์€ Windows์—์„œ ํ—ˆ์šฉ๋˜๋ฉฐ Windows ๋ณด์•ˆ ๋ฐ ์ •์‹ ์„ ๊นจ๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค)
  • ์˜์‚ฌ ์ ์‹œ ์บ์‹œ ํฌ๋ ˆ ๋ด์…œ
  • pssudo๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ์„ธ์…˜ ์ƒํƒœ๋ฅผ ์บ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€๋Šฅํ•œ ํ•œ ๋™์ผํ•œ UX๊ฐ€ ๋ชจ๋“  ํ”Œ๋žซํผ์— ์žˆ์Œ
  • pssudo๋Š” ๊ธฐ๋ณธ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • pssudo๋Š” PowerShell ์Šคํฌ๋ฆฝํŠธ ๋ธ”๋ก / ํŒŒ์ผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌํ˜„ ์„ธ๋ถ€ ์ •๋ณด :

  • PowerShell ์›๊ฒฉ์€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ๊ธฐ๋Šฅ์ ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ์ž / ์„ธ์…˜ / ๋Ÿฐ ์ŠคํŽ˜์ด์Šค / ๋ฒ”์œ„ ์ƒํƒœ์—์„œ PowerShell ์Šคํฌ๋ฆฝํŠธ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์ด ๊ธฐ๋Šฅ์„ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์ „์†ก์€ WinRM์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” ๋ชจ๋“  Windows ์ธํ”„๋ผ์ด๋ฏ€๋กœ WinRM์ž…๋‹ˆ๋‹ค. WinRM์—๋Š” ์•ฝ๊ฐ„์˜ ํˆฌ์ž๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ MSFT๋Š” SOAP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๊ธฐ ๋•Œ๋ฌธ์—์ด๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • SSH ์ „์†ก์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹Windows์˜ ํ‘œ์ค€์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์— ๋งŽ์€ ํˆฌ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ค๋ž˜๋œ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค ์†Œ์ผ“๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ „์†ก. ์ธํ”„๋ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ PowerShell์—๋„ ๋งŽ์€ ํˆฌ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@ mklement0 ๋‚˜๋Š” ๋‹น์‹ ์ด ๋ณดํ†ต ๋Œ€๋‹จํ•œ ์ผ์„ ์—ฌ๊ธฐ์—์„œํ•˜๋Š” ๊ฒƒ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค :-) ๋‹น์‹ ์€ ๋‚˜๋ฅผ ์ƒ๋Œ€๋กœ ๊ฐ•ํƒˆํ•ฉ๋‹ˆ๋‹ค :-)

์ „๋‹ฌ ๋œ ๋ช…๋ น์œผ๋กœ powershell ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ถŒํ•œ์ด ํ•„์š”ํ•œ Windows ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ ค๋ฉด ์ฝ˜์†” ๋ชจ๋“œ ์•ฑ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Linux์˜ ๊ฒฝ์šฐ ์ œ๊ณต๋œ ๋ช…๋ น์œผ๋กœ powershell ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด๋ก ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋ฉด powershell์ด โ€‹โ€‹์ƒ์Šน ๋œ ๊ถŒํ•œ์œผ๋กœ ์‹œ์ž‘๋˜๊ณ  ๋ช…๋ น์„ ์‹คํ–‰ ํ•œ ํ›„ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ „๋‹ฌ ๋œ ๋ช…๋ น์œผ๋กœ powershell ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ถŒํ•œ์ด ํ•„์š”ํ•œ Windows ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ ค๋ฉด ์ฝ˜์†” ๋ชจ๋“œ ์•ฑ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Windows API๊ฐ€์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์ฝ˜์†” ์•ฑ์ด ์ƒˆ ์ฐฝ์—์„œ ์—ด๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ช…์‹ฌํ•ด์•ผ ํ•  ํ•œ ๊ฐ€์ง€๋Š” ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ ๋˜๋“  ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์ƒ์Šน ๋œ ํ”„๋กœ์„ธ์Šค๋กœ์˜ ํ”„๋กœ์„ธ์Šค ํ™‰์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํŒŒ์ดํ”„ ๋ผ์ธ์— ํ•ญ์ƒ ์—ญ ์ง๋ ฌํ™” ๋œ ๊ฐœ์ฒด๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ์ œํ•œ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์ง€๋งŒ cmdlet์— ๋ผ์ด๋ธŒ .NET ๊ฐœ์ฒด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

SSH๋กœ JEA๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด ๊ฒฐ๊ตญ WinRM์˜ ํ•„์š”์„ฑ์„ ๋Œ€์ฒดํ•˜๋Š” ์ผ๋ฐ˜ํ™” ๋œ ๋ฐ๋ชฌ / ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋‹น์‹œ ์šฐ๋ฆฌ๋Š” ํŒŒ์ดํ”„ ๋ผ์ธ์˜ ์ผ๋ถ€๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ  : https://github.com/gerardog/gsudo

GitHub
Windows ์šฉ Sudo-์ƒˆ ์ฝ˜์†” ํ˜ธ์ŠคํŠธ ์ฐฝ์„ ํ™•์žฅํ•˜์ง€ ์•Š๊ณ  ์ƒ์Šน ๋œ ์‹คํ–‰-gerardog / gsudo

์ฐธ๊ณ  : https://github.com/gerardog/gsudo

GitHub gerardog / gsudo Windows ์šฉ

๋” ๋‚˜์€
http://blog.lukesampson.com/sudo-for-windows

GitHub
Windows ์šฉ Sudo-์ƒˆ ์ฝ˜์†” ํ˜ธ์ŠคํŠธ ์ฐฝ์„ ํ™•์žฅํ•˜์ง€ ์•Š๊ณ  ์ƒ์Šน ๋œ ์‹คํ–‰-gerardog / gsudo
Windows ์šฉ Sudo

๋” ๋‚˜์€

์•„๋‹ˆ.

Gsudo๋Š” ๋งค๋ฒˆ ์•”ํ˜ธ๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ฉฐ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ์ด ๋ˆˆ์— ๋„๊ฒŒ ๋น ๋ฆ…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š”์ด ํ‹ฐ์ผ“๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ด€์‹ฌ์‚ฌ๋กœ ํŒ๋‹จํ•˜์—ฌ ๋ฐ›์•„ ๋“ค์—ฌ ์ ธ์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์‹œ๊ฐ„๊ณผ ์กฐ์ง์ด ๋” ๋งŽ์ด ์ฃผ์–ด์ ธ์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค). ํ˜„์žฌ์ธ์ง€๋˜๊ณ ์žˆ๋Š” ๊ธฐ์ˆ ์  ์–ด๋ ค์›€์€ ์ ๊ทน์ ์ธ ๊ฐœ์ž… ์—†์ด๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์‹์ ์œผ๋กœ์ด๋ฅผ ์—…๋ฌด๋กœ ์ธ์‹ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์˜ณ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ง€๊ธˆ ๋ช‡ ๋‹ฌ ๋™์•ˆ gsudo๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ•ญ์ƒ ์ „ํ†ต์ ์ธ Windows UAC๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ์ƒ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@majkinetor ์ด ๋ฌธ์ œ๋Š” https://github.com/PowerShell/PowerShell/issues/11343 ์—์„œ ๋””์ž์ธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋…ผ์˜๋ฅผ ์œ„ํ•ด ๋ถ„๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰