Use o SELinux para restringir um diretório a um usuário em particular

1

Eu tenho algumas perguntas: (tarefas de administradores)

Aqui está o que eu pedi para fazer

Create user Tim and add him to the supplementary group Webdev (Create the group if it doesn't exist), also Set Tim's default home directory to /websites - if this directory does not exist, create it.

Então, aqui está o que eu fiz:

useradd -m -d /websites Tim 
groupadd Webdev
useradd -aG Webdev Tim

Acho que fiz isso corretamente.

Agora, para a segunda tarefa, estou realmente confuso

Apply the same SELinux contexts and permissions to /websites that would be found on a user's /home directory such that Tim and only Tim will have access to /websites

Como eu seria capaz de fazer isso? Quero dizer, deveria o diretório pessoal do Tim ser / sites de qualquer maneira?

    
por alkabary 17.06.2016 / 01:12

1 resposta

2

Primeira pergunta: sim. Embora você possa ter usado a opção -G para adicionar o grupo suplementar Webdev no momento da criação da conta: -G Webdev .

O SELinux marca os diretórios home dos usuários como user_home_dir_t . Portanto, para definir o contexto do SELinux, você pode usar:

# chcon -t user_home_dir_t /websites

Observe que, se você tivesse o diretório base de outro usuário como referência, também poderia copiá-lo com # chcon --reference=<other home> /website

Para definir o proprietário (Tim):

# chown Tim: /website

Os dois pontos ( : ) após o nome de usuário informam chown para definir a propriedade do grupo como a mesma. Ou seja, ls -ld /website mostrará Tim Tim .

Para definir permissões:

# chmod 755 /website

755 é o padrão para diretórios iniciais na maioria dos sistemas (all?) e se traduz em rwxr-xr-x .

    
por 17.06.2016 / 09:03