Reichen lokale Benutzerrechte aus, oder benötigen Entwickler beim Codieren einen lokalen Administrator oder einen Hauptbenutzer?


17

Wir haben ein Offshore-Entwicklungsteam, das die schlechte Angewohnheit hat, Unsinnssoftware auf Unternehmensdesktops zu installieren (was nichts mit seiner Auftragsfunktion zu tun hat), und daher erwägt, die lokalen Administratorrechte zu entfernen.

Ist für VS2010 ein lokaler Administrator oder ein lokaler Hauptbenutzer erforderlich? Wie läuft man ohne erhöhte Rechte? Auf welche Probleme werden Sie stoßen?


1
Ein sehr ähnliches Thema wurde auf SO stackoverflow.com/questions/701214/…
goodguys_activate

1
Ein weiterer ähnlicher (heutiger) Thread auf serverfault serverfault.com/questions/232416/…
goodguys_activate

Antworten:


19

Ein Programmierer sollte als eingeschränkter Benutzer mit Administratorzugriff arbeiten. Das heißt, der Programmierer sollte der Administrator des Computers sein, aber während der Arbeit sollte er immer ein eingeschränktes Benutzerkonto verwenden.

Wenn Sie erhöhte Rechte für die Arbeit benötigen, für alles andere als für die Installation von Software, tun Sie etwas sehr Falsches. Schlimmer noch, wenn Sie als Hauptbenutzer arbeiten oder UAC-Eingabeaufforderungen oder ähnliches deaktivieren, ignorieren Sie Probleme, die Endbenutzer Ihrer Software betreffen, und zwingen sie, mit den gleichen Berechtigungen wie zuvor ausgeführt zu werden. Das ist falsch.

Dies gilt unabhängig von dem Betriebssystem, unter dem Sie arbeiten. Obwohl Windows anscheinend das einzige ist, wo es auftaucht.

Um klarzustellen:

Wenn ich sage, dass der Entwickler ein Benutzer mit eingeschränkten Rechten sein sollte, sollte er über vollständige Administratorrechte für den Computer verfügen. Wenn er jedoch seinen Code testet, sollte dies in einer Umgebung mit eingeschränkten Rechten erfolgen. Beispielsweise kann der Entwickler den Computer als Administrator ausführen, jedoch alle Tests auf einem virtuellen Computer oder mit einem eingeschränkten Benutzerkonto ausführen. Unter Linux bedeutet dies einfach, dass der Entwickler sudoZugriff hat. Unter Windows kann dies bedeuten, dass ein Konto auf Administratorebene die Benutzerkontensteuerung und andere Sicherheitsfunktionen vollständig aktiviert hat.


5
In einigen Fällen ist die Ausführung als Administrator erforderlich (z. B. zum Debuggen eines Problems, das beispielsweise bei der Ausführung unter IIS und nicht unter dem Entwicklungswebserver auftritt). Sie haben jedoch Recht, dass Sie dies für die tägliche Entwicklung tun Ich muss (und sollte) nicht als Administrator ausgeführt werden.
Dean Harding

2
Eine weitere Ausnahme für "Immer eine begrenzte Benutzerkonten verwenden": Sie müssen einen Dienst (neu) starten / stoppen
Victor Hurdugaci

3
@ Victor Hurdugaci: Deshalb sage ich, dass Administratorzugriff verfügbar sein sollte. Wenn ich sage, dass der Programmierer als Benutzer mit eingeschränkten Rechten arbeiten soll, meine ich nicht, dass er nicht der Administrator seines eigenen Computers sein soll.
greyfade

9

Dies ist eine politische oder Managementfrage, keine technische.

Überlegen Sie, ob Sie die Regel "Wir möchten nicht, dass Sie Software installieren, die für Ihre Jobfunktion nicht relevant ist" erstellen und kommunizieren, damit der Chef dementsprechend nachgehen kann.

Um dies zu unterstützen, kann der Systemadministrator jeden Computer nach einer Liste der installierten Programme fragen. Wenn Sie dies regelmäßig tun, können Sie ein kleines Programm schreiben, um zu zeigen, was installiert wurde, damit Sie sich einen schnellen Überblick verschaffen können.

Das heißt, wenn diese Programme nicht illegal oder moralisch inakzeptabel sind, warum ist dies dann überhaupt ein Problem?


13
+1: Wenn Sie Ihren Programmierern nicht vertrauen können, dass sie mit lokalen Administratorrechten ausgeführt werden, können Sie Ihren Programmierern nicht vertrauen.
Kramii setzt Monica

@ Kramii - Hier füge ich noch einen Punkt hinzu .
Anto

6

Es hängt davon ab, was Sie erwarten, dass sie sich unabhängig voneinander entwickeln.

Einige Dinge wie die IIS-Konfiguration, das Remote-Debugging, das Ändern des Zugriffs auf das GAC und die Möglichkeit, ein eigenes MSI auszuführen, wären definitiv betroffen. Wenn dies Dinge sind, von denen Sie erwarten, dass sie die ausgelagerten Ressourcen unabhängig voneinander erledigen, würde ich es ohne viele Tests nicht versuchen.

Wenn Ihre Outsourcing-Mitarbeiter an einer Desktop-App arbeiten, die sie lokal debuggen können, können Sie diese wahrscheinlich mit wenigen Problemen umgehen.

Unter der Annahme, dass sie die Quellcodeverwaltung verwenden, könnten Sie immer ein periodisches Re-Image der Maschinen planen.

Die meisten Orte, an denen ich gearbeitet habe, machen einen Großteil des ersten Falls und erwarten eine hohe Unabhängigkeit. Daher sind alle Entwickler lokale Administratoren, und die Unternehmensrichtlinien sehen disziplinarische Maßnahmen vor, wenn Sie nicht genehmigte Software auf einem Computer installieren und Probleme verursachen.


6

Ich benötige Administratorrechte, um Apache auf Port 80 meines Entwicklungs-MacBook zu starten. Abgesehen davon gibt es keinen Grund, warum ich ohne Administratorrechte nicht auf einem gesperrten Computer sein könnte. Und ich könnte einen Nicht-Standard-Port verwenden, wenn ich es wirklich brauche. Aus Sicht der Unternehmensressourcen ist es sinnvoll, dass Entwickler keine privilegierten Benutzer ihrer Computer sind.

Das Sperren eines Entwicklers auf seinem Computer erfordert jedoch ein reaktionsschnelles und willensstarkes Administratorteam. Wenn ich selbst nichts installieren kann, brauche ich jemanden, der das für mich erledigt, ohne mir drei Runden Genehmigungsunterlagen zu machen. Wenn das Unternehmen nicht bereit ist, sich dazu zu verpflichten, sollte es den Entwicklern den vollen Lauf ihrer Box geben.

Ich bevorzuge natürlich das letztere, aber ich kann die Weisheit des ersteren sehen.


4

Ich verwende VS 2010 die meiste Zeit nicht als Administrator. Wenn Sie jedoch einen Dienst hinzufügen oder entfernen, IIS konfigurieren oder in der Registrierung basteln möchten, benötigen Sie Administratorrechte. Einige der Profilerstellungstools fordern Sie außerdem auf, VS als Administrator neu zu starten. Wenn Sie Ihren Offshore-Mitarbeitern Konten geben, die keine Administratorrechte haben, können sie möglicherweise nur einen kleinen Teil ihrer Arbeit erledigen.

Darüber hinaus können mit dem Aufstieg der Benutzerkontensteuerung immer mehr Apps ohne Administratorrechte installiert werden. Sie legen keine Dinge in HKLM ab, sie berühren nichts unter System32, sie legen die exe irgendwo unter dem Ordner users \ whoever ab, und dies macht sie viel einfacher zu entfernen, spricht aber möglicherweise nicht Ihren ursprünglichen Punkt an, den sie installieren. " "Quatschsoftware", womit ich meine, Spiele, Musikplayer usw.

Wenn Sie lokale Installationen wirklich verhindern möchten, ist die alte Vision von "Das Netzwerk ist der Computer" aus frühen Java-Tagen vielleicht die beste Wahl. Jeder arbeitet von einem Versionskontrollsystem aus und muss jeden Abend einchecken oder sich zurückstellen, bevor er nach Hause geht. E-Mails befinden sich in der Cloud und nicht auf dem Entwicklungscomputer. Dann können Sie, wann immer Sie möchten, ein neues Image der Entwicklercomputer erstellen (noch einfacher, wenn sie virtuell sind), und diejenigen, auf denen nichts anderes installiert ist, bemerken es nicht einmal. Ein bisschen wie über das Wochenende den Bürokühlschrank auszuräumen.

Aber seien Sie gewarnt - ich würde nicht in dieser Umgebung arbeiten. Ich installiere Dienstprogramme und Hilfsprogramme und spiele gelegentlich Spiele. Ich würde jemanden, der versucht, dies zu verhindern, nicht freundlich finden. Ich bin höllisch produktiv. Wenn einige Ihrer Entwickler nicht produktiv sind, werden sie durch das Entfernen ihrer lokalen Installationen nicht produktiver oder dedizierter. Beheben Sie dieses Problem an der Wurzel und Sie werden nichts dagegen haben, dass sie Administratoren sind.


3

Ich nehme an, dass das Entfernen von Administratorrechten von Entwicklern mit dem Zuweisen eines Systemadministrators zur Installation von Software für das Team einhergehen sollte. Wenn Sie beide nicht über Administratorrechte verfügen und den Administrator nicht auffordern können, das Zeug für Sie zu installieren, sind Sie vor den Herausforderungen, denen Sie gegenüberstehen, nur griffbereit. Es ist, als würdest du dein Team im Gefängnis einsperren.


1

Es hängt davon ab, wofür Sie Software schreiben.

Wenn Ihre Software nicht in Ihr System eingreifen muss, sind keine Administratorrechte erforderlich.


Eine bessere Lösung: Zu Installations- / Testzwecken können Sie VMs oder Testlaborcomputer verwenden.


0

Ich habe dazu zwei Ansätze gesehen. Zum einen sollten alle von Laptops aus arbeiten, die sie nach Hause zu den Admins bringen mussten. Sobald der Administrator es hatte, legten sie eine CD ein, auf der das Image des Computers neu erstellt wurde. Sobald es neu abgebildet wurde, ging es in ein Regal, wo es der nächsten Person zur Verfügung stand, die eines brauchte. Vergewissern Sie sich nur, dass alle Maschinen identisch sind, damit Sie nicht von Leuten durchforstet werden, die nach einer "guten" suchen.

Das andere, was ich gesehen habe, ist, dass jeder von einem Citrix Server bootet. Die Maschinen haben überhaupt keinen lokalen Speicher, sie laden lediglich ein Standard-Image aus dem Netzwerk und führen es aus. Dies funktioniert besser, wenn Sie unterschiedliche "Benutzertypen" haben, die unterschiedliche Konfigurationen erfordern (z. B. Benutzeroberflächenentwickler haben ein Image mit Silverlight, WCF-Entwickler haben IIS und SQL Server usw.).

ABER nach alledem denke ich, dass Thorbjorn den Nagel auf den Kopf getroffen hat: Dies ist eine Managementfrage und wird wahrscheinlich mit einer technischen Lösung nicht angemessen angegangen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.