Les développeurs devraient ils avoir des autorisations d'administrateur sur leur PC
Les développeurs devraient - ils avoir des autorisations d'administrateur sur leur PC ou leur donner un accès utilisateur suffisant?
Quelques commentaires:
- S'ils veulent essayer de nouvelles application qui aurait besoin l'installation, puis ils pourraient essayer sur une machine virtuelle et plus tard la administrateur réseau pour l'installer pour eux. Pensez-vous que serait travail?
- y a-t-il quelque chose qu'un développeur doit faire sur leur PC qui serait exiger de l'administrateur les autorisations?
Nous sommes une équipe de 5 développeurs et construisons des applications web
21 réponses
La réponse est "Oui". Les développeurs devront frig avec des configurations système pour tester les éléments, installer des logiciels (si rien d'autre, pour tester le processus d'installation de tout ce qu'ils se trouvent à développer), piquer sur le registre et exécuter un logiciel qui ne fonctionnera pas correctement sans privilèges d'administrateur (juste pour lister quelques éléments). Il existe une foule d'autres tâches faisant partie intégrante du travail de développement qui nécessitent des privilèges d'administration.
Sachant que le personnel de développement ne avoir nécessairement un accès root aux systèmes de production, les droits d'administrateur sur un PC local ne compromettent pas de manière significative la sécurité des systèmes de production. Il n'y a presque aucune raison opérationnelle légitime de restreindre l'accès des administrateurs aux PC locaux pour le personnel qui en a besoin pour faire son travail.
Cependant, la raison la plus importante pour fournir un accès administratif est que la configuration d'un environnement de développement compromis ou de second ordre envoie un message à votre personnel de développement:
'Nous apprécions votre travail si peu que nous sont préparés de manière significative compromettre votre capacité à faire votre travail pour aucune bonne raison. En fait, nous sommes très heureux de le faire pour couvrir notre propre cul, se plier aux caprices de la petite bureaucratie ou parce que nous ne pouvons tout simplement pas être dérangés. C'est juste le meilleur des cas. Mauvais le cas est que nous sommes vraiment le type de contrôle freaks qui le considèrent comme notre prérogative de vous dire comment faites votre travail et ce que vous faites ou ne pas besoin de faire il. Faire avec ce que vous êtes donné et être reconnaissant que vous avez un emploi à tous.'
En général, fournir un environnement de travail de second ordre (et encore moins fondamentalement imparfait) au personnel de développement est une recette pour les conséquences naturelles d'énerver votre personnel-incapacité à retenir des personnes compétentes, roulement élevé du personnel, moral médiocre et prestation de mauvaise qualité. Sortir de votre façon de le faire-en particulier s'il y a une connotation de proxénétisme à un caprice bureaucratique-est juste irresponsable.
Gardez à l'esprit que votre roulement de personnel n'entraîne pas seulement des coûts de remplacement du personnel. Le coût le plus sérieux du roulement du personnel est que la plupart de ceux qui restent autour sera le bois mort qui ne peut pas obtenir un meilleur emploi. Au fil du temps, cela dégrade les capacités des ministères touchés. Si votre industrie est suffisamment proche, vous pouvez également vous retrouver à obtenir une réputation.
Un point à noter est que les privilèges administratifs sont beaucoup moins problématiques pour le développement sur les systèmes unix-oid ou mainframe que sur Windows. Sur ces plates-formes, un utilisateur peut faire beaucoup plus dans son propre domaine sans avoir besoin d'autorisations à l'échelle du système. Vous voudrez probablement toujours un accès root ou sudo pour les développeurs, mais ne pas avoir cela sera sous les pieds beaucoup moins souvent. Cette flexibilité est une raison importante mais moins connue de la popularité continue des systèmes d'exploitation dérivés d'unix dans les écoles D'Informatique.
Les développeurs doivent avoir un contrôle complet et total de la machine qu'ils utilisent. La plupart des outils de débogage nécessitent des autorisations d'administrateur pour accrocher dans l'exécution de la demande qu'ils construisent.
En outre, les développeurs téléchargent fréquemment et essaient de nouvelles choses. L'ajout d'étapes supplémentaires telles que la nécessité d'un administrateur réseau pour venir et installer quelque chose pour eux frustre simplement le dev et rendra rapidement la vie infernale pour la personne d'ops réseau.
Cela dit, ils devraient être un admin sur leur boîte, pas le réseau.
Oui et non.
Oui, cela économise beaucoup de temps à déranger le support du système.
Non, vos utilisateurs ne l'ont pas, alors ne comptez pas dessus.
Nous développons avec les autorisations d'administration et de test sans. Qui travaille hors de la droite.
Administrateur Local Oui, pour toutes les raisons indiquées ci-dessus. Administrateur réseau non, car ils seront inévitablement attirés par les tâches d'administration réseau parce que "ils peuvent". Les développeurs devraient se développer. L'administration réseau est un travail tout à fait différent.
Les développeurs doivent normalement faire des choses que la personne moyenne ne ferait pas, et devraient donc normalement avoir des comptes d'administrateur. Les faire sauter à travers des cerceaux maladroits gaspille leur temps et les démoralise. Il peut y avoir des exceptions dans des situations de haute sécurité, mais si vous ne pouvez pas faire confiance à quelqu'un avec un compte administrateur, vous ne pouvez certainement pas faire confiance à son code.
Ils doivent également avoir un compte disponible de la même autorisation que leurs utilisateurs (plus d'un compte, si le pool d'utilisateurs a différents statuts d'autorisation). Sinon, ils peuvent simplement développer quelque chose de cool, le déployer, puis trouver que cela ne fonctionnera pas pour les utilisateurs.
Il y a aussi trop de façons de bousiller les ordinateurs avec des comptes d'administrateur (Oui, je l'ai fait). Le service informatique a besoin d'une politique selon laquelle il va réimaginer l'ordinateur d'un développeur s'il ne peut pas le réparer rapidement. À un endroit où j'ai contracté, j'ai dû signer une copie de cette politique pour obtenir mon compte administrateur.
C'est une jolie réponse spécifique à Windows. Dans Linux et D'autres systèmes Unix-y, les développeurs peuvent plus souvent se débrouiller avec des comptes d'utilisateurs seulement, souvent n'ont pas besoin d'un autre compte pour le test (s'ils ont un compte avec lequel ils peuvent sudo, ils savent quand ils utilisent le sudo, mais ils peuvent avoir besoin d'un avec les mêmes autorisations de groupe), et peuvent faire des quantités incroyables de dommages au système d'exploitation très facilement, donc la même politique informatique est nécessaire.
Oui, Half-Life 1 (et tous les mods associés: counter-strike, day of defeat, etc.) besoin de droits d'administrateur (au moins pour la 1ère exécution, je pense) pour fonctionner correctement dans Windows NT, 2000, XP, etc.
Et, quel genre de développeur ne joue pas Counter Strike à L'heure du déjeuner? (un merdique à coup sûr)
Absolument! Sinon, comment installer le gestionnaire de téléchargement pour télécharger des films la nuit?
Parfois, les développeurs ont vraiment besoin d'installer ou de changer quelque chose dans le système pour tester une idée. Ce sera impossible si vous devez appeler l'administrateur chaque fois que vous devez changer quelque chose.
J'ai aussi mon observation personnelle que certains administrateurs ont tendance à visser tout ce qui est possible afin de faire en sorte que même les petites choses en dépendent quotidiennement... quel, sécuriser leur emploi? pisser les autres utilisateurs? N'ai pas de réponse. Mais le bon sens n'est pas vu ici.
La dernière fois qu'il y a eu un problème avec mon PC, j'ai pris une part active à la restauration du système, en faisant quelques suggestions en travaillant dans l'équipe avec l'administrateur, ou alors je pensais... Admin s'est avéré être très en colère et m'a accusé d'essayer de lui apprendre ou de redéfinir les règles. Je suppose que c'était juste son ego car il n'a pas été vu aussi cool dans notre chambre Parmi d'autres collègues.
La réponse est, les développeurs devraient avoir 2 machines!!
Un développement qui a des droits d'administrateur et une puissance, une mémoire, une taille d'écran et une portabilité suffisantes, et des privilèges D'administrateur, avec un logiciel antivirus d'entreprise chargé mais configurable par le développeur si nécessaire avec la Politique autoreset..
Une entreprise qui a une charge d'entreprise, des politiques, des privilèges d'utilisateur non-admin, etc... Développeur peut utiliser celui-ci pour les applications de mode de version de test unitaire comme certains les développeurs ont la mauvaise habitude de faire tous les tests unitaires avec des privilèges d'administrateur.
Ayant enduré la douleur de devoir se développer sans droits d'administrateur sur la machine, ma réponse ne peut être que oui, c'est essentiel.
Oui, mais ils doivent être conscients des limitations auxquelles leurs utilisateurs seront confrontés lors de l'exécution de logiciels dans un environnement plus limité. Les développeurs devraient avoir un accès facile aux environnements "typiques" avec des ressources et des autorisations limitées. Dans le passé, j'ai intégré le déploiement de builds à l'un de ces systèmes "typiques" (souvent une machine virtuelle sur mon propre poste de travail) dans le cadre du processus de construction, afin que je puisse toujours avoir une idée rapide de la façon dont le logiciel fonctionnait sur un utilisateur final machine.
Les programmeurs ont également la responsabilité de connaître les règles strictes d'écriture de logiciels pour les utilisateurs non administrateurs. Ils doivent savoir exactement quelles ressources système ils sont toujours autorisés (ou interdits) à accéder. Ils devraient connaître les API qui sont utilisées pour acquérir ces ressources.
"ça marche sur ma machine" n'est jamais une excuse!
En tant qu'administrateur système, je suis tout pour les développeurs ayant des droits d'administrateur locaux sur leurs postes de travail. Lorsque cela est possible, ce n'est pas une mauvaise idée de faire la plupart des choses avec un compte de niveau "utilisateur" standard, puis d'utiliser un autre compte "admin" pour apporter des modifications, installer des applications, etc. Souvent, vous pouvez sudo ou runas pour accomplir ce que vous voulez sans même se déconnecter. Il est également utile de nous rappeler ce que la sécurité dévie les utilisateurs finaux devront sauter à travers lors de la libération à la production.
Sur une note de côté il est également conseillé d'avoir un système [propre] ou une machine virtuelle(s) afin que vous puissiez tester les choses correctement et ne pas entrer dans le scénario "cela semble/fonctionne bien sur mon système" en raison de la modification du système.
Si vous inversez la question, je pense qu'il devient plus facile de répondre; devrions-nous supprimer les autorisations d'administrateur des développeurs? Quel est le gain?
Mais en fait, je pense que la réponse dépend de votre contexte, de votre environnement. Petite start - up aura une réponse différente à l'agence gouvernementale certifiée ISO.
Je travaille principalement dans le monde *nix et le modèle standard pour les développeurs de travailler dans un compte utilisateur normal et non privilégié avec la possibilité (via sudo
ou su
) de passer aux privilèges d'administrateur si nécessaire.
Je ne suis pas sûr de ce que serait l'arrangement Windows équivalent, mais c'est, selon mon expérience, la configuration idéale:
D'une part, avoir des droits d'administrateur disponibles à la demande donne au développeur plein pouvoir sur son poste de travail lorsque nécessaire.
D'autre part, le logiciel Windows a une longue et longue histoire de supposer que tous les utilisateurs ont des droits d'administrateur, au point que de nombreux programmes ne seront pas exécutés pour un utilisateur non administrateur. De nombreux problèmes de sécurité de Windows découlent directement de cette exigence implicite selon laquelle, pour pouvoir utiliser l'ordinateur de manière fiable, tous les utilisateurs doivent être administrateurs. Cela doit changer, et le moyen le plus efficace pour s'assurer que votre logiciel fonctionne pour les utilisateurs non-administrateurs est pour vos développeurs être en cours d'exécution eux-mêmes que des utilisateurs non-administrateurs.
Aucun Utilisateur De Puissance
Tout d'abord, Power User est fondamentalement un administrateur - donc "limiter" un utilisateur à Power User ne fournit aucune augmentation de la sécurité du système - vous pourriez aussi bien être administrateur.
Connectez-vous interactivement en tant qu'utilisateur normal
Deuxièmement, bien sûr, un développeur a besoin d'un accès administratif à sa machine de développement (et aux serveurs et aux deuxièmes boîtes, etc.), mais bien sûr personne ne devrait se connecter de manière interactive en tant qu'administrateur pendant la normale développement ou test. Utilisez un compte utilisateur normal pour cela et la plupart des applications.
Vous ne voulez sérieusement pas exécuter [insérer un navigateur, plugin, messagerie instantanée, client E-mail et ainsi de suite] en tant qu'administrateur.
Normalement, vous ne vous connectez pas non plus sur votre machine Linux en tant que root, même si vous avez probablement un accès root lorsque vous en avez besoin.
Utiliser un compte d'administrateur personnel distinct
Fournir au développeur un compte d'administrateur personnel distinct sur sa machine (domaine compte de préférence) qui est également un administrateur valide sur d'autres serveurs et boîtes de dev/test auxquels la personne a besoin d'un accès administratif.
Utilisez "exécuter en tant que" et dans Vista + UAC pour demander ou Demander une invite et entrez les informations d'identification administratives pour les tâches et les processus uniquement en cas de besoin. PKI avec des cartes à puce ou similaire peut réduire considérablement la pression dans la saisie des informations d'identification souvent.
Tout le monde est heureux (ou? ;)
Puis auditez l'accès. De cette façon, il y a la traçabilité, et un moyen facile pour savoir qui utilise les sessions terminal services sur un serveur dev/test particulier, vous devez accéder dès maintenant...
Certes, il y a certainement un travail de développement qui ne nécessitera jamais de privilèges d'administrateur local - comme la plupart des développements web où le déploiement est testé sur un serveur séparé ou une machine virtuelle et où cassini ou tout ce qui est utilisé pour le débogage local fonctionne bien comme un utilisateur normal.
[toutes mes excuses l'anglais n'est pas ma langue maternelle, je fais de mon mieux :)] Eh bien,
Expérience personnelle (je suis un dev C++/SQL):
J'étais administrateur de ma machine windows dans mon travail précédent. J'avais également des droits dbo ( pas dba ) sur les bases de données, y compris les bases de données de l'environnement de production. En 2 ans et demi avec 8 personnes ayant ces droits élevés fous... nous n'avons jamais eu aucun problème. En fait, nous avons résolu beaucoup de problèmes en mettant à jour db manuellement. Nous pourrions faire beaucoup de choses très rapidement pour les correctifs et les devs.
Maintenant, j'ai changé de travail. J'ai réussi ( en pleurant beaucoup) à être administrateur de ma machine windows. Mais le serveur de développement est un serveur red hat auquel nous nous connectons en utilisant ssh. Essayer d'installer Qt était une torture, des limites de Quota, des limites d'espace, des droits d'exécution et d'écriture. Nous avons finalement abandonné et avons demandé à l'administrateur de le faire pour nous. 2 semaines plus tard encore rien n'est installé. Je deviens très rapide à la lecture de journaux et Alt + Tab frapper.
J'ai demandé des droits d'administrateur, comme seul le dev de mon utilisation logicielle cette machine.
-- > réponse: "S'il y a des processus, c'est pour vous de ne pas faire ce que vous voulez. Il doit bien fonctionner une fois dans prod".
-- > essayer d'expliquer à un gestionnaire non technique: "je n'aurai aucun droit d'administrateur dans les environnements de production ou UAT. Mais ma machine de développement est différente. Si je devais construire des chaises au lieu de logiciels, me diriez-vous que je ne peux pas mettre tous les outils que je veux dans mon atelier parce que mon atelier doit ressembler à l'endroit où la chaise sera utilisé ? Je donne un paquet exécutable à uat. Les bibliothèques et les outils que j'ai utilisés pour les construire sont invisibles à l'utilisateur final ou le mec de l'installation du paquet."
J'attends toujours aujourd'hui. J'ai trouvé une solution, ouvrir un environnement de développement, aller à votre juge en ligne préféré, vous mettre au défi. quand quelqu'un regarde votre écran, il vous voit programmer. ;)
Vous pouvez répondre de deux manières. Oui et non, ça dépend. -- Puis-je être plus vague....
Cela dépend s'il est nécessaire pour eux de faire leur travail. Si c'est pour leur accorder des pouvoirs administratifs sur leur ordinateur. Si ce n'est pas le cas, tout développement logiciel ne nécessite pas qu'un ingénieur ait des droits d'administrateur.
Oui et non dépend de votre vue. Certains ingénieurs considèrent leur ordinateur comme leur domaine et ce sont les règles de leur domaine. D'autres ne veulent pas le responsabilité.
J'ai travaillé dans une entreprise où je n'avais pas de droits d'administrateur et chaque fois que je devais faire quelque chose qui exigeait des droits d'administrateur, je devais appeler le service d'assistance et ils m'accordaient des droits d'administrateur temporaires jusqu'à ce que je redémarre. C'était une douleur parfois, mais c'était comme ça que je vivais avec. J'ai également travaillé dans des endroits où j'ai des droits d'administrateur complets sur mon ordinateur. C'était génial sauf pour le temps que j'ai installé un logiciel qui arrosait le système d'exploitation et a dû prendre mon ordinateur au service d'assistance et demandez-leur de re-image du disque dur....
Personnellement, je pense qu'un ingénieur devrait avoir des droits d'administrateur sur son ordinateur, mais étant entendu que s'il le bousille, une nouvelle image de base peut être rechargée et ils perdront tout ce qui a été fait depuis la ligne de base d'origine. Je ne crois pas que tout le monde dans une entreprise devrait avoir des droits d'administrateur sur leur ordinateur cependant. Les assistants comptables, administratifs et autres départements n'ont pas vraiment besoin d'avoir ces droits afin qu'ils ne soient pas accordés.
Ht tp://msdn.microsoft.com/FR-us / library / aa302367.aspx
D'après mon expérience, un compromis entre nous (codeurs) et eux (sécurité) est toujours nécessaire. J'admets (bien que je déteste), il y a du mérite dans L'article Microsoft ci-dessus. Comme je suis programmeur depuis des années, j'ai vécu la douleur où j'avais besoin d'installer un débogueur différent, juste pour m'énerver, Je ne peux pas. cela m'a forcé à réfléchir de manière créative à la façon de faire mon travail. Après des années de lutte contre notre équipe de sécurité (et plusieurs discussions), je comprends leur travail d'avoir à sécuriser tous les domaines, y compris mon bureau. Ils m'ont montré les vulnérabilités quotidiennes qui sortent, même sur L'application QuickTime la plus simple. Je peux voir leur frutration chaque fois que je veux installer un utilitaire rapide ou modifier mon IIS local que je peux causer un grave problème de sécurité. Je ne comprenais pas complètement cela jusqu'à ce que je vois un autre développeur se mettre en boîte. Il essayait de déboguer et a fini par fermer Symantec seulement pour obtenir (et ensuite donner) certains virus à des centaines de personnes. Il a été un gâchis. En parlant à l'un des " secheads "(les gars de la sécurité) de ce qui s'est passé, je pouvais voir qu'il voulait juste dire: "je vous l'avais dit...".
J'ai appris que nos secheads (enfin, au moins les miens) veulent juste protéger notre entreprise. Les bonnes nouvelles sont que nous avons trouvé un compromis, et je peux faire mon travail et les secheads sont cool avec notre réseau sécurisé!
Credo
Wow, cette question va certainement s'ouvrir à des réponses intéressantes. En réponse, je cite le souvent utilisé- 'Cela dépend':)
Dans les petites entreprises, cela peut être simplement une question d'être pragmatique. Les développeurs sont également susceptibles d'être les plus habiles techniquement, il est donc logique pour eux de gérer leurs propres machines.
Personnellement, je suis un fan du " compte admin "qui peut être utilisé si nécessaire - c'est-à-dire" exécuter comme.."(J'ai remarqué que cette approche était très similaire dans principal à L'UAC plus tard).
Si vous développez un logiciel de bureau, ce n'est pas une mauvaise idée pour les développeurs de travailler dans les limites que leur utilisateur final connaîtra - c'est-à-dire des droits limités ou restreints. Si vous construisez le Logiciel sous des droits limités, il y a de fortes chances que vous rencontriez les mêmes problèmes que vos utilisateurs cibles, compte tenu du même ensemble d'autorisations.
Cela dit, si vous avez un bon Laboratoire de test et / ou une équipe QA décente, cela pourrait être discutable - surtout si vous avez une demi-pratique ALM décent.
Donc finalement - je me développe sans UAC, principalement parce que je me fais confiance et mes compétences. Dans un environnement d'équipe, je le mettrais au vote. Dans les grandes organisations, vous pourriez ne pas avoir cette liberté.. Les administrateurs D'entreprise ont souvent le dernier mot :)
Dans mon entreprise, les développeurs, les ingénieurs, et mon patron (propriétaire de l'entreprise) ont le privilège admin. Mon patron a également le privilège d'administrateur réseau, juste au cas où je serais frappé par ce bus capricieux (ou quitterais). Tout le monde se bloque vers le bas.
En tant que sysadmin, cette configuration m'a causé un peu de chagrin de temps en temps, surtout quand un logiciel non approuvé est installé. Cependant, venant d'un développeur de fond, je comprends la nécessité pour les utilisateurs d'avoir plus de contrôle sur leur environnement et en tant que tel, je suis prêt à supporter la bizarrerie occasionnelle ou le problème qui peut faire surface. J'effectue des sauvegardes de routine de leurs postes de travail-juste au cas où.
Au fait, j'ai eu plus de problèmes avec le patron bricoler avec des choses qu'avec n'importe qui d'autre. Un peu comme la vieille question, "Où est assis un éléphant? N'importe où il veut!" Mais dans une petite entreprise où il est essentiellement le sysadmin "backup", il n'y a pas beaucoup de choix.
Cela dépend des compétences du développeur et s'il est consultant ou non.
Je pense qu'il est raisonnable qu'un développeur expérimenté et digne de confiance ait le droit de faire ce qu'il veut avec son PC tant que cela ne nuit pas à sa productivité.
Personne sur Windows XP ne devrait utiliser un compte administrateur pour une utilisation quotidienne, et dans Vista si vous devez être un administrateur au moins avoir UAC activé. Surtout les développeurs web et d'autres développeurs qui naviguent sur le web avec Internet Explorer.
Ce que vous pouvez faire, c'est demander aux développeurs d'utiliser leur compte utilisateur régulier, mais de leur donner un deuxième compte administrateur sur leur PC afin qu'ils puissent l'utiliser au besoin (exécuter en tant que). Je sais qu'ils ont dit développement web, mais pour Windows Développement votre logiciel doit être testé à l'aide d'un compte utilisateur régulier, et non en tant qu'administrateur.