สิทธิ์“ ผู้ใช้” ในท้องถิ่นเพียงพอหรือไม่หรือผู้พัฒนาต้องการผู้ดูแลท้องถิ่นหรือผู้ใช้ระดับสูงขณะกำลังเข้ารหัส


17

เรามีทีมพัฒนาในต่างประเทศที่มีนิสัยไม่ดีในการติดตั้งซอฟต์แวร์ไร้สาระบนเดสก์ท็อปขององค์กร (ซึ่งไม่เกี่ยวข้องกับหน้าที่การงาน) และกำลังพิจารณาที่จะลบสิทธิ์ผู้ดูแลระบบในพื้นที่

Local Administrator หรือ Local Power ต้องการสำหรับ VS2010 หรือไม่? คุณจะรันโดยไม่มีสิทธิ์ยกระดับได้อย่างไร คุณจะเจอปัญหาอะไร


1
พบกระทู้ที่คล้ายกันมากใน SO stackoverflow.com/questions/701214/…
goodguys_activate

1
อีกเธรด (วันนี้) ที่คล้ายกันบน serverfault serverfault.com/questions/232416/…
goodguys_activate

คำตอบ:


19

โปรแกรมเมอร์ควรทำงานในฐานะผู้ใช้ที่ จำกัด ด้วยการเข้าถึงของผู้ดูแลระบบ นั่นคือโปรแกรมที่ควรจะเป็นผู้ดูแลระบบของเครื่อง แต่ในขณะที่ทำงานเขาควรเสมอใช้บัญชีผู้ใช้ที่ จำกัด

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

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

เพื่อชี้แจง:

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


5
มีบางกรณีที่จำเป็นต้องมีการเรียกใช้ในฐานะผู้ดูแลระบบ (ตัวอย่างเช่นในการดีบักปัญหาที่ปรากฏขึ้นเมื่อทำงานภายใต้ IIS แต่ไม่ได้อยู่ภายใต้การพัฒนาเว็บเซิร์ฟเวอร์เป็นต้น) แต่คุณถูกต้องสำหรับการพัฒนาในแต่ละวัน ไม่จำเป็นต้อง (และไม่ควร) ทำงานเป็นผู้ดูแลระบบ
Dean Harding

2
อีกข้อยกเว้นสำหรับ 'ใช้บัญชีผู้ใช้ที่ จำกัด เสมอ': คุณต้อง (เริ่มต้น) / หยุดบริการ
Victor Hurdugaci

3
@Victor Hurdugaci: นั่นเป็นเหตุผลที่ฉันบอกว่าการเข้าถึงแบบผู้ดูแลระบบควรจะใช้ได้ เมื่อฉันบอกว่าโปรแกรมเมอร์ควรทำงานในฐานะผู้ใช้ที่ จำกัด ฉันไม่ได้หมายความว่าพวกเขาไม่ควรเป็นผู้ดูแลเครื่องของตัวเอง
greyfade

9

นี่เป็นปัญหาทางการเมืองหรือการจัดการไม่ใช่เรื่องเทคนิค

พิจารณาการสร้างและสื่อสารกฎ "เราไม่ต้องการให้คุณติดตั้งซอฟต์แวร์ที่ไม่เกี่ยวข้องกับฟังก์ชั่นงานของคุณ" เพื่อให้หัวหน้าสามารถติดตามได้

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

ที่กล่าวไว้เว้นแต่ว่าโปรแกรมดังกล่าวผิดกฎหมายหรือไม่เป็นที่ยอมรับทางศีลธรรมเหตุใดจึงเป็นปัญหาในตอนแรก


13
+1: หากคุณไม่สามารถไว้วางใจโปรแกรมเมอร์ของคุณให้ทำงานด้วยสิทธิ์ผู้ดูแลระบบท้องถิ่นคุณจะไม่สามารถเชื่อใจโปรแกรมเมอร์ของคุณได้
Kramii

@ Kramii - ที่นี่ฉันเพิ่มช่วงเวลาอื่นที่
Anto

6

ขึ้นอยู่กับสิ่งที่คุณคาดหวังว่าพวกเขาจะพัฒนาอย่างอิสระ

บางสิ่งเช่นการกำหนดค่า IIS, การดีบักแบบรีโมท, แก้ไขการเข้าถึง GAC, ความสามารถในการเรียกใช้ MSI ของคุณเองจะได้รับผลกระทบอย่างแน่นอน หากสิ่งเหล่านี้เป็นสิ่งที่คุณคาดหวังว่าแหล่งข้อมูลจากแหล่งภายนอกจะดำเนินการอย่างอิสระฉันจะไม่ลองใช้หากไม่มีการทดสอบมากมาย

หากบุคคลภายนอกของคุณกำลังทำงานบนแอปเดสก์ท็อปพวกเขาสามารถตรวจแก้จุดบกพร่องในเครื่องคุณอาจจะได้รับปัญหาเล็กน้อย

สมมติว่าพวกเขากำลังใช้การควบคุมแหล่งที่มาคุณสามารถกำหนดตารางเวลา re-image ของเครื่องได้

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


6

ฉันต้องการสิทธิ์ของผู้ดูแลระบบในการติดตั้ง Apache บนพอร์ต 80 บน MacBook ของฉัน นอกเหนือจากนั้นไม่มีเหตุผลที่ฉันไม่สามารถอยู่ในเครื่องที่ถูกล็อคโดยไม่มีสิทธิ์ผู้ดูแลระบบ และฉันสามารถใช้พอร์ตที่ไม่ได้มาตรฐานได้ถ้าฉันต้องการจริงๆ จากมุมมองของทรัพยากรขององค์กรมันมีเหตุผลที่จะมีนักพัฒนาที่ไม่ได้รับสิทธิพิเศษผู้ใช้เครื่องของพวกเขา

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

ฉันชอบแบบหลังชัด แต่ฉันเห็นภูมิปัญญาของอดีต


4

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

ยิ่งไปกว่านั้นด้วย UAC ที่เพิ่มขึ้นทำให้แอปพลิเคชั่นสามารถติดตั้งได้มากขึ้นโดยไม่มีอำนาจของผู้ดูแลระบบ พวกเขาไม่ใส่สิ่งต่าง ๆ ใน HKLM พวกเขาไม่ได้แตะต้องอะไรเลยภายใต้ System32 พวกเขาวาง exe ไว้ที่ใดที่หนึ่งภายใต้โฟลเดอร์ users \ whoever และสิ่งนี้ทำให้ง่ายต่อการลบ แต่อาจไม่พูดถึงจุดที่คุณติดตั้ง " ซอฟต์แวร์ไร้สาระ "โดยที่ฉันถือว่าคุณหมายถึงเกมเครื่องเล่นเพลง ฯลฯ

หากคุณต้องการป้องกันการติดตั้งในเครื่องบางทีทางออกที่ดีที่สุดคือวิสัยทัศน์เก่าแก่ของ "เครือข่ายคือคอมพิวเตอร์" จากยุค Java ยุคแรก ๆ ทุกคนทำงานได้จากระบบควบคุมเวอร์ชันและต้องเช็คอินหรือพักแต่ละคืนก่อนกลับบ้าน อีเมลอาศัยอยู่ในระบบคลาวด์ไม่ได้อยู่ในเครื่องพัฒนา ฯลฯ จากนั้นเมื่อใดก็ตามที่คุณต้องการให้คุณสามารถจำลองภาพเครื่อง dev ของพวกเขา (ยิ่งง่ายกว่าหากเป็นเวอร์ชวล) และผู้ที่ไม่มีสิ่งใดติดตั้งเพิ่มเติมจะไม่สังเกตเห็น ชนิดของการทำความสะอาดตู้เย็นสำนักงานในช่วงสุดสัปดาห์

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


3

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


1

มันขึ้นอยู่กับสิ่งที่คุณกำลังเขียนซอฟต์แวร์สำหรับ

หากซอฟต์แวร์ของคุณไม่จำเป็นต้องก้าวก่ายระบบของคุณก็ไม่จำเป็นต้องมีอำนาจของผู้ดูแลระบบ


ทางออกที่ดีกว่า: เพื่อจุดประสงค์ในการติดตั้ง / ทดสอบอาจต้องการใช้ VM หรือคอมพิวเตอร์ห้องปฏิบัติการทดสอบ


0

ฉันเห็นสองวิธีในการนี้ หนึ่งคือให้ทุกคนทำงานจากแล็ปท็อปซึ่งพวกเขาจะต้องหันไปหาผู้ดูแลระบบเมื่อพวกเขากลับบ้าน เมื่อผู้ดูแลระบบมีแล้วพวกเขาจะติดอยู่ในซีดีที่จะทำการอิมเมจเครื่องอีกครั้ง เมื่อมันถูก re-imaged มันไปบนหิ้งซึ่งจะมีให้กับคนต่อไปที่ต้องการหนึ่ง ตรวจสอบให้แน่ใจว่าเครื่องจักรทุกเครื่องเหมือนกันดังนั้นคุณจึงไม่ต้องวุ่นวายกับคนอื่นที่มองหา "ดี"

อีกอย่างที่ฉันเห็นคือให้ทุกคนบู๊ตจากเซิร์ฟเวอร์ Citrix เครื่องไม่มีที่จัดเก็บในตัวเครื่องพวกเขาเพียงแค่โหลดภาพมาตรฐานจากเครือข่ายและเรียกใช้จากนั้น สิ่งนี้จะทำงานได้ดีขึ้นหากคุณมี "ประเภท" ของผู้ใช้ที่ต้องการการกำหนดค่าที่แตกต่างกัน (เช่นนักพัฒนา UI มีภาพที่มี Silverlight ผู้พัฒนา WCF มี IIS และ SQL Server เป็นต้น)

แต่ด้วยสิ่งที่กล่าวมาฉันคิดว่า Thorbjorn [sic] กระแทกเล็บบนหัว: นี่เป็นปัญหาการจัดการและอาจจะไม่ได้รับการแก้ไขอย่างเพียงพอด้วยวิธีแก้ปัญหาทางเทคนิค

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