Devem ser admin em seu computador? [fechadas]

33

Em um ambiente corporativo, os desenvolvedores devem ter direitos de administrador em seus computadores? Por quê?

Ambiente tecnológico:

  • Windows 7
  • Visual Studio 2008 e amp; 2010
  • SQL Server
por PBelanger 08.02.2011 / 00:19

16 respostas

52

Eles devem? Isso é com a corporação. Pessoalmente, acho que está tudo bem desde que haja algumas regras compreendidas.

  1. Ser administrador na sua caixa é um privilégio e não um direito.
    1. Capturar vírus em várias ocasiões receberá o direito revogado
    2. A desativação de agentes corporativos receberá o direito revogado - implantação de AV / inventário / software / etc
    3. Basicamente, se você fizer algo que corra o risco de a rede receber o direito revogado
  2. Todas as ferramentas instaladas não devem depender do seu projeto sem incluí-las na lista oficialmente aprovada. Peça gentilmente não caia no dia da implantação e exija $ random_library ser instalado em todos os servidores sem teste
  3. Para qualquer coisa fora dos aplicativos normais instalados em qualquer outro lugar, o suporte será o melhor esforço. Help desk e / ou administradores de sistema não gastarão 5 horas tentando depurar porque você tem conflitos de dll.
por 08.02.2011 / 00:28
34

Normalmente eu diria sim. Coisas como depuradores exigem direitos de administrador altos se não funcionarem corretamente. Os desenvolvedores geralmente precisam instalar softwares aleatórios, que podem levar dias ou semanas para serem instalados ao passar pelos canais. Durante esse tempo, o desenvolvedor geralmente trabalha parado, não custando nada à empresa, a não ser dinheiro, especialmente se o desenvolvedor for um consultor.

    
por 08.02.2011 / 00:24
22

Existe ciência e arte em desenvolvimento; Não é tão simples quanto "saber" o que precisamos. Se já tivéssemos a resposta, metade do nosso trabalho seria discutível; Encontrar a abordagem correta é muitas vezes iterativa e pode envolver várias ferramentas de maneiras imprevisíveis. Exigir que um intermediário instale cada um deles (geralmente com alta latência), apenas para descobrir (cerca de uma hora em) que, para o seu cenário, o "add-on da ferramenta super-uber" é necessário é bobo.

Embora uma VM seja ideal para isso, também há muitas ferramentas de desenvolvimento que não podem ser executadas (de forma adequada, ou nem um pouco) em uma VM, porque elas são são uma VM - e não quero dizer coisas como a JVM; Quero dizer emus total / vms da máquina, como kits de ferramentas do dispositivo. A compatibilidade está melhorando.

Além disso, a maioria das ferramentas de desenvolvimento tem um espaço muito grande - muito maior do que as ferramentas "regulares" (tornando a hospedagem de máquinas virtuais um pouco mais dolorosa do que seria de esperar) e, muitas vezes, pela natureza de depurador de processos. Sem mencionar o fato de que eles podem ser intensivos em GUI; tentar rodar em tempo integral em uma VM GUI é ... extremamente doloroso.

O desempenho é um enorme está aqui; Você acha que foi OK para os usuários esperarem 3 segundos após cada pressionamento de tecla no Word para a chave para se registrar? Eu não estou brincando - ferramentas de desenvolvimento em VMs etc pode ser esta sucky; para a maioria dos propósitos de desenvolvimento, você precisa de resposta. Interromper o fluxo da lógica complexa do cérebro para o teclado pode tornar praticamente impossível fazer o trabalho. E eu odeio dizer isso, mas sim: o tempo de desenvolvimento é caro.

    
por 08.02.2011 / 09:54
18

Em um ambiente Windows, e especialmente ao usar produtos de desenvolvedor da Microsoft, o desenvolvedor exigirá direitos de administrador em suas máquinas. Se você lhes negar esses direitos, sua capacidade de realizar seus trabalhos será restrita, se não for evitada.

    
por 08.02.2011 / 00:31
9

Por ser um desenvolvedor, classifico-nos como um nível de privilégio acima do usuário básico, mas abaixo do (s) administrador (es) do sistema.

Eu posso, ocasionalmente, precisar de uma biblioteca extra instalada para fazer com que o aplicativo que estou desenvolvendo funcione no ambiente de produção. Dito isso, tenho uma regra rígida que desenvolvo: "Para qualquer aplicativo que exija terceiros bibliotecas, as bibliotecas devem ser instaladas em um ambiente de sandbox antes da implementação da produção e, em alguns casos, antes do desenvolvimento do aplicativo. "

O sysadmin com o qual eu trabalho e eu concordo com isso, e entre os dois de nós, aplicaremos essa regra ativamente e adiaremos qualquer implementação de aplicativo que não tenha passado pelas "verificações de dependência".

Para responder à sua pergunta, sim, os desenvolvedores devem ter acesso total às suas próprias máquinas, mas essas máquinas devem ser isoladas do ambiente no qual o aplicativo será implantado. Nesse caso, até mesmo a implantação do aplicativo deve ser otimizada até que seja considerado seguro implantar no ambiente de produção.

    
por 08.02.2011 / 06:39
8

Aviso: sou um desenvolvedor.

Para mim, esta pergunta (e as respostas) parecem estar atacando o problema da abordagem errada - isto é, o debate está focado no que os administradores querem / precisam versus o que os desenvolvedores querem / precisam. Mas você especificou que estamos em um ambiente corporativo, então vamos ver dessa maneira.

Então, vamos imaginar que estamos discutindo isso na frente do diretor de TI ou operações, ou quem controla nosso orçamento , e fazer essas perguntas.

  1. Qual é o privilégio mínimo necessário para executar funções de departamento? Esta é nossa linha de base.
  2. Quais são os riscos de conceder mais acesso a eles? (riscos reais, não apenas cenários melhores / piores)
  3. Qual é o verdadeiro custo esperado de conceder mais acesso a eles? (custos de suporte, correção de alterações inadvertidas feitas por administradores inexperientes, etc)
  4. Qual é o verdadeiro custo esperado de não conceder mais acesso a eles? (perda de produtividade, exigindo suporte de TI para realizar tarefas diárias, rotatividade de pessoas experientes devido ao moral, etc.)

Com essas perguntas respondidas, você pode tomar uma decisão informada, em vez de uma decisão apaixonada.

Para o seu ambiente específico , há algumas coisas que exigem direitos de administrador (consulte Direitos do usuário e Visual Studio - se eles não estão fazendo essas coisas, você pode responder às perguntas 2 - 4.

Como consultor, tenho visto os dois extremos desta política e, embora eu sempre queira ter acesso de administrador a uma máquina, em alguns casos isso não fazia sentido. E eu não tenho certeza do que é causa e o que é efeito, mas sem exceção, todo lugar que eu vi fazendo desenvolvimento de janelas onde os desenvolvedores tinham acesso de administrador também tinha MUITO maior produtividade de todo desenvolvedor do que lugares onde eles foram bloqueados.

    
por 08.02.2011 / 16:45
4

Eu acho que você está fazendo a pergunta errada, você deveria estar se perguntando:

Will a good developer work for an employer that does not give him/her admin rights on their PC?

O que alguém "precisa" e o que eles esperam geralmente não é a mesma coisa, afinal, você não precisa permitir que um desenvolvedor beba café nas horas de trabalho, mas se você não ...

(Certifique-se de deixar sua política clara na fase de entrevista, caso contrário você pode levar as pessoas a aceitar o trabalho que desprezam sua empresa devido à falta de direitos de administrador - não espere que os programadores pensem de maneira lógica sobre esse tipo de assunto de coisa!)

    
por 08.02.2011 / 10:12
4

Depende mais de quem você pergunta sobre quem realmente precisa. Se você perguntar a grupos corporativos de TI e gerenciamento de risco, eles estarão com histórias de horror (e se eles quiserem dar a você, eles exigem uma cabra sacrificada em um vínculo sagrado de promessa de que eles não serão responsabilizados), os desenvolvedores por outro lado, exige direitos de administrador principalmente porque o trabalho é estressante e exigente o suficiente sem ter que pedir permissão ao help desk para fazer um vazamento. O triste estado de coisas é que agora é mais sobre luta de poder e exercer poder, então é sobre necessidades de negócios e produtividade (por exemplo, resume-se a quem fará o outro pular através de aros)

IMHO, o melhor ambiente de trabalho que eu vi até hoje é onde os dois grupos estão sendo mantidos separados. Os desenvolvedores têm seu próprio domínio na floresta (pelo qual a TI controla o que esse domínio e seus usuários podem fazer no restante da empresa) e são todos administradores locais com caras experientes com o MCSE atuando como administradores de domínio local, eles têm seu próprio ambiente de teste e podem fazer praticamente o que querem e precisam em sua LAN local com uma única política de TI (sem software pirata). A TI corporativa não é responsável e não oferece suporte aos desenvolvedores e apenas impõe algumas regras corporativas de alto nível (sem facebook, pornografia ou similar por meio de firewall, devs não permite mexer com a LAN corporativa) e todos têm VPNs baseadas em RSA para trabalhar em casa que os coloca diretamente dentro de sua LAN. Legal, não é?

    
por 08.02.2011 / 12:20
2

A resposta provavelmente é subjetiva e específica para cada cenário individual, mas na maioria dos casos eu diria que sim.

    
por 08.02.2011 / 00:25
2

Eu diria que os direitos administrativos são importantes para o processo de desenvolvimento. Dada a relativa facilidade de usar uma VM no sandbox, não há motivos para não colocá-los em uma VM e manter a segurança.

Algo corre mal e você pode limpar e reconstruir em questão de minutos.

    
por 08.02.2011 / 01:56
2

Definitivamente! Geralmente, muito do desenvolvimento que ocorre pode ou não estar em um ambiente virtual. Os direitos de administrador ajudam a superar muitas das substituições de manipulação de serviços, entradas de registro e IIS localmente. Por outro lado, depende de quanto confiança você tem em seus desenvolvedores.

Como desenvolvedor, é frustrante quando algo não funciona porque não temos acesso.

    
por 08.02.2011 / 07:46
2

Depende. Como desenvolvedor, deve-se sempre operar com o princípio de menos privilégios. Se você está trabalhando como um contratado do governo, você pode ser contratualmente obrigado não a ter acesso de administrador, por exemplo.

Como desenvolvedor Java, dificilmente tive a necessidade de ter direitos de administrador na minha máquina continuamente . No entanto, há casos legítimos em que você precisa de um acesso de administrador sob demanda (você precisa mover seu laptop em domínios fisicamente separados e precisa alterar sua NIC de acordo.) Naquela época, eu realmente precisava de um acesso de administrador permanente e permanente à minha máquina.

Às vezes, você precisa de acesso de administrador porque a TI está com falta de pessoal (ou incompetente ou burocrática). Mas se você trabalha com um departamento de TI competente, eles podem instalar as coisas para você remotamente (ou fornecendo instaladores personalizados " execute-como "admin e instale as coisas para você, basta clicar nelas.)

Então a resposta (de novo) é - depende. Você tem uma equipe de TI responsiva que pode instalar coisas sob demanda (ou dentro de um tempo razoável)? Os desenvolvedores realmente precisam para as tarefas pelas quais são pagos ?

Se os desenvolvedores realmente e legitimamente precisarem (como em "eu literalmente não vou poder fazer nada sem ele" ) ao invés de uma conveniência (como em "eu" quer instalar o que eu quiser "), e se o suporte de TI não for suficientemente responsivo (por qualquer motivo), então, eles devem ter acesso de administrador às suas máquinas.

Caso contrário, não. Lembre-se do princípio de menos privilégio , pessoas.

    
por 08.02.2011 / 17:53
2

Existem desenvolvedores e desenvolvedores. Se um "desenvolvedor" é um cara JBoss de US $ 40 / hora para escrever regras para um mecanismo de regras, é claro que não. Se um "desenvolvedor" é um cara de US $ 350 / hora C / Assembly fazendo seu software de edição de vídeo rodar o mais rápido possível em uma GPU, então sim, é claro.

    
por 08.02.2011 / 18:42
1

Para corporações que estão preocupadas com segurança, elas terão pessoas de segurança ditando e tentando impor uma política que funcione com seu modelo de desenvolvimento e sistemas. Em um ambiente Windows, a maioria das pessoas informa que você deve ter direitos administrativos no host em que está desenvolvendo para executar suas tarefas.

Isso não é necessariamente verdade ...

Você pode criar uma política personalizada e ter todos os programas e funções trabalhando com usuários de desenvolvimento em um sistema. Você apenas terá que ir para baixo e sujo e no nitty gritty com permissões personalizadas em diretórios do programa / sistema com grupos ou grupos personalizados, dependendo do design desejado.

A maioria das empresas diz que é muito perigoso que os desenvolvedores tenham sistemas em redes abertas, porque os hackers podem ganhar o controle e começar a compilar suas próprias ferramentas, portanto, vale a pena correr o risco da minha opinião profissional.

    
por 08.02.2011 / 00:47
1

Os desenvolvedores devem (idealmente) ter dois logons de domínio.

Um que tenha direitos de administrador local (para o trabalho de desenvolvimento) e um que tenha os mesmos direitos que todos os demais membros da empresa. Em seguida, eles podem testar seu trabalho em um conjunto representativo de permissões.

Isso deve reduzir a probabilidade de o ItWorksOnMyMachine-itis aparecer ocasionalmente .....

    
por 08.02.2011 / 17:46
0

Eu tenho que (aparentemente) fornecer a voz dissidente e dizer não apenas não mas "não". Não tenho nenhum problema em conceder direitos de administrador de desenvolvedores em uma VM em área restrita que não tenha acesso à rede. Zypher estava quase certo (correção em negrito):

"1.Ser admin na caixa my é um privilégio NÃO é um direito." Esses sistemas são ativos corporativos pelos quais sou responsável. Quando Joe Developer instala sua cópia pirateada do Microsoft Bob ("porque eu precisava ele"), não será ele quem terá que explicar como ele não foi encontrado antes da auditoria. Os desenvolvedores rotineiramente pensam que, de alguma forma, as regras corporativas simplesmente não se aplicam a elas. Ao fornecer a eles uma VM em área restrita, eles podem seguir todas as regras que todos os outros precisam seguir (já que somente a TI pode copiar arquivos para e do sistema). Magicamente o sistema de requisição é usado pelos desenvolvedores novamente, o céu não está mais caindo quando Joe Developer manipula sua caixa de desenvolvimento - ele apenas pede por um novo (ou uma restauração se ele pedir por backups)

Sr. Denny mencionou que os desenvolvedores custam dinheiro quando têm que esperar que os aplicativos sejam instalados, A. Olá ... meu tempo é geralmente tão valioso quanto o Joe Developer (geralmente mais porque eu mantenho o crapware existente em execução - e eu realmente preciso Mencione todo o tempo gasto ajudando Joe desenvolvedor a depurar sua última obra-prima), e B. Quando o Dev for mais do que o orçamento, porque eles estavam esperando por um aplicativo e tentar culpá-lo por isso, eu diria:

Sua falta de planejamento para o que você precisa para escrever software não é minha responsabilidade, temos um conjunto padrão de ferramentas e se essa caixa de ferramentas estiver faltando o que você precisa, você deve ter suas solicitações para obter mais ferramentas aceleradas em vez de tentar faça-me saltar para você porque o seu prazo é amanhã.

Tendo dito tudo isso, bloquear os desktops de desenvolvedores fede, se você pudesse eliminar os desenvolvedores ruins que pensam que eles têm direito a assistir a sua coleção de relógios de pulso e ficam indignados ao saber que não podem instalar o player babewatch para visualizá-los ( "mas é open source") você pode ser capaz de relaxar. Mas para cada grande desenvolvedor que o "entende", há 10 mais que sua empresa vai contratar para esse aplicativo vertical de 200 milhões de dólares, e é por isso que você precisa ficar atento.

EDITAR: Certamente, é bem possível que os desenvolvedores aos quais eu fui exposto sejam anormalmente insípidos (consultar a safra atual apenas ouviu falar do stackoverflow, para dar algum nível de referência). O ponto de vista inicial de que começo é "o que você precisa fazer o que a empresa está pagando para você fazer". Se você precisar de direitos de administrador, você os obtém, mas você não deve começar com eles e se eu puder lhe dar uma caixa que francamente eu não ligo para o que você faz e isso funciona, então estamos bom ir.

    
por 08.02.2011 / 05:35