sudo Remove-Item foo.txt
์ฌ๊ธฐ์ foo.txt๋ ๋ฃจํธ๊ฐ ์์ ํฉ๋๋ค.
foo.txt
์ด ์ญ์ ๋์์ต๋๋ค.
sudo: Remove-Item: command not found
ํ ! ๋งค์ฐ ํฅ๋ฏธ๋ก์ด. ๊ทธ๋ฌ๋ ์ค์ ํ๋์ ์์๋๋ก๋ผ๊ณ ์๊ฐํฉ๋๋ค. 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 ๋ชจ๋์๋ ์ธ ๊ฐ์ง ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
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์ ๋นํด ๋ช ๊ฐ์ง ์ถ๊ฐ ๊ฐ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง ์ ๋ฐ์ ์ผ๋ก ๋งค์ฐ ๊ด๋ํ๊ณ ๋ค๋ฅธ ์คํ ์์ค ๋ผ์ด์ ์ค์ ํจ๊ป ์ฝ๊ฒ ์ฌ์ฉ๋๋ฉฐ ๋งค์ฐ ๋น์ฆ๋์ค ์นํ์ ์ ๋๋ค. ์นดํผ ๋ ํํธ ๋ผ์ด์ ์ค (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 ์ด๊ฒ์ ์ผ๋ฐ์ ์ธ ๊ด์ฌ์ฌ์ ๋๋ค. ๋๋ ์ค์ ๋ก์ด ์ค๋ ๋์ ํน์ ์ํฉ์์ ๊ด์ฐฎ๋ค๋ ๋ด ๋ชจ๋ ์ฃผ์ฅ์ ๋ด๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ฌ๊ธฐ์์ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ก์ปฌ ํธ์คํธ (์๊ฒฉ ์๋)์ ์ฐ๊ฒฐ ์ค์ ๋๋ค.
Windows 8.1 / Server 2012R2๋ถํฐ CredSSP๋ ๋ ์ด์ ์ผ๋ฐ ํ ์คํธ๋ก ์ํธ๋ฅผ ๋ณด๋ด์ง ์์ต๋๋ค.
์๊ฒฉ ๋ฐ์คํฌํฑ ํ๋กํ ์ฝ์ CredSSP์ ๋ง์ฐฌ๊ฐ์ง๋ก ํด์ ํจ์ค ๊ณต๊ฒฉ์ ์ฌ์ ํ ์ทจ์ฝํ๋ฏ๋ก CredSSP์ ๋ํด ๊ฑฑ์ ํ๋ ๊ฒฝ์ฐ RDP์ ๋ํด์๋ ๊ฑฑ์ ํด์ผํฉ๋๋ค. (๋ฌผ๋ก RDP Restricted Admin ๋ชจ๋ ๋๋ ์๋ก์ด "Credential Guard"๊ฐ ์์ต๋๋ค.)
์ถ์ :์ด ๊ธฐ์ฌ๋ PowerShell ๋ณด์์ ๋ํ ์ฐธ์กฐ ์๋ฃ๊ฐ๋์์ต๋๋ค (๊ทธ๋ฆฌ๊ณ Credential Guard์ ๋ํด ๋ฐฐ์ ๋ ๊ณณ์ ๋๋ค). ์ ๊ทน ์ถ์ฒํฉ๋๋ค.
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 ๋ฐ ๋ก๊ทธ์ธ ๋ฐ์ด๋๋ฆฌ์ ์กฐํฉ์ด ํ์ํฉ๋๋ค.
๋ค์์ ์ํํด์ผํฉ๋๋ค.
์คํ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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
๊ทธ๋ฌ๋ ํธ์ถ ๋ช
๋ น์ ์ ์ฒด ์ธ์
์ ์์น ๋ ์ปจํ
์คํธ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ค์ํ์ง ๊ถ๊ธํฉ๋๋ค. ๋ค๋ฅธ ์
ธ์์ 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)์์ ๋ง ๊ทธ๋๋ก์ด ์์ ์ ์ํํ๋ ์ ์ผํ ๋ฐฉ๋ฒ ์ ์ฌ๊ธฐ์์ ๋ณด์ฌ ์ฃผ๋ ค๊ณ ์๋ํ ์๋น์ค์ ํด๋ผ์ด์ธํธ์ ๋๋ค.
๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ ์์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ชจ๋ ๊ฐ๋ฅ์ฑ์ ์ดํด ๋ณด์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋๊ตฐ๊ฐ๋ ๋ง์ ์ผ์ํด์ผํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ์ผ๋จ 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 ๋ง ๋ฐ์ํฉ๋๋ค.
๋ค์ ์ค ํ๋๋ ์์ธ์ ๋๋ค.
@ 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 ๋ ๋์ ๋์ ๋๋ ์ง์ ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ๊ฐ๊น์ด ์ฅ๋์ ์ธ ๋ฒ์งธ ํ๋กํ ์ฝ์ ์ํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋ฏฟ๊ธฐ์ง ์์ต๋๋ค. ๋๋ฌด ๋ง์ ์์ (์ค๋๋ ์์คํ ๊ณผ์ ํธํ์ฑ์ ์ ์งํด์ผ ํ ํ์)์ ๋๋ค.
๋ ๋ค ๋ชจ๋ ํ๋ซํผ์์ ์๋ํ๋ฏ๋ก ๋ ์๋ฃจ์ ์ค ํ๋๋ฅผ ์ถ์งํด์ผํฉ๋๋ค.
๋ฐ๋ผ์ powershell remoting์ด ์ด๋ฏธ ์กด์ฌํ๋ฏ๋ก (๋ํ ์ด๋ฏธ ssh๋ณด๋ค ์๋ํ๋ฏ๋ก) ํด๋น ์๋ฃจ์ ์ ์ฐ์ ์์๋ฅผ ์ง์ ํด์ผํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๊ตฐ๊ฐ๋ ๋ฃจํ๋ฐฑ ์์น์ด ์๋์ ์ผ๋ก ์ ๊ฑฐ ๋ CVE๋ฅผ ์ฐธ์กฐํ๊ธฐ๋ํ์ต๋๋ค.
ํ์ธํ ์ ์์ต๋๋ค. CVE๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฃจํ๋ฐฑ์ ๋นํ์ฑํ ํ ์ ์์ง๋ง ์ ํ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
https://github.com/PowerShell/PowerShell/issues/3874#issuecomment -510715727๋
@iSazonov : ์๋ํ์ง ์์ต๋๋ค. ๋ฎ์ ๊ถํ ์ก์ธ์ค ํ ํฐ ๋ง ์ ๊ณตํ๊ณ ์์น ๋ ์ก์ธ์ค ํ ํฐ (์ : Mandatory Label\High Mandatory Level
)์ ์ ๊ณตํ์ง ์์ต๋๋ค. TrustedHosts๊ฐ ๋๋ฅผ ์ํด *
๋ก ์ค์ ๋์ด ์์ด๋ ๋ฎ์ ๊ถํ์ powershell์์ ๊ด๋ฆฌ ๊ถํ์ ์ป์ง ๋ชปํฉ๋๋ค. ๋ก๊ทธ์จ ํ ํฐ์ Enter-PSSession ์ดํ์๋ ํญ์ ๋ํ ํ ์ ํ์
๋๋ค.
์ค์ ๋ก , ์๋์, ๋ค๋ฅธ ์์คํ
์์ uac๊ฐ ๋นํ์ฑํ๋์๋ค๋ "์ก์ธ์ค ๊ฑฐ๋ถ"๊ฐ ํญ์ ๋ฐ์ํฉ๋๋ค.Enter-PSSession localhost -ScriptBlock {}
์์ง๋ง ์๊ฒฉ ์ฆ๋ช
์ ์ ๋ฌํ๋ฉด "์ก์ธ์ค ๊ฑฐ๋ถ"๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ์ง๋ง ์ด์ 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์ ํตํฉํ๊ณ ๋ณด์ ๊ท์ ์ ์ค์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ณจ์นซ๊ฑฐ๋ฆฌ์ ๋๋ค.
๊ทธ๊ฒ์ ๋๊ตฌ์๊ฒ๋ ๋์์ด๋์ง ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ถ๋ฌ๋ด๋ ค๋ฉด :
์ฃ์กํฉ๋๋ค. ๊ธฐ๋ฅ์ด ์๋ ๋ฐฑ๋์ด์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๋น์ ์ด์ธ์ ์ฌ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ํ ๋ชจํธ์ฑ์ ํตํ ๋ณด์์ ๊ณผ๊ฑฐ์๋ ํจ๊ณผ๊ฐ ์์์ต๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ํ์ฌ ๊ตฌํ๋์ง ์์์ผ๋ฉฐ ๋ธ๋ก์ปค ์๋น์ค๊ฐ ํ์ํฉ๋๋ค.
@ 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 ํ์ฑํ์ ์๋ ค์ง ๋ถ์ฐ๋ฌผ ์ผ๋ฟ์
๋๋ค.
PowerShellPowerShell์ ์ํฅ์์ฃผ๋ 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 ์ฌ์ฉ์๋ฅผ ์ฑํํ๋ ๊ฒ์
๋๋ค.
๋ฐ๋ผ์ ๊ธฐ๋์น๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ตฌํ ์ธ๋ถ ์ ๋ณด :
@ mklement0 ๋๋ ๋น์ ์ด ๋ณดํต ๋๋จํ ์ผ์ ์ฌ๊ธฐ์์ํ๋ ๊ฒ์ด ๊ถ๊ธํฉ๋๋ค :-) ๋น์ ์ ๋๋ฅผ ์๋๋ก ๊ฐํํฉ๋๋ค :-)
์ ๋ฌ ๋ ๋ช ๋ น์ผ๋ก powershell ์ธ์คํด์ค๋ฅผ ์์ํ๋ ๊ถํ์ด ํ์ํ Windows ๋ฐ์ด๋๋ฆฌ๋ฅผ ์์ฑํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ ๋๋ก ์๋ํ๋ ค๋ฉด ์ฝ์ ๋ชจ๋ ์ฑ์ด์ด์ผํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Linux์ ๊ฒฝ์ฐ ์ ๊ณต๋ ๋ช ๋ น์ผ๋ก powershell ์ธ์คํด์ค๋ฅผ ์์ํ๋ ๊ถํ์ด ํ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ด๊ฒ์ด ์ด๋ก ์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ฒ๋ผ ์ค์ ๋ก ์๋ํ๋ฉด powershell์ด โโ์์น ๋ ๊ถํ์ผ๋ก ์์๋๊ณ ๋ช ๋ น์ ์คํ ํ ํ ์ข ๋ฃ๋ฉ๋๋ค.
์ ๋ฌ ๋ ๋ช ๋ น์ผ๋ก powershell ์ธ์คํด์ค๋ฅผ ์์ํ๋ ๊ถํ์ด ํ์ํ Windows ๋ฐ์ด๋๋ฆฌ๋ฅผ ์์ฑํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ ๋๋ก ์๋ํ๋ ค๋ฉด ์ฝ์ ๋ชจ๋ ์ฑ์ด์ด์ผํฉ๋๋ค.
Windows API๊ฐ์ด๋ฅผ ๋ฐฉ์งํ๊ณ ์ฝ์ ์ฑ์ด ์ ์ฐฝ์์ ์ด๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๊ฐ๋ฅํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค.
๋ช ์ฌํด์ผ ํ ํ ๊ฐ์ง๋ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๊ตฌํ ๋๋ ์๊ด์์ด ํญ์ ์์น ๋ ํ๋ก์ธ์ค๋ก์ ํ๋ก์ธ์ค ํ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ํ์ดํ ๋ผ์ธ์ ํญ์ ์ญ ์ง๋ ฌํ ๋ ๊ฐ์ฒด๊ฐ ์์ผ๋ฉฐ ์ด๋ฌํ ์ ํ์ด ์ ์ฉ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ๋ฌธ์ ๊ฐ๋์ง ์์ง๋ง cmdlet์ ๋ผ์ด๋ธ .NET ๊ฐ์ฒด๊ฐ ํ์ํ ๊ฒฝ์ฐ ์๋ํ์ง ์์ต๋๋ค.
SSH๋ก JEA๋ฅผ ์ง์ํ๋ ค๋ฉด ๊ฒฐ๊ตญ WinRM์ ํ์์ฑ์ ๋์ฒดํ๋ ์ผ๋ฐํ ๋ ๋ฐ๋ชฌ / ์๋น์ค๊ฐ ํ์ํฉ๋๋ค. ๊ทธ ๋น์ ์ฐ๋ฆฌ๋ ํ์ดํ ๋ผ์ธ์ ์ผ๋ถ๋ฅผ ๋์ด๊ธฐ ์ํด ๊ทธ๊ฒ์ ์ฌ์ฉํ์ฌ ํ๊ฐํ ๊ฒ์ ๋๋ค.
์ฐธ๊ณ : https://github.com/gerardog/gsudo
GitHubWindows ์ฉ Sudo-์ ์ฝ์ ํธ์คํธ ์ฐฝ์ ํ์ฅํ์ง ์๊ณ ์์น ๋ ์คํ-gerardog / gsudo
์ฐธ๊ณ : https://github.com/gerardog/gsudo
GitHub gerardog / gsudo Windows ์ฉ
๋ ๋์
http://blog.lukesampson.com/sudo-for-windows
GitHubWindows ์ฉ Sudo-์ ์ฝ์ ํธ์คํธ ์ฐฝ์ ํ์ฅํ์ง ์๊ณ ์์น ๋ ์คํ-gerardog / gsudo
Windows ์ฉ Sudo
๋ ๋์
์๋.
Gsudo๋ ๋งค๋ฒ ์ํธ๋ฅผ ๋ฌป๋ ๋ฉ์์ง๋ฅผ ํ์ํ์ง ์์ผ๋ฉฐ ์ค์น ๋ฐ ์ฌ์ฉ์ด ๋์ ๋๊ฒ ๋น ๋ฆ ๋๋ค.
์ด ๋ฌธ์ ๋์ด ํฐ์ผ๋ฟ๋ง ์๋๋ผ ๊ด์ฌ์ฌ๋ก ํ๋จํ์ฌ ๋ฐ์ ๋ค์ฌ ์ ธ์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค (์๊ฐ๊ณผ ์กฐ์ง์ด ๋ ๋ง์ด ์ฃผ์ด์ ธ์ผ ํจ์ ์๋ฏธํฉ๋๋ค). ํ์ฌ์ธ์ง๋๊ณ ์๋ ๊ธฐ์ ์ ์ด๋ ค์์ ์ ๊ทน์ ์ธ ๊ฐ์ ์์ด๋ ํด๊ฒฐ๋์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ณต์์ ์ผ๋ก์ด๋ฅผ ์ ๋ฌด๋ก ์ธ์ํ์ง ์๋ ๊ฒ์ ์ณ์ง ์์ต๋๋ค.
๋๋ ์ง๊ธ ๋ช ๋ฌ ๋์ gsudo๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ํญ์ ์ ํต์ ์ธ Windows UAC๋ก ๋์๊ฐ๋ ๊ฒ์ ์์ํ ์ ์์ต๋๋ค.
@majkinetor ์ด ๋ฌธ์ ๋ https://github.com/PowerShell/PowerShell/issues/11343 ์์ ๋์์ธ์ ๋ํ ์ถ๊ฐ ๋ ผ์๋ฅผ ์ํด ๋ถ๋ฆฌ๋์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Windows์์๋ cmdlet์ ๋ค๋ฅธ ์ฌ์ฉ์ ๋๋ ์น๊ฒฉ ๋ ๊ถํ์ผ๋ก ์คํํ ์์๋ ์ ์ฌํ ๊ธฐ๋ฅ๊ณผ ์ด์ ๊ฐ๋ฅํ ์คํฌ๋ฆฝํธ์ ์์กด ํ ์์๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ข์ต๋๋ค. ์ด๋ฅผ ์ํด RFC๊ฐ ํ์ํ ์ ์์ต๋๋ค.