Permissões do usuário no Ubuntu Linux

1

Sou relativamente novato no Linux, mas queria saber como ativar o seguinte:

  • Existem três usuários A , B e C
  • Desejo que os usuários usuários A e B tenham acesso de exclusão de gravação para o diretório inicial de C ?
  • Os arquivos criados por C herdarão as permissões

Isso estará em um servidor Ubuntu.

Qualquer tutorial sobre permissões no Linux também seria ótimo!

    
por Malachi 14.01.2011 / 23:03

2 respostas

2

As ACLs são a maneira nova e interessante:

Editado para adicionar ACLs baseadas em grupos. Eu não posso acreditar que eu realmente esqueci isso.

  1. Habilite as ACLs para o sistema de arquivos.

    • mount -o remount,acl ponto de montagem

      em que mountpoint pode ser / ou /home dependendo se os diretórios base estão em uma partição separada.

    • Adicione a opção acl à entrada apropriada em /etc/fstab

  2. Crie um grupo superusers e preencha com os usuários. (Claro, escolha um nome mais adequado.)

    groupadd superusers
    gpasswd -M userA,userB superusers
    

    Como alternativa, use apenas o grupo de usuários de userC . (Na maioria das distribuições Linux, o usuário userC estaria automaticamente em seu próprio grupo, também chamado de userC .)

  3. Atualize as ACLs nos arquivos:

    setfacl -R -m group:superusers:rwX,default:group:superusers:rwX ~userC
    

    em que superusers é o grupo criado anteriormente e ~userC é o diretório inicial do usuário C.

    As permissões user:* e group:* serão aplicadas aos objetos existentes e default:* às recém-criadas. -R é para recursivo .

A desvantagem das ACLs POSIX é que cada arquivo tem uma cópia delas - nenhuma herança como no Windows, então quando você quer permitir ou proibir alguém de acessar, você teria que edite a ACL de todo arquivo afetado, enquanto o método do cmbrnt permite simplesmente fazer um groupmod . Editar: Adicionar grupos à ACL meio que corrige isso.

    
por 14.01.2011 / 23:26
2

Como você diz que está em um servidor Ubuntu, presumo que esteja usando uma interface de linha de comando (não uma área de trabalho gráfica). Para alterar permissões para um único diretório, mas apenas para um número limitado de usuários, você precisaria alterar o grupo ao qual esse diretório pertence. Cada arquivo (e diretório) pertence a um usuário e um grupo. Digamos que o nome do grupo seja "superusuários" (pode ser qualquer coisa).

  1. Primeiramente, crie um novo grupo usando o comando addgroup superusers . Você precisa ser root para isso, ou executar com o comando sudo.
  2. Em seguida, você alteraria o grupo ao qual o diretório pessoal do Usuário C (/ home / c) pertence. Isso é feito pelo comando chown -R :superusers . O sinalizador -R garante que todos os arquivos no diretório pertençam ao grupo de superusuários.
  3. Agora você precisa adicionar o usuário A e o usuário B como membros desse grupo. Isso é feito executando um comando para cada usuário. Execute sudo usermod -G superusers -a B . Naturalmente B é o nome do usuário que você deseja adicionar ao grupo. A sinalização -a anexa os superusuários do grupo à lista de grupos dos quais o usuário B é membro. Isso é para garantir que não estragaremos alguma coisa. Faça isso mais uma vez para o usuário A.

Se você seguiu essas etapas corretamente e teve privilégios de root, agora deve ter o efeito desejado que está procurando. O usuário A e B devem poder escrever e ler para o diretório pessoal do usuário C.

Em alguns casos, os arquivos podem ser legíveis ou graváveis apenas pelo proprietário. Isso é muito para explicar aqui, mas você pode ler as "permissões de arquivo" e o chmod -command se quiser estudar mais. Um bom guia está disponível aqui . O que isso significa é que alguns arquivos individuais não podem ser lidos ou gravados pelo grupo - apenas pelo proprietário. Para mudar isso, você usaria o comando chmod g+rw <file> ou chmod g+rw -R /home/C para alterar as permissões de cada arquivo no diretório inicial do usuário C. Isso adiciona permissões de leitura e gravação ao grupo do qual o arquivo pertence. grupo de casos "superusuários", conforme a etapa 2 do guia.

Além disso, direi que essa não é uma maneira recomendada de fazer as coisas. Normalmente, você criaria um terceiro diretório e concederia a todos os três usuários acesso de leitura / gravação a esse diretório.

Não conheço uma maneira de garantir que todos os arquivos criados nesse diretório tenham a mesma propriedade de usuário e grupo. Você pode adicionar permissões padrão usando o umask -command, mas isso não alterará a propriedade padrão. Na verdade, duvido que isso seja factível e, na verdade, contra os padrões * nix, mas seria ótimo se alguém pudesse me corrigir sobre isso.

    
por 14.01.2011 / 23:19