5 Windows ทางเลือกแทนคำสั่ง Linux sudo

หากคุณเคยใช้Linuxหรือรู้จักใครที่ใช้Linuxคุณอาจเคยได้ยินคำสั่ง sudo คำสั่งเป็นส่วนประกอบที่สำคัญสำหรับการ กระจาย Linux ทุกๆ ตัว และสิ่งที่ทำคือให้คุณเรียกใช้คำสั่งในฐานะผู้ใช้อื่น โดยเฉพาะอย่างยิ่งผู้ใช้รูท ในลีนุกซ์รุ่น(Linux) บางรุ่น คุณสามารถเข้าสู่ระบบในฐานะผู้ใช้รูทได้โดยใช้ คำสั่ง suแต่สิ่งนี้ถือว่ามีความเสี่ยงสูงและไม่มีใครทำ

ที่จริงแล้วมันอันตรายมากที่มันถูกปิดใช้งานโดยค่าเริ่มต้นบนลีนุกซ์(Linux)รุ่นเช่นUbuntu คุณต้องใช้ คำสั่ง sudo แทน หากคุณต้องการเรียกใช้คำสั่งในฐานะผู้ใช้รูท แล้ววินโดว์(Windows)ล่ะ? น่า เสียดาย(Well)ที่คนส่วนใหญ่เข้าสู่ระบบWindowsในฐานะAdministratorsซึ่งเหมือนกับผู้ใช้รูท ใน Linux อย่างไรก็ตามMicrosoftได้พยายามลดผลกระทบที่เป็นอันตรายของการเข้าสู่ระบบในฐานะผู้ดูแลระบบโดยเปิด ใช้ งานUser Account Control  หรือUAC

ด้วยวิธีนี้ แม้ว่าผู้ใช้จะมีสิทธิ์ระดับผู้ดูแลระบบ แอปพลิเคชันที่ทำงานภายใต้บัญชีนั้นจะไม่สืบทอดสิทธิ์เหล่านั้น เว้นแต่จะได้รับอนุญาตจากผู้ใช้ด้วยตนเอง ซึ่งจะช่วยป้องกันมัลแวร์และสปายแวร์ไม่ให้ติด ผู้ใช้ Windowsที่เข้าสู่ระบบในฐานะผู้ดูแล(Administrator)ระบบ

ดังนั้นในขณะที่ ผู้ใช้ Linuxมีคำสั่ง sudo ผู้ใช้ Windowsมีอะไรบ้าง มี(Are)ทางเลือกอื่นที่ ผู้ใช้ Windowsสามารถใช้เพื่อเรียกใช้คำสั่งที่มีสิทธิ์ระดับสูงหรือไม่? มีคำสั่ง sudo สำหรับWindowsหรือไม่ ในบทความนี้ ฉันจะพูดถึงทางเลือกห้าทางแทนคำสั่ง sudo สำหรับผู้ใช้Windows

หมายเหตุ: เครื่องมือเหล่านี้บางตัวค่อนข้างเก่าแล้ว ดังนั้นอาจใช้หรือไม่ทำงานกับ Windows เวอร์ชันล่าสุด (Note: Some of these tools are quite old now, so they may or may not work with the latest versions of Windows. )

คำสั่ง Windows Runas

Windows มี คำสั่ง runasซึ่งเป็นคู่โดยตรงกับ sudo บนLinux เมื่อใช้คำสั่ง runas คุณสามารถรันสคริปต์ โปรแกรม หรือคำสั่งในฐานะผู้ใช้อื่นหรือในฐานะผู้ดูแลระบบ ไวยากรณ์แบบเต็มสำหรับคำสั่ง runas คือ:

runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program

ถ้าคุณต้องการเปิดพร้อมท์คำสั่งการดูแลระบบ คุณสามารถพิมพ์ดังต่อไปนี้:

runas /noprofile /user:Administrator cmd

คำสั่ง runas

/noprofile จะไม่โหลดโปรไฟล์ผู้ใช้ปัจจุบัน คุณสามารถลบออกได้หากต้องการเข้าถึงตัวแปรสภาพแวดล้อมของผู้ใช้ หากคุณต้องการเปิดไฟล์ข้อความโดยใช้Notepadที่มีสิทธิ์ของผู้ดูแลระบบ คุณสามารถใช้คำสั่งนี้:

runas /user:Administrator "notepad my_file.txt"

คุณสามารถชำระเงินที่หน้า Technet(Technet page)บน runas เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้งาน

โปรดทราบว่าเมื่อใช้คำสั่ง runas หากคุณติดตั้งโปรแกรมหรือเปลี่ยนแปลงการตั้งค่า ฯลฯ การเปลี่ยนแปลงจะเกิดขึ้นกับบัญชีผู้ใช้ที่คุณเรียกใช้คำสั่ง ตัวอย่างเช่น สมมติว่าคุณมีผู้ใช้ X ซึ่งเป็นผู้ใช้ปกติ และผู้ใช้ Y ซึ่งเป็นผู้ดูแลระบบ หากคุณเข้าสู่ระบบ X แล้วเรียกใช้ runas โดยใช้ ข้อมูลประจำตัวของ ผู้ดูแลระบบ(Administrator)การเปลี่ยนแปลงจะมีผลกับการ ตั้งค่าของ ผู้ดูแลระบบ(Administrator)ไม่ใช่ผู้ใช้ X

ดังนั้น หากคุณติดตั้งแอปพลิเคชันโดยคลิกขวาที่ ไฟล์ EXEและเลือกRun as Administrator แอปพลิเคชัน นั้นจะถูกติดตั้งลงใน โปรไฟล์ผู้ใช้ของผู้ ดูแลระบบ(Administrator) ใน ตัว ไม่ใช่ที่คุณลงชื่อเข้าใช้ หากคุณต้องการสิทธิ์ยกระดับอย่างแท้จริง เช่น sudo โดยไม่มีปัญหาโปรไฟล์ ให้ตรวจสอบทางเลือกถัดไปด้านล่าง

Sudo สำหรับ Windows – Sourceforge

Sudo สำหรับ Windows(Sudo for Windows)เป็นโปรแกรมฟรีที่คุณสามารถติดตั้งได้ ซึ่งจะให้ประสบการณ์เดียวกันกับคำสั่ง sudo บนLinuxสำหรับWindows ข้อแตกต่างเพียงอย่างเดียวคือSudoสำหรับWindows "รักษาโปรไฟล์ของผู้ใช้และความเป็นเจ้าของวัตถุที่สร้างขึ้น"(“preserves the user’s profile and ownership of created objects”)ตามที่นักพัฒนาระบุไว้ สิ่งนี้มีประโยชน์จริง ๆ หากคุณต้องการใช้การอนุญาตระดับสูงสำหรับการติดตั้งแอพหรือเปลี่ยนแปลงตำแหน่งของผู้ใช้เช่นMy Documentsเป็นต้น

จะให้สิทธิ์ผู้ดูแลระบบแก่คุณ แต่จะเก็บการเปลี่ยนแปลงทั้งหมดในโปรไฟล์ปัจจุบันแทนบัญชีที่คุณใช้เพื่อเรียกใช้คำสั่งด้วย โปรแกรมต้องใช้ .NET เวอร์ชัน 2.0 ซึ่งคุณไม่สามารถดาวน์โหลดทีละรายการได้ ในการรับ 2.0 คุณต้องติดตั้ง.NET Framework 3.5ซึ่งรวมถึง 2.0

เมื่อคุณติดตั้งSudoสำหรับWindowsแล้ว คุณต้องเพิ่มบัญชีผู้ใช้ที่คุณอนุญาตให้มีสิทธิ์ระดับสูงสำหรับกลุ่มเฉพาะที่สร้างโดยโปรแกรมที่เรียกว่าS udoers คลิกขวาที่My Computer หรือ PC นี้ แล้วคลิกManage จากนั้นขยายผู้ใช้และกลุ่ม(Users and Groups)แล้วคลิกกลุ่ม (Groups)คุณควรเห็นชื่อSudoers

sudousers

ดับเบิลคลิกที่Sudoersและคลิกที่ปุ่มAdd

เพิ่มสมาชิก

ในกล่องโต้ตอบถัดไป ให้คลิก ปุ่ม ขั้นสูง(Advanced) จาก นั้นคลิกค้นหาเดี๋ยวนี้ (Find Now)ซึ่งจะแสดงรายการผู้ใช้และกลุ่มทั้งหมดในระบบ คลิกสองครั้ง(Double-click)ที่ผู้ใช้ที่คุณต้องการเพิ่ม

เพิ่มผู้ใช้ในกลุ่ม

ทำซ้ำขั้นตอนนี้สำหรับผู้ใช้จำนวนเท่าใดก็ได้ที่คุณต้องการเพิ่ม จากนั้นคลิกตกลงและคุณควรเห็นสมาชิกที่แสดงอยู่ใน กล่องรายการ สมาชิก(Members) ที่ แสดงด้านบน คลิกตกลง(Click OK)และตอนนี้คุณควรจะสามารถใช้ sudo GUIและคำสั่งได้ หากคุณคลิกขวาที่โปรแกรม คุณจะเห็นตัวเลือกSudo

sudo คลิกขวา

คุณยังสามารถเปิดพรอมต์คำสั่งแล้วพิมพ์ sudo เพื่อเรียกใช้คำสั่งด้วยสิทธิ์ระดับสูง

พรอมต์คำสั่ง sudo

โดยรวมแล้วมันค่อนข้างดีและใช้งานได้ดีมาก อย่างไรก็ตาม โปรดทราบว่าโปรแกรมนี้มีประโยชน์มากสำหรับการเรียก(launching)ใช้โปรแกรมหรือกระบวนการต่างๆ โดยการคลิกขวาหรือผ่านทางพรอมต์คำสั่ง แต่ไม่ได้มีไว้สำหรับเรียกใช้แอปบรรทัดคำสั่ง ตัวอย่างเช่น หากคุณต้องการทำ sudo mkdir “c:Program Files ew” สิ่งนี้จะไม่ทำงานโดยใช้SudoสำหรับWindows สำหรับฟังก์ชันนั้น มีโปรแกรมอื่นที่เรียกว่าสิ่งเดียวกัน แต่โดยนักพัฒนาอื่น อ่าน(Read)ด้านล่าง

Sudo สำหรับ Windows – ลุค แซมป์สัน

มีนักพัฒนารายอื่นที่เขียนSudo สำหรับ Windows(Sudo for Windows) อีกราย ที่ให้คุณรันแอปบรรทัดคำสั่งได้เช่นกัน กลับไปที่ตัวอย่างเกี่ยวกับการสร้างโฟลเดอร์ใหม่ใน C:Program Files คุณไม่สามารถทำได้โดยค่าเริ่มต้น

powershell mkdir

ด้านบนฉันกำลังใช้PowerShellแต่คุณจะได้รับข้อผิดพลาดเดียวกันโดยใช้พรอมต์คำสั่งด้วย อย่างไรก็ตาม เมื่อคุณติดตั้งSudoสำหรับWindowsเพียงเพิ่มคำว่า sudo ที่ด้านหน้าของคำสั่ง และมันทำงานได้อย่างสมบูรณ์โดยไม่มีข้อผิดพลาด!

ในการติดตั้ง คุณต้องเปิดPowerShellแล้วพิมพ์คำสั่งต่อไปนี้ตามลำดับ:

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

set-executionpolicy unrestricted -s cu -f

scoop install sudo

หากทุกอย่างทำงานได้ดี คุณจะเห็นผลลัพธ์ต่อไปนี้ในPowerShellหลังจากแต่ละคำสั่ง:

ติดตั้งสกู๊ป sudo

แค่นั้นแหละ! ตอนนี้คุณสามารถเริ่มพิมพ์คำสั่งและเพิ่ม sudo ข้างหน้าได้ สิ่งเดียวที่น่ารำคาญเกี่ยวกับโปรแกรมนี้คือ หน้าต่าง UACยังคงปรากฏขึ้นและคุณคลิกใช่(Yes)เพื่อให้มันทำงาน แม้จะมีความรำคาญเล็กน้อย แต่ผลประโยชน์ก็คุ้มค่า

ยกระดับ

Elevateเป็นโปรแกรมที่ทำงานร่วมกับUACและใช้งานไม่ได้เหมือนกับ sudo ทุกประการ ด้วยElevateมันจะเปลี่ยนผู้ใช้ที่รันเป็นAdministratorเช่นเดียวกับคำสั่ง runas อย่างไรก็ตาม มันมีประโยชน์สำหรับการทำงานในบรรทัดคำสั่งหรือกับไฟล์แบตช์

ยกระดับ

วัตถุประสงค์หลักของการยกระดับไม่ใช่เพื่อเลี่ยงUACแต่เพื่อเริ่มกระบวนการในสถานะยกระดับจากเชลล์ที่ไม่ได้ยกระดับแล้วดำเนินการต่อตามปกติแม้หลังจากคำสั่งเสร็จสิ้น Elevateมีประโยชน์สำหรับการเขียนสคริปต์ เนื่องจากคุณไม่ต้องกังวลกับการพยายามเขียนสคริปต์ให้คลิกขวาทั้งหมดและเรียกใช้พรอมต์คำสั่งในฐานะกระบวนการของผู้ดูแลระบบ(Administrator)

Elevation PowerToys สำหรับ Windows

สำหรับผู้ที่ทำงานเกี่ยวกับบรรทัดคำสั่งหรือทำงานกับสคริปต์และไฟล์แบตช์เป็นจำนวนมาก หน้าElevation PowerToys สำหรับ Windows(Elevation PowerToys for Windows)มีเครื่องมือและสคริปต์ที่มีประโยชน์ค่อนข้างน้อย

powertoys ระดับความสูง

ของเล่นพลังยกระดับสคริปต์(script elevation power toys)ถูกสร้างขึ้นเพื่อเอาชนะแง่มุมที่น่าผิดหวังของUACเมื่อพยายามยกระดับโปรแกรมจากบรรทัดคำสั่งหรือเรียกใช้สคริปต์ในฐานะผู้ดูแลระบบ

หวังว่า(Hopefully)นั่นจะเพียงพอสำหรับเครื่องมือและโปรแกรมสำหรับคุณที่จะทำให้คุณรู้สึกเหมือนกำลังใช้ sudo บนWindowsจริงๆ ไม่มีการทดแทนที่สมบูรณ์แบบสำหรับมัน แต่มีตัวเลือกค่อนข้างน้อยที่ใกล้เข้ามา หากคุณใช้อย่างอื่นเพื่อยกระดับโปรแกรม คำสั่ง หรือสคริปต์ในWindowsโปรดแจ้งให้เราทราบในความคิดเห็น สนุก!



About the author

ฉันเป็นวิศวกรซอฟต์แวร์และบล็อกเกอร์ที่มีประสบการณ์เกือบ 10 ปีในสาขานี้ ฉันเชี่ยวชาญในการสร้างบทวิจารณ์เครื่องมือและบทช่วยสอนสำหรับแพลตฟอร์ม Mac และ Windows รวมถึงการให้ความเห็นจากผู้เชี่ยวชาญในหัวข้อการพัฒนาซอฟต์แวร์ ฉันยังเป็นวิทยากรและผู้สอนมืออาชีพ โดยได้นำเสนอผลงานในการประชุมเทคโนโลยีทั่วโลก



Related posts