ti-enxame.com

Os direitos locais de "Usuário" são suficientes ou os desenvolvedores precisam de Administrador Local ou Usuário Avançado durante a codificação?

Temos uma equipe de desenvolvimento offshore que tem o péssimo hábito de instalar software sem sentido em desktops corporativos (o que não tem nada a ver com o cargo) e, portanto, está pensando em remover seus direitos de administrador local.

O administrador local ou o usuário avançado local é um requisito do VS2010? Como você corre sem direitos elevados? Quais problemas você enfrentará?

17
goodguys_activate

Um programador deve trabalhar como um usuário limitado com acesso de administrador. Ou seja, o programador deve ser o administrador da máquina, mas enquanto trabalha, ele deve sempre usar uma conta de usuário limitada.

Se você precisar de direitos elevados para trabalhar, por qualquer coisa, exceto pela instalação de software, estará fazendo algo muito errado. Pior, se você trabalha como usuário avançado ou desativa os prompts do UAC ou algo semelhante, está ignorando os problemas que afetarão os usuários finais do seu software, forçando-os a executar com os mesmos privilégios que você. Isto está errado.

Isso é verdade, independentemente do sistema operacional em que você está. Embora o Windows pareça ser o único onde ele aparece.

Esclarecer:

Quando digo que o desenvolvedor deve ser um usuário limitado, quero dizer que eles devem ter direitos administrativos totais à máquina, mas quando testam seu código, isso deve ser feito em um ambiente de usuário limitado. Por exemplo, o desenvolvedor pode estar operando a máquina como um usuário compatível com Admin, mas executa todos os testes em uma máquina virtual ou em uma conta de usuário limitada. No Linux, isso significa simplesmente que o desenvolvedor tem acesso Sudo; no Windows, isso pode significar uma conta no nível de administrador com o UAC e outros recursos de segurança totalmente ativados.

19
greyfade

Esta é uma questão política ou administrativa, não técnica.

Considere criar e comunicar uma regra "não queremos que você instale software que não seja relevante para a sua função", para que o chefe possa acompanhar de acordo.

Para ajudar nisso, o administrador do sistema pode solicitar a cada máquina uma lista de programas instalados. Se você fizer isso regularmente, poderá escrever um pequeno programa para mostrar o que foi instalado, para obter uma visão geral rápida.

Dito isto, a menos que os programas sejam ilegais ou moralmente inaceitáveis, por que isso é um problema em primeiro lugar?

9
user1249

Eu preciso de direitos de administrador para ativar o Apache na porta 80 no meu MacBook de desenvolvimento. Além disso, não há motivo para não estar em uma máquina bloqueada sem direitos de administrador. E eu poderia usar uma porta fora do padrão, se realmente precisasse. Do ponto de vista dos recursos da empresa, faz sentido que os desenvolvedores não sejam usuários privilegiados de suas máquinas.

No entanto, bloquear um desenvolvedor em sua máquina precisa vir junto com uma equipe de administradores responsiva e disposta. Se eu não consigo instalar coisas, preciso de alguém que possa fazer isso por mim, chop chop, e sem me fazer passar por três rodadas de documentos de aprovação sobre isso. Se a empresa não estiver disposta a se comprometer com isso, deverá dar aos desenvolvedores uma execução completa de suas caixas.

Prefiro o último, obviamente, mas posso ver a sabedoria do primeiro.

6
Dan Ray

Depende do que você espera que eles se desenvolvam independentemente.

Algumas coisas como IIS, depuração remota, modificam o acesso ao GAC, a capacidade de executar seu próprio MSI seria definitivamente afetada. Se essas são as coisas que você espera que os recursos terceirizados façam independentemente, eu faria não tente sem muitos testes.

Se seu pessoal terceirizado estiver trabalhando em um aplicativo de desktop, eles poderão depurar localmente, você provavelmente se safará com poucos problemas.

Supondo que eles estejam usando o controle de origem, você sempre pode agendar uma imagem periódica das máquinas.

Na maioria dos lugares em que trabalhei, faço parte do primeiro caso e espero alta independência, portanto todos os desenvolvedores são administradores locais e a política corporativa permite medidas disciplinares se você instalar um software não aprovado em qualquer máquina e causar problemas.

6
Bill

Eu corro o VS 2010 não como administrador na grande maioria das vezes. Mas se você deseja adicionar ou remover um serviço, configurar o IIS ou mexer no registro, precisará de direitos de administrador. Além disso, algumas das ferramentas de criação de perfil exigem que você reinicie o VS como administrador. Então, acho que fornecer contas a seus funcionários no exterior que não têm poderes administrativos os impedirá de fazer algumas (talvez pequenas) partes de seus trabalhos.

Além disso, com o surgimento do UAC, mais e mais aplicativos agora podem ser instalados sem poderes de administrador. Eles não colocam coisas no HKLM, não tocam em nada no System32, colocam o exe em algum lugar na pasta users\whoever, e isso os torna muito mais fáceis de remover, mas pode não abordar o ponto original que eles estão instalando " software sem sentido ", com o qual suponho que você quer dizer jogos, tocadores de música etc.

Se você realmente deseja impedir instalações locais, talvez a melhor aposta seja a antiga visão de "a rede é o computador" desde o início Java dias. Todo mundo trabalha em um sistema de controle de versão e deve verificar em ou arquivar todas as noites antes de voltar para casa.O e-mail mora na nuvem, não na máquina de desenvolvimento etc. Etc. Então, quando quiser, você pode recriar novamente a imagem de suas máquinas de desenvolvimento (ainda mais fáceis se forem virtuais) e aquelas que não tinham nada extra instalado ganharam É como limpar a geladeira do escritório no fim de semana.

Mas esteja avisado - eu não trabalharia nesse ambiente. Eu instalo utilitários e ajudantes, e jogo ocasionalmente, e não seria gentil com alguém que tentasse impedir isso. Eu sou produtivo como o inferno. Se alguns de seus desenvolvedores não forem produtivos, remover as instalações locais não os tornará mais produtivos ou dedicados. Resolva esse problema na raiz e você não se importará que eles sejam administradores.

4
Kate Gregory

Suponho que a remoção dos direitos de administrador dos desenvolvedores seja associada à atribuição de um dos administradores de sistema para instalar o software para a equipe. Se vocês dois não têm direitos de administrador e não podem pedir ao administrador que instale coisas para você, você está sem mãos diante dos desafios que está enfrentando. É como se você prendesse seu time na prisão.

3
P Shved

Depende do que você está escrevendo o software.

Se o seu software não precisar intrometer no seu sistema, não haverá necessidade de poderes de administrador.


Uma solução melhor: para fins de instalação/teste, pode-se usar VMs ou computadores de laboratório de teste.

1
Tamara Wijsman

Eu já vi duas abordagens para isso. Uma era fazer com que todos trabalhassem nos laptops, que eles precisavam entregar aos administradores quando voltavam para casa. Uma vez que o administrador o tinha, eles colavam um CD que reinventava a imagem da máquina. Uma vez que foi recriada, foi colocada em uma prateleira, onde estaria disponível para a próxima pessoa que precisasse. Apenas certifique-se de que todas as máquinas sejam idênticas, para não acabar com as pessoas procurando por todas elas procurando uma "boa".

A outra coisa que eu vi é fazer todo mundo inicializar a partir de um servidor Citrix. As máquinas não têm armazenamento local, apenas carregam uma imagem padrão da rede e executam a partir dela. Isso funciona melhor se você tiver diferentes "tipos" de usuários que exigem configurações diferentes (por exemplo, os desenvolvedores da interface do usuário têm uma imagem com o Silverlight, os desenvolvedores do WCF têm IIS e SQL Server, etc.)

MAS, com tudo o que foi dito, acho que Thorbjorn [sic] acertou na cabeça: esse é um problema de gerenciamento e provavelmente não será tratado adequadamente com uma solução técnica.

0
TMN