As boas práticas de segurança dos sistemas operativos assentam em duas regras quase básicas! Os utilizadores devem apenas ter acesso às permissões de sistema que realmente necessitam e não devem ser usadas contas de administrador.
Como por vezes necessitamos de ter permissões especiais foram criados mecanismos que temporariamente nos dão esse acesso. No Linux o sudo representa esse papel de forma perfeita e controla o acesso, mas e para Windows? Não existem soluções idênticas?
A ideia da restrição de permissões garante que mesmo um utilizador com uma conta comprometida não consegue ter acesso a zonas criticas do sistema e assim protege-o de problemas.
No Linux a possibilidade de corrermos comandos com o recurso ao sudo permite que executemos comandos no terminal de forma controlada, mas com permissões elevadas.
O Windows tem alguns mecanismos que nos permitem fazer esse mesmo tipo de execução, mas não conseguem dar ao utilizador a mesma liberdade que o suco nos garante, acabando por termos de recorrer à conta de Administrador e aos perigos que isso acarreta.
Mas existem alternativas viáveis e que podem ser usadas, mesmo nativamente no Windows, que vamos descobrir e conhecer um pouco melhor.
Comando do Windows Runas
O comando de DOS runas é a alternativa que a Microsoft disponibiliza aos seus utilizadores para terem uma solução idêntica ao sudo.
Para o usarem apenas necessitam de ter uma janela de DOS aberta ou, em alternativa, usarem a execução de comandos.
Os comandos e as opções que o runas tem são simples e de fácil compreensão e utilização.
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
A forma mais básica de usarem o runas é com o comando abaixo:
runas /user:Administrator “notepad ficheiro.txt”
Se preferirem podem não carregar o perfil do utilizador com que executam o comando, usando a flag /noprofile
runas /noprofile /user:Administrator cmd
Sudo for Windows (1)
A alternativa seguinte é uma aplicação externa ao Windows que permite que corram comandos num terminal de PowerShell. O sudo for Windows tem poucas opções para serem usadas, o que facilita a sua utilização.
Para a sua instalação apenas necessitam de uma janela Power Shell e de executar os comandos abaixo:
iex (new-object net.webclient).downloadstring(‘https://get.scoop.sh’)
set-executionpolicy unrestricted -s cu -f
scoop install sudo
Daí em diante só precisam chamar o comando sudo e vão ter permissões de administrador. O controlo de permissões é feito através de uma janta de UAC.
Sudo for Windows (2)
A opção seguinte é mais abrangente. Trabalha tanto em ambiente gráfico como em janelas de DOS.
O sudo for Windows (o nome é o mesmo da aplicação anterior) instala-se da mesma forma que qualquer outra aplicação do Windows, mas requer que adicionem depois os utilizadores com “poderes” sudo no grupo de utilizadores Sudoers que foi criado.
Depois de tratado esse passo vão ver no menu de contexto das aplicações a opção Sudo, que dará permissões elevadas à execução.
Se preferirem usar o DOS, apenas precisam de chamar o comando sudo e complementar com as opções pretendidas.
Elevate
Outra alternativa que podem usar no DOS é o Elevate. A diferença do Elevate face às outras propostas é que usa o UAC para dar as permissões necessárias aos utilizadores.
É uma alternativa directa ao runas, com a particularidade de poder criar processos que têm elevação de permissões mais alta, dentro de scripts ou processos tratados na janela de DOS.
Elevation PowerToys
Se a vossa opção cair sobre scripting na Power Shell então o Elevation PowerToys é outra alternativa a ter em conta.
Este conjunto de scripts que a Microsoft disponibiliza garantem uma ajuda preciosa no momento de criarem scripts e funções na Power Shell, sem terem de se preocupar em tratar da elevação de permissões.
Existem várias alternativas, todas adaptadas a diferentes necessidades. Naveguem dentro do Elevation PowerToys e vão de certeza encontrar um script que se adapta ao que pretendem.
Com estas cinco alternativas vão poder usar o vosso Windows de forma mais tranquila, garantindo que apenas têm permissões de Administrador quando realmente necessitam e num ambiente controlado!
Conhecem ou usam outras alternativas às apresentadas?