Eu sempre trabalho em uma conta de não administrador no meu computador com Windows. Às vezes, preciso instalar programas que exijam acesso de administrador. Como eu uso principalmente o prompt de comando do Windows, existe um comando do Windows para escalar privilégios, semelhante ao comando do terminal Linux sudo
?
windows
command-line
privileges
ukanth
fonte
fonte
doskey sudo= runas /user:Administrator "cmd /k cd \"%cd%\" & $*"
wsudo
, umasudo
ferramenta -como para Windows disponível como um pacote Chocolatey.Respostas:
O comando runas .
Apenas corra:
iniciar um shell de comando como administrador
fonte
/noprofile
.Runas
apenas executa comandos sob um conjunto diferente de credenciais. Mesmo que suas credenciais tenham permissões de administrador, isso não significa que todos os processos sob suas credenciais sejam executados como administrador.Descobri o elevate hoje, que "executa um comando com elevação de privilégio do UAC. Isso é útil para trabalhar dentro de prompts de comando ou com arquivos em lotes". Não é o mesmo
sudo
que mudar o usuário em execução para Administrador, mas sua sintaxe é muito mais simples de usar do querunas
e pode manter o diretório atual, permitindo o uso de caminhos relativos.O objetivo do Elevate não é contornar ou ignorar o UAC (Controle de Conta de Usuário), mas trabalhar com ele. Desde que o UAC esteja ativado, deve haver algum tipo de prompt em algum momento do processo. Se você precisar se livrar completamente das solicitações, desative o UAC .
O ponto de dor que o alívio alivia é escalar um processo específico a partir de um shell não privilegiado e depois continuar normalmente. Sem isso, você precisa iniciar um prompt de comando privilegiado com o botão direito do mouse> "Executar como Administrador" , que não pode ser facilmente script, antes de tentar o comando privilegiado.
fonte
%wheel ALL=(ALL) NOPASSWD: ALL
no sudo.@elevate %*
=> lucro!Você pode usar o comando runas, que é semelhante, ou pode verificar o projeto sudo para Windows no SourceForge, que adiciona um comando sudo.
A diferença é sutil:
Digamos que você tenha dois usuários. Bob é um usuário normal e James é um administrador.
Se você fizer login como Bob e usar "runas james acommand", o comando será executado como se fosse executado por James, para acessar as configurações de usuário de James e todas as alterações de usuário entrarem nas pastas James Meus Documentos e configurações, etc. estiver instalando um aplicativo, por exemplo, ele será instalado como James, não como Bob.
Se, por outro lado, Bob "sudo acommand", o comando ainda é executado como Bob, mas com permissões elevadas - assim como o comando Linux sudo. Para impedir que qualquer usuário possa sudo, você deve definir um grupo de usuários sudoers que contenha a lista de usuários normais que têm permissão para elevar usando o sudo. Os usuários ainda precisam fornecer credenciais antes da elevação.
Às vezes a diferença não é importante, às vezes é, e acho que ambos os comandos podem ser úteis.
fonte
~/.themes
, o aplicativo sudo-ed não poderá acessar esse tema, porque não está presente/home/root/.themes
, e usará o tema feio gtk padrão.Você também pode usar os PowerToys de elevação de script .
fonte
Se você está pronto para mudar para consoles alternativos, existe o ConEmu (eu sou o autor). Um de seus recursos - a capacidade de executar guias elevadas e não elevadas em uma única janela do ConEmu. As guias também podem ser iniciadas com credenciais diferentes.
Para conforto do usuário, existe o arquivo em lote csudo.cmd (que pode ser facilmente adotado para o bash). Leia a descrição completa no wiki do projeto . Em resumo, quando você executa algum comando da guia não elevada existente, por exemplo
O ConEmu será iniciado
dism
no novo console / guia elevado (com o prompt anterior do UAC no Vista ou na caixa de login no XP).Por padrão,
csudo
inicia um novo console em uma divisão (pode ser alterado através da edição decsudo.cmd
conteúdo).E, claro, você pode renomeá-lo para
sudo.cmd
se você gosta dasudo
palavra "clássica" .fonte
press enter or esc to exit
mensagem.sudo
comando é executado! Você está indo mal.Método rápido:
Três etapas para adicionar sudo.
Abra o PowerShell.
Copie o seguinte script (Ctrl + C) e cole-o no PowerShell (Alt + Space + E + P):
Ele habilitará permanentemente o
sudo
comando no PowerShell.Uso:
Exemplos:
Método longo para aprender:
Nota: eu misturei o script dos dois artigos para criar o script mencionado acima. Em vez de colar manualmente o script no bloco de notas, adicionei as
Out-File
instruções para salvarps1
e os$profile
arquivos do script.Dica: Se você não é um grande fã de pop-ups do UAC (como eu), salve o seguinte no arquivo * .reg e execute-o:
fonte
. : File C:\Users\User\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is disabled on this system.
set-executionpolicy remotesigned
. Outras opçõesremotesigned
são descritas nos documentos oficiais .powershell -c start -verb runas program.exe
funcionalidade. Observe também que você não pode elevar assim com o prompt do cmd (nativamente). Powershell é a melhor opção nativa.Se você estiver fazendo isso no Windows, além do comando Executar como mencionado em algumas outras respostas, também há maneiras de fazer isso com o mouse.
Se você pressionar a Shifttecla enquanto clica com o botão direito do mouse na maioria dos arquivos executáveis no Windows, deverá observar algumas opções mais avançadas. Uma delas é a
Run As...
opção " " (acho que é chamada "Run As Administrator
" do Vista em diante).Você também pode baixar uma versão mais avançada do RunAs da Microsoft, chamada ShellRunAs , que possui aprimoramentos sobre o comando RunAs interno, tanto na linha de comando quanto nos modos gráficos, incluindo a possibilidade de salvar credenciais da conta
fonte
Existe um pacote com chocolate com o nome conveniente sudo . Você pode instalar o pacote com chocolatey usando este comando:
Em qualquer shell do Windows / MS que você precise usar, você poderá usá-lo
sudo
conforme o esperado.fonte
Surun é um aplicativo gratuito e de código aberto que permite que certos programas sejam executados com direitos administrativos, sem fornecer uma senha sem alterar o registro do usuário ou modificar variáveis de ambiente.
Quando eu estava usando o Windows XP, este aplicativo me ajuda muito. Beta funciona no Windows 7.
fonte
Como você provavelmente descobriu, runas permitirá executar como outro usuário, mas não pode elevar e não passa por diretórios atuais, variáveis de ambiente ou linhas de comando longas.
O shell Hamilton C resolve isso com um su e sudo genuíno. su permite executar um comando como outro usuário; sudo (na verdade, um alias para su) permite executar um comando elevado. Você também pode fazer as duas coisas, executando elevado como um usuário diferente. Diretórios atuais, variáveis de ambiente e longas linhas de comando são transmitidas por meio de um handshake de memória compartilhada entre su em execução no contexto do chamador e uma cópia de si mesma em execução como um interlúdio com as novas credenciais que iniciam o filho. Divulgação completa: sou o autor.
fonte
Um
sudo
substituto funcional para omintty
terminal da Cygwin seria colocar o seguinte script no PATH do usuário:Para mim, este é o único substituto viável para elevar privilégios de programas como
vim
oucygrunsrv
enquanto trabalhava em um terminal no Windows.fonte
Este script faz o trabalho:
Salve-o
sudo.cmd
e adicione-o ao seu PATHNota: os
runas
meios neste contexto "Executar como administrador" e não "Executar como outro usuário"Retirado daqui e ligeiramente editado para remover o cabeçalho cscript.exe da saída
fonte
A solução mais simples, na minha opinião, é aproveitar o PowerShell para realizar o trabalho, que é portátil e solicitará ao usuário o uso do UAC.
Você pode simplesmente executar isso em qualquer shell (cmd ou powershell)
fonte
O script vbs a seguir faz o truque para mim. Eu coloco
C:\Windows\System32
Exemplo de uso em um prompt de comandos
sudo net start service
fonte