3 pontos por GN⁺ 2024-02-09 | 1 comentários | Compartilhar no WhatsApp
  • Anunciado o lançamento do Sudo para Windows no Windows 11 Insider Preview Build 26052
  • O Sudo para Windows é uma nova forma de permitir que os usuários executem comandos elevados diretamente de uma sessão de console sem privilégios
    • Agora não é mais necessário procurar por "Executar como administrador"
  • Disponibilizado como open source no GitHub
  • Caso você precise de recursos adicionais que o Sudo para Windows não oferece, é recomendado conferir o gsudo, de Gerardo Grignoli

Como ativar o Sudo para Windows

  • É possível ativar o Sudo para Windows indo até a página "Configurações para desenvolvedores" nas configurações do Windows e habilitando a opção "Ativar Sudo"
  • Ou ativá-lo executando o seguinte comando em uma sessão de console elevada: sudo config --enable

Como configurar o Sudo para Windows

  • Atualmente, o Sudo para Windows oferece suporte a três opções de configuração: executar em uma nova janela (forceNewWindow), desabilitar entrada (disableInput) e inline (normal)
  • Para alterar a opção de configuração, use o menu suspenso na página "Configurações para desenvolvedores" das configurações do Windows ou execute um comando em uma sessão de console elevada.

Opção de configuração 1: Em uma nova janela

  • Nessa configuração, o Sudo para Windows abre uma nova janela de console elevada e executa o comando nela.
  • Por exemplo, ao executar sudo netstat -ab, uma nova janela é aberta e o comando é executado nela.

Opção de configuração 2: Desabilitar entrada

  • Nessa configuração, o Sudo para Windows executa o processo elevado na janela atual, mas o novo processo é criado com o stdin fechado.
  • Ou seja, o novo processo não aceita entrada do usuário, então não funciona para processos que exigem entrada adicional após a elevação de privilégios.

Opção de configuração 3: Inline

  • Essa configuração é a que mais se aproxima do comportamento do sudo em outros sistemas operacionais.
  • O Sudo para Windows executa o processo elevado com stdin, stdout e stderr conectados à janela atual.
  • Isso significa que o novo processo elevado pode receber entrada e enviar saída para a janela atual.

Como funciona

  • Ao usar o sudo na linha de comando para elevar os privilégios de um processo, uma caixa de diálogo do UAC é exibida para que o usuário confirme a elevação.
  • Quando o usuário confirma a elevação, o processo é elevado de acordo com a opção de configuração escolhida.
  • Para conferir os parâmetros opcionais do comando sudo, execute sudo -h no console.

Em uma nova janela

  • Nessa configuração, o sudo.exe abre uma nova janela de console elevada e executa o comando nela.
  • A nova janela é iniciada com o mesmo diretório de trabalho e as mesmas variáveis de ambiente da janela atual.
  • Essa configuração tem um fluxo semelhante ao comando runas.

Desabilitar entrada e inline

  • Nessa configuração, o sudo.exe inicia um novo processo elevado, inicia um processo sudo.exe elevado e o sudo.exe original sem privilégios estabelece uma conexão RPC com o novo processo elevado.
  • Em outras palavras, as informações são repassadas da instância sem privilégios do sudo para a instância elevada.
  • Em especial, os handles de console do processo sem privilégios são repassados ao processo elevado, permitindo que o processo elevado leia a entrada do processo sem privilégios e grave a saída nele.
  • No entanto, na configuração "Desabilitar entrada", o handle de entrada do console não é repassado ao processo elevado, portanto ele não pode ler entrada do usuário.

Próximos passos

  • A equipe está trabalhando para tornar o Sudo para Windows open source e pretende compartilhar mais detalhes sobre os planos nos próximos meses.
  • Foi pedido que o feedback seja compartilhado diretamente no repositório do GitHub.

Opinião do GN⁺:

  • O lançamento do Sudo para Windows é um avanço importante por oferecer aos usuários do Windows uma experiência de gerenciamento de privilégios no estilo Linux.
  • A ferramenta ajuda desenvolvedores a trabalharem com mais eficiência e, ao se tornar open source, pode receber contribuições da comunidade.
  • Do ponto de vista de segurança, o uso da configuração "inline" exige cautela, e é interessante que mais informações sobre essas questões de segurança devam ser fornecidas em documentação futura.

1 comentários

 
GN⁺ 2024-02-09
Comentários no Hacker News
  • O comando sudo está sendo introduzido no Windows. Não se trata de um simples porte do sudo do Linux, mas de uma nova implementação que leva em conta as diferenças na estrutura de permissões entre os sistemas operacionais. O objetivo é oferecer ao usuário a experiência de executar comandos com privilégios de administrador na mesma janela de terminal.
  • Isso passa uma sensação parecida com quando o PowerShell substituiu curl e wget por comandos completamente diferentes. Isso pode ser problemático porque os argumentos não são compatíveis.
  • O elevate da Nirsoft funcionava bem, mas é melhor ter um recurso mais integrado ao sistema.
  • É interessante que o sudo seja mantido quase que por uma única pessoa.
  • É estranho escrever sobre a excelente usabilidade do sudo sem mencionar sistemas operacionais da família Linux/Unix.
  • Quando trabalhava na Microsoft, a UAC (User Account Control) não era considerada uma fronteira de segurança. Fico curioso para saber como esse recurso pôde ser lançado, ou se agora a UAC passou a ser considerada uma fronteira de segurança.
  • Estou usando o sudo.ps1 do psutils, instalado via scoop. Há um prompt de UAC, mas ele é adequado para trabalho interativo.
  • Espero que o "Windows 12" se torne um gerenciador de janelas + desktop rodando sobre Linux. Ele reproduziria cuidadosamente os bugs antigos para manter compatibilidade com Windows 95/7/8/10/11.
  • Considerando a direção dos comandos do PowerShell, é de se esperar que essa nova implementação de sudo seja um comando extremamente complexo.
  • O sudo foi introduzido como um novo recurso no Windows, mas por enquanto parece inseguro. A expectativa é que melhore com o tempo.