Criando novas contas de usuários
Verifique se seu domínio de contexto é sysadm_r:sysadm_t role, depois basta usar o comando useradd para adicionar um novo usuário. Para verificar se seu uid é 0 e se está em sysadm_r:sysadm_t role, digite o seguinte comando:
id
uid=0(root) gid=0(root) groups=0(root) context=faye:sysadm_r:sysadm_t
Caso seu uid seja o da sua conta regular, então faça o login com "su" primeiramente e siga os comandos abaixo:
useradd -c "SE Linux test user" -m -d /home/setest -g users -s /bin/bash -u 1005 nome_de_usuário
$ finger nome_de_usuário
Login: nome_de_usuário Name: SE Linux test user
Directory: /home/nome_de_usuário Shell: /bin/bash
Never logged in.
No mail.
No Plan.
passwd nome_de_usuario
Enter new UNIX password: senha
Retype new UNIX password: senha
passwd: password updated successfully
Assim o novo usuário "nome_de_usuário" foi criado.
Configurando regras para usuários
Como exemplo, para que o usuário tenha acesso a user_r, é necessário configurar o arquivo
/etc/selinux/users. Para isso, insira no final de seu arquivo:
user usuario roles { user_r };
Assim o usuário "usuário" é autorizado a ter acesso à user_r role.
Então é necessário atualizar o arquivo /etc/selinux/users executando o seguinte comando:
# make -C /etc/selinux load
Ao terminar aparecerá algo como:
Success
touch tmp/load
make: Leaving directory `/usr/share/selinux/policy/current'
Agora deve-se configurar um contexto de segurança default, o que será visto numa seção seguinte.
Editando domínios de usuários
O arquivo de configuração que contém os domínios dos usuários é
/etc/selinux/domains/user.te, altere-o adicionando as seguintes linhas:
full_user_role(second)
allow system_r second_r
allow sysadm_r second_r
Também adicione o seguinte comentário:
#Ao adicionar novas regras, edite o macro in_user_role em macros/user_macros.te
Para editar o arquivo
/etc/selinux/macros/user_macros.te, entre num editor de texto e procure (no final do arquivo) a string in_user_role e adicione: "role second_r types $1;"
- A linha full_user_role(second) cria o domínio second_t e os diretórios second_home_dir_t e second_home_t;
- O diretório second_tmp_t é criado para arquivos que estão em níveis inferiores a /tmp;
- O diretório second_tmpfs_t é criado para dividir o espaço de memória criado no contexto tmpfs;
- Os diretórios second_tty_device_t e second_devpts_t são criados para rotular os "tty devices" e os "pseudo tty devices".
Agora que já criamos um novo domínio de usuário (second_t), criaremos um novo usuário para usá-lo.
Criando um novo usuário (newuser) para o novo domínio criado
Com o próprio comando useradd, crie um novo usuário e o adicione a
/etc/selinux/users, que só tenha acesso a regra second_r. Execute o comando:
# make -C /etc/selinux load
Para aplicar o policiamento:
Deve-se configurar o domínio default para a nova regra, editando o arquivo
/etc/security/default_type e adicionando a linha:
second_r:second_t
Agora é necessário rotular manualmente o arquivo /home/newuser executando o seguinte comando:
# find /home/newuser | xargs chcon -h system_u:object_r:second_home_t ; chcon -h system_u:object_r:second_home_dir_t /home/spike
Agora que o novo usuário foi criado, tente fazer o login como sendo ele.