InfoFAQ

InfoFAQ

sexta-feira, 29 de janeiro de 2016

Conceder permissões para usuário restrito em serviços do Windows

Neste artigo irei mostrar como conceder permissões para usuário restrito em serviços do Windows


Muitas vezes enfrentamos situações que não queremos deixar o usuário como Administrator Local.
Cenário: Usuário Lab, está no grupo Domain Users e no grupo local Remote Desktop Users, para acesso remoto.
O usuário LAB não possui permissão para fazer exatamente nada que esteja fora do seu perfil, como exemplo iremos pegar o Service.Lab, quando o usuário Lab acessa o services.msc e tenta manipular o serviço “Service.Lab” ele nota que não possui permissão nem mesmo para fazer um stop/start no serviço.
Muitos administradores de redes simplesmente acrescentam o usuário no grupo local de Administrators pensando que irão resolver o problema, que na verdade irão, mas podem causar muitos problemas no futuros.
Ex: Vírus, deleção acidental e entre outros.

1. Primeiro passo é descobrir quais permissões o nosso serviço possui, pois na hora de definir as permissões para o usuário teremos que manter a antiga.
2. Iniciar > Executar > cmd > OK
3. Lembrando que é necessário executar o CMD como Administrator.
4. Digite: sc sdshow “nome do serviço”.


A saída do comando será algo parecido com isso:

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCR
RC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Essas são as permissões que o serviço já possui.

Vamos pegar esse trecho “D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)” para entender como funciona a nomenclatura das permissões.

D:- Discretionary ACL (DACL), Controle de permissões.
A:- Allow – Aqui você passa parâmetros que está liberando as permissões de controle e de grupos/usuários.
CCLCSWRPWPDTLOCRRC = São as permissões que está liberado para o usuário trabalhar com o serviço. Ex: stop/start do serviço.
CC - SERVICE_QUERY_CONFIG - ask the SCM for the service"s current configuration
DC - Delete All Child Objects 
LC - SERVICE_QUERY_STATUS - ask the SCM for the service"s current status 
SW - SERVICE_ENUMERATE_DEPENDENTS - list dependent services 
RP - Read all properties 
WP - SERVICE_STOP - stop the service 
DT - SERVICE_PAUSE_CONTINUE - pause / continue the service 
LO - SERVICE_INTERROGATE - ask the service its current status 
CR - SERVICE_USER_DEFINED_CONTROL - send a service control defined by the service"s authors 
SD - Delete 
RC - READ_CONTROL - read the security descriptor on this service.
WD - Modify permissions 
WO - Modify owner 
BA- Built-in administrators


Abaixo algumas siglas nos quais podemos usar para dar permissão por grupo:


"AO"Account operators
"RU"Alias to allow previous Windows 2000
"AN"Anonymous logon
"AU"Authenticated users
"BA"Built-in administrators
"BG"Built-in guests
"BO"Backup operators
"BU"Built-in users
"CA"Certificate server administrators
"CG"Creator group
"CO"Creator owner
"DA"Domain administrators
"DC"Domain computers
"DD"Domain controllers
"DG"Domain guests
"DU"Domain users
"EA"Enterprise administrators
"ED"Enterprise domain controllers
"WD"Everyone
"PA"Group Policy administrators
"IU"Interactively logged-on user
"LA"Local administrator
"LG"Local guest
"LS"Local service account
"SY"Local system
"NU"Network logon user
"NO"Network configuration operators
"NS"Network service account
"PO"Printer operators
"PS"Personal self
"PU"Power users
"RS"RAS servers group
"RD"Terminal server users
"RE"Replicator
"RC"Restricted code
"SA"Schema administrators
"SO"Server operators
"SU"Service logon user


Lembrando que podemos ser mais restritivo e dar a permissão por SID do usuário.
Para pegar o SID de um usuário use o comando dsget em seu Active Directory:
Exp: dsget user “CN=Lab,OU=Users,DC=lab,DC=local” –sid



5. Agora vamos setar a permissão apenas para o usuário Lab
Sintaxe:  sc sdget “nome do serviço” <permissões>

Sc sdget “Service.Lab” D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCR
RC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Notem que estamos mantendo as permissões antigas e agora iremos dar a permissão para o usuário Lab.

Sc sdget “Service.Lab” D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCR
RC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD) (A;;CCLCSWRPWPDTLOCRRC;;; S-1-5-21-1607579371-585640051-1745129182-1147)




Duvidas? Deixe seu comentário.


Nenhum comentário:

Postar um comentário