Setuid เทียบเท่ากับ Windows หรือไม่


1

ฉันต้องการให้สิทธิ์โปรแกรมแก่ผู้ใช้ในการดำเนินการ มีความเทียบเท่า setuid บน Windows (ควรใช้ Windows 7 หรืออย่างน้อย Windows post-XP)?

ถ้าฉันต้องการให้โปรแกรมมีสิทธิ์มากกว่าผู้ใช้ที่ดำเนินการ (ตัวอย่างเช่นฉันต้องการให้โปรแกรมเขียนลงโปรแกรมในขณะที่ฉันไม่ต้องการให้ผู้ใช้สามารถ)


ยินดีต้อนรับสู่ Super User คำถามนี้ค่อนข้างคลุมเครือ คุณช่วยเพิ่มรายละเอียดที่จะช่วยให้เราเข้าใจสิ่งที่คุณกำลังพยายามที่จะบรรลุและสิ่งที่คุณได้ลองไปแล้ว หากต้องการคำตอบโดยละเอียดคุณควรทราบว่าคุณใช้ Windows รุ่นใดอยู่
CharlieRB

2
Sticky ไม่ได้ทำสิ่งที่คุณแนะนำ (มันไม่มีการเปลี่ยนแปลงเกี่ยวกับสิทธิพิเศษที่เรียกใช้งานได้ฉันคิดว่าคุณกำลังคิด SetUID แต่กลับกัน) Windows จะดำเนินการโปรแกรมด้วยชุดสิทธิ์ของบัญชีที่เรียกใช้กระบวนการโดยยกเลิก
Frank Thomas

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

@ Frank Thomas คุณพูดถูกจริงๆฉันสร้างความสับสนอย่างมากระหว่าง Setuid และ Sticky bit ฉันแก้ไขคำตอบของฉันขอบคุณสำหรับการชี้ให้เห็น
Kii

ฉันต้องการให้สิทธิ์โปรแกรมแก่ผู้ใช้ในการดำเนินการ - สิ่งนี้จะเกิดขึ้นโดยอัตโนมัติตามค่าเริ่มต้น คำถามของคุณจริง ๆ แล้วยังไม่ชัดเจนสำหรับเหตุผลนั้น ถ้าฉันต้องการให้โปรแกรมมีสิทธิ์มากกว่าผู้ใช้ที่ดำเนินการ - คุณเรียกใช้โปรแกรมในฐานะผู้ใช้อื่น คุณต้องให้ข้อมูลการรับรองความถูกต้องสำหรับผู้ใช้ด้วยเหตุผลที่ชัดเจน
Ramhound

คำตอบ:


3

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

เพื่อบังคับให้โปรแกรมดำเนินการในฐานะผู้ใช้ที่แตกต่างอย่างสิ้นเชิงเช่นเดียวกับที่ SetUID ทำเช่นนั้น Microsoft ได้จัดทำ runas คำสั่งซึ่งคุณสามารถใช้เพื่อเรียกใช้ปฏิบัติการภายใต้ข้อมูลประจำตัวของผู้ใช้ที่แตกต่างกัน

นอกจากนี้ในระบบที่เปิดใช้งาน UAC เช่น Windows 7 คุณสามารถกด Shift + คลิกขวาที่ไฟล์เรียกทำงานเพื่อเรียกใช้โปรแกรมภายใต้ผู้ใช้ที่แตกต่างกันและเรียกใช้สิทธิ์ผู้ดูแลระบบของผู้ใช้หากจำเป็น


โปรดทราบคำตอบด้านล่างนี้เกี่ยวข้องกับคำถามดั้งเดิมเกี่ยวกับ Sticky

เพื่อตอบคำถามของคุณโดยตรงใช่และไม่ใช่ หนึ่งสามารถเลียนแบบฟังก์ชั่น แต่แอปพลิเคชันจะแตกต่างอย่างสิ้นเชิง

ฉันคิดว่าคุณอาจสับสนกับ Sticky bit ด้วยสิทธิ์ยูนิกซ์พิเศษอื่น ๆ SetUID และ SetGID ซึ่งทั้งสองอย่างนี้มีผลต่อวิธีการใช้งานแอปพลิเคชันที่เกี่ยวข้องกับผู้ใช้ที่เรียกใช้กระบวนการ แต่ Sticky ไม่ได้

Sticky จะไม่อนุญาตให้ผู้ใช้อื่นนอกจากรูทหรือเจ้าของผู้ใช้ลบหรือเปลี่ยนชื่อไฟล์แม้ว่าผู้ใช้มีสิทธิ์ในการเขียนและสามารถแก้ไขไฟล์ได้

ในหน้าต่างสิทธิ์ขั้นสูง (จากคุณสมบัติของวัตถุ - & gt; แท็บความปลอดภัย - & gt; ขั้นสูง) คุณสามารถเพิ่มหรือแก้ไข สิทธิ์ สำหรับ CREATOR OWNER "ผู้ใช้" และให้สิทธิ์ Delete และ Delete subfolders and files. จากนั้นสำหรับเอนทิตีอื่น ๆ ทั้งหมดใน ACL ให้เพิกถอน (แต่ไม่ปฏิเสธ) สิทธิ์เหล่านั้นเหมือนกัน

enter image description here

นี่จะอนุญาตให้ผู้ใช้ทุกคนที่มีการเขียนเพื่อสร้าง / แก้ไขไฟล์ใด ๆ แต่เจ้าของไฟล์เท่านั้นที่สามารถลบได้

โปรดทราบว่าวิธีการนี้มีข้อบกพร่องเช่นเดียวกับที่ Sticky มี: ผู้ใช้ที่มีสิทธิ์แก้ไขอาจเขียนทับไฟล์ด้วย 0B ซึ่งเป็นแนวคิดที่คล้ายกันในการลบไฟล์

โชคดี.


1

ใน Windows คุณไม่สามารถเรียกใช้โปรแกรมในฐานะผู้ใช้อื่นโดยไม่ทราบรหัสผ่านของผู้ใช้เป้าหมายหรือบันทึกข้อมูลนี้ไว้ในเครื่องหนึ่งครั้ง


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

คุณสามารถเริ่มโปรแกรมกับผู้ใช้รายอื่น (ถ้าคุณพักตัวอย่าง SHIFT + right-click จากนั้นเลือก Run as different user หรือเพียงแค่ Run as administrator ) เพื่อให้สิทธิ์ผู้ใช้รายอื่นที่มีสิทธิ์ระดับผู้ดูแลระบบของเครื่องยิ่งใหญ่ยิ่งขึ้น

ใช้ runas คำสั่ง CMD สามารถทำสิ่งนี้ได้และสามารถตั้งค่าในช็อตคัตเพื่อทำการล็อกอินโดยอัตโนมัติ

เอกสารที่นี่

ตัวอย่าง:

runas /user:.\localadmin /savecred notepad.exe

/savecred พารามิเตอร์บอกคำสั่งว่ารหัสผ่านผู้ใช้ถูกบันทึกไว้ในเครื่องแล้วและไม่จำเป็นต้องใช้รหัสผ่านในการทำงาน รหัสผ่านจะต้องถูกเก็บไว้ในตัวจัดการข้อมูลประจำตัวในแผงควบคุม

โปรดทราบว่านี่จะโหลดโปรแกรมโดยใช้โปรไฟล์ของผู้ใช้รายอื่น ตัวอย่างโปรแกรมที่บันทึกการตั้งค่าใน AppData จะโหลดจากผู้ใช้ที่เรียกใช้งานโปรแกรม

อย่างไรก็ตามบริการ Windows สามารถเรียกใช้ในฐานะผู้ใช้อื่นได้ สิ่งนี้สามารถทำได้

Services.msc คอนโซล & gt; เลือกบริการ & gt; คุณสมบัติ & gt; เข้าสู่ระบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.