Existe um equivalente no Windows do Setuid?

1

Eu quero dar a um programa os direitos do usuário que o está executando. Existe um equivalente do Setuid no Windows (preferencialmente no Windows 7 ou pelo menos no Windows pós-XP)?

E se eu quiser que o programa tenha mais direitos do que o usuário que o está executando? (Por exemplo, eu quero que o programa escreva para Program File, enquanto eu não quero que o usuário seja capaz de fazê-lo).

    
por Kii 15.09.2015 / 16:16

2 respostas

2

Resposta curta, você não precisa fazer nada para executar um programa com os direitos do usuário que o gerou. Isso é padrão para sistemas Windows.

Para forçar um programa a ser executado como um usuário totalmente diferente, como o SetUID, a Microsoft forneceu o comando Runas , que você pode usar para chamar um executável sob uma credencial de usuários diferentes.

Além disso, em sistemas habilitados para o UAC, como o Windows 7, você pode manter Shift + Clique com o botão direito do mouse em um executável para executar o programa em um usuário diferente e invocar esses direitos de administrador, se necessário.

Por favor, note que a resposta abaixo está relacionada com a pergunta original sobre o Sticky.

Para responder diretamente à sua pergunta, sim e não. Pode-se emular a função, mas o aplicativo é totalmente diferente.

Eu acho que você pode estar confundindo o Sticky bit com as outras permissões especiais do UNIX, SetUID e SetGID, os quais afetam o modo como os aplicativos executam em relação ao usuário invocar o processo, mas o Sticky não o faz.

O Sticky não permitirá que nenhum usuário, além do usuário root, exclua ou renomeie um arquivo, mesmo que o usuário tenha Escreva direitos e edite o arquivo.

Na janela Permisões avançadas (em Propriedades de objetos - > guia Segurança - > Avançado), você pode adicionar ou editar permissões para o CREATOR OWNER " usuário "e conceda-lhes permissões Delete e Delete subfolders and files . Então, para cada outra entidade na ACL, revogue (mas não negue) essas mesmas permissões.

Isso permitirá que todos os usuários com gravação criem / editem qualquer arquivo, mas somente o proprietário do arquivo pode excluí-lo.

Note que esta abordagem também tem a mesma falha que o Sticky tem: que qualquer usuário com direitos de edição, pode sobrescrever o arquivo com 0B, o que é conceitualmente similar a deletar o arquivo (muitos argumentam que ele é bom). .).

boa sorte.

    
por 15.09.2015 / 16:31
1

No Windows, você não pode executar um programa como um usuário diferente sem saber a senha do usuário ou salvando essas informações na máquina uma vez.

Um programa no Windows sempre será executado por padrão usando os privilégios do usuário atual. Isso também se aplica a quais pastas ou configurações o programa pode acessar. Essas configurações podem ser alteradas na guia Segurança de um programa ou pasta.

Você pode iniciar um programa com outro usuário (se, por exemplo, você detiver SHIFT + right-click e depois selecionar Run as different user ou apenas Run as administrator ) para aumentar os direitos de outro usuário que tenha direitos de administrador na máquina .

Usar o comando runas CMD também pode conseguir isso e pode ser definido em um atalho para automatizar o login

Documentação aqui

Um exemplo:

runas /user:.\localadmin /savecred notepad.exe

O parâmetro /savecred informa ao comando que a senha do usuário já foi salva na máquina e não exigirá uma senha na execução. A senha deve primeiro ser armazenada no Gerenciador de Credenciais no Painel de Controle.

Observe que isso também carregará o programa usando o perfil do outro usuário. Um programa que salvou as configurações no AppData, por exemplo, irá carregá-las do usuário que executou o programa.

O Windows Services, no entanto, pode ser executado como um usuário diferente. Isso pode ser feito em

Services.msc console > select Service > Properties > Log On

    
por 15.09.2015 / 16:44

Tags