Compartilhar via


Sudo para Windows

O Sudo para Windows é uma maneira de os usuários executarem comandos elevados (como administrador) diretamente de uma sessão de console não elevada no Windows.

Leia o anúncio, que inclui um vídeo de demonstração e aprofunde-se em como o Sudo para Windows funciona.

Pré-requisitos

O comando Sudo para Windows está disponível no Windows 11, versão 24H2 ou superior. (Verificar se há atualizações do Windows).

Como habilitar o Sudo para Windows

Para habilitar o Sudo para Windows, abra o System > Advanced nas Configurações do Windows e defina Habilitar sudo como Ativado.

Habilitar Sudo

Aviso

O Sudo para Windows pode ser usado como um potencial escalonamento de vetor de privilégio quando habilitado em determinadas configurações. Você deve estar ciente das considerações de segurança ao ativar o comando sudo em sua máquina.

Como configurar o Sudo para Windows

Sudo para Windows atualmente suporta três opções de configuração diferentes. A configuração pode ser definida no menu Avançado do Sistema > ou programaticamente, usando a linha de comando. As opções de configuração incluem:

  • Em uma nova janela (forceNewWindow): A forceNewWindow opção de configuração é a opção de configuração padrão do Sudo para Windows. Use sudo nessa configuração para executar o comando em uma nova janela. Isso é semelhante ao comportamento do runas /user:admin comando.

  • Entrada fechada (disableInput): A opção de configuração disableInput executará o processo elevado na janela atual, mas com o handle de entrada fechado. Isso implica que o processo elevado não poderá receber entrada da janela de console aberta atualmente. Isso é útil para cenários em que você deseja executar um comando como administrador, mas não deseja permitir que o comando receba entrada da janela do console atual. Essa opção de configuração fornece parte da conveniência da opção de configuração e, ao mesmo tempo, reduz alguns dos riscos de inline segurança associados.

  • Inline (normal): A opção de configuração normal é a mais semelhante a como o sudo se comporta em outros sistemas operacionais. Esta configuração fará com que o processo elevado seja executado na janela atual, e o processo poderá receber entrada da sessão de console atual. Isso é útil para cenários em que você deseja executar um comando como administrador e deseja permitir que o comando receba entrada da janela do console atual. Essa opção de configuração fornece a maior conveniência, mas você só deve escolher essa opção se estiver familiarizado com os riscos de segurança associados.

Você pode selecionar entre essas configurações no menu Avançado do Sistema > ou alterar a configuração programaticamente, em uma linha de comando com privilégios elevados (console de administração), usando:

  • sudo config --enable <configuration_option>

Atualize <configuration_option> para forceNewWindow, disableInputou normal.

Como usar Sudo para Windows

Para usar o Sudo para Windows, basta adicionar sudo antes do comando que você deseja executar como administrador. Por exemplo, para executar como administrador, você deve executar netstat -absudo netstat -ab na janela do console.

Cenários comuns de desenvolvedor

Aqui estão alguns cenários comuns em que os desenvolvedores podem usar sudo:

  • Editando arquivos do sistema: sudo notepad C:\Windows\System32\drivers\etc\hosts
  • Instalando pacotes globalmente: sudo npm install -g package-name
  • Executando ferramentas administrativas: sudo diskpart

Observação

Para o trabalho de desenvolvimento envolvendo diretórios do sistema, como C:\Windows\, considere o uso de ambientes de desenvolvimento ou abordagens alternativas quando possível. O Sudo deve ser usado de forma criteriosa e somente quando as permissões elevadas forem realmente necessárias.

Como sudo eleva o processo de destino para ser executado com permissão de nível de administrador, um prompt será aberto solicitando que você verifique se deseja continuar.

Considerações de segurança

Há riscos associados à execução do sudo na configuração Entrada fechada (disableInput) ou Inline (normal). É possível que processos mal-intencionados tentem controlar o processo elevado utilizando a conexão estabelecida pelo processo sudo.exe não privilegiado e pelo processo sudo.exe privilegiado.

A disableInput opção de configuração reduz o risco fechando a alça de entrada. Desconectar o identificador de entrada da janela do console atual significa que os processos não elevados não podem enviar entrada para o processo elevado.

A opção de configuração inline executa o processo elevado na janela atual, permitindo que o processo receba entradas da sessão de console atual. Um processo nãolevado pode enviar entrada para o processo elevado dentro da mesma janela do console ou obter informações da saída na janela atual nesta configuração.

perguntas frequentes

Qual é a diferença entre o Sudo para Windows e o comando existente runas ?

O sudo comando oferece uma maneira de elevar rapidamente um comando como administrador do contexto atual de linha de comando não elevada e é familiar para alguns usuários provenientes de outros sistemas operacionais. O runas comando oferece uma maneira de executar programas como qualquer usuário, incluindo administrador, se você assim escolher. Neste momento, o comando sudo no Windows não oferece suporte à execução de programas como outros usuários. Outras diferenças importantes entre sudo e runas incluem:

  • runas permite que você execute programas como outros usuários, incluindo, mas não limitado a, como administrador. Esta funcionalidade está no roteiro para o comando sudo, mas ainda não existe.

  • sudo Permite elevar rapidamente um processo (como administrador):

    • Você pode optar por fazer isso em uma nova janela, que se assemelha ao fluxo do runas administrador.
    • Você pode optar por conectar o processo elevado à janela do console atual com as opções de configuração disableInput e normal. Isso não tem suporte com runas.
  • runas pode solicitar aos usuários uma senha na linha de comando.

  • sudo só pode ser elevado por meio do recurso de segurança Controle de Conta de Usuário (UAC) projetado para proteger o sistema operacional contra uma alteração não autorizada mediante um prompt de verificação.

Você deve considerar seu caso de uso específico e planejar usar o comando que melhor atenda às suas necessidades. Você também deve considerar as implicações de segurança de executar sudo nos modos disableInput e normal. A opção de configuração padrão forceNewWindow é recomendada, a menos que você esteja familiarizado e confortável com os riscos associados às outras sudo configurações.

Sudo para Windows repositório de código aberto

O Sudo para Windows é de código aberto e agradece suas contribuições e comentários. Você pode encontrar o código-fonte do Sudo para Windows no GitHub.

Funcionalidade adicional

Se você está procurando por funcionalidades adicionais que o Sudo para Windows não fornece, confira o gsudo by Gerardo Grignoli que tem uma série de recursos adicionais e opções de configuração ou confira outras soluções da comunidade.