Qual é a aplicação da propriedade de arquivos (chown) no linux?

1

Eu enfrentei um problema ao alterar as permissões de um grupo específico de usuários no meu sistema.

suponha que eu tenha quatro usuários u1, v1 e u2, v2 e dois grupos g1 e g2. u1, v1 estão no grupo g1 e u2, v2 estão no grupo g2, respectivamente.

Agora eu quero que um arquivo que seja "foo.bar" seja acessível (rwx) apenas por u1 no grupo g1. Eu digitei o seguinte para esse propósito:

sudo chown u1:g1 foo.bar
sudo chmod 700 foo.bar

mas tenho as seguintes perguntas:

primeiro. Qual é o uso de dar uma propriedade de arquivo a um grupo onde podemos restringir outros usuários usando o comando chmod? (o terceiro campo em permissões de arquivo rwx-rwx- rwx ) qual é a aplicação do chown aqui?

deixe-me dar um exemplo para esta pergunta: Eu só quero que o "foo.bar" seja acessível a partir de usuários do g1 e não de usuários no sistema. Pode ser feito apenas usando o comando chown? se não qual é a sua aplicação!

segundo. como podemos dar permissões específicas para um grupo específico? Por exemplo, eu quero que o grupo g1 tenha somente permissão de leitura em qualquer arquivo que seja de sua propriedade. então quando eu digito o seguinte no terminal

sudo chown :g1 foo.bar

sem mais comandos, todos os usuários u1 e v1 só têm permissão de leitura neste arquivo. é possível apenas por chown?

Espero ter deixado meus pontos claros para todos vocês.

    
por PsP 28.06.2018 / 11:38

2 respostas

1

Chown e chmod têm dois propósitos diferentes:

  • chown define quem é o proprietário do arquivo.
  • chmod define quem pode fazer o quê.
  1. Para restringir o acesso a um grupo específico: o grupo deve ser o proprietário do arquivo e os bits de permissão devem ser definidos corretamente.

    sudo chown :g1 foo.bar && sudo chmod 770 foo.bar
    

    Os 3 últimos bits de permissão estão relacionados a todos os outros usuários: O comando chown define a propriedade. Os usuários que não são proprietários ficarão preocupados com esses três últimos bits de permissão.

  2. Se você quiser definir permissões específicas para um grupo que seja o proprietário do arquivo: sudo chmod 770 foo.bar . Isso também pode ser definido na criação de arquivos com umask .

Senão, se você quiser permissões diferentes para cada grupo, convém dar uma olhada nas permissões da ACL. Isso permitirá que você defina, por exemplo, r-- para g1, rwx para g2 e --- para outras pessoas.

    
por 28.06.2018 / 12:07
1

Now I want a file which is foo.bar to be accessible(rwx) only by u1 in g1 group. I typed the following for this purpose:

sudo chown u1:g1 foo.bar
sudo chmod 700 foo.bar

Isso dará permissões no arquivo para o usuário u1 (apenas). O grupo para o qual você definiu o arquivo realmente não importa, pois os membros do grupo não têm permissões definidas. Ou melhor, eles têm exatamente as mesmas permissões que "outros", portanto, não importa se determinado acesso de usuário é determinado pelas permissões "grupo" ou "outras".

Observe que você não pode exigir diretamente que ambos o usuário e o grupo correspondam. O arquivo acima estará acessível para u1 , independentemente de sua participação no grupo.

O que você pode fazer é criar um diretório de propriedade de root.g1 , acessível apenas por usuário e grupo; e, em seguida, um arquivo dentro dele que pertence a u1 e é acessível apenas pelo usuário. Isto é mais frequentemente feito por ex. crontabs, que são de propriedade de um usuário em particular, mas só devem ser modificados por uma ferramenta específica (setgid). Veja por exemplo /var/spool/cron/crontabs/ em qualquer sistema Debian / Ubuntu.

What is the usage of giving a file ownership to a group where we can restrict other users using chmod command ... I only want foo.bar to be accessible from g1 users and not any [other] users in the system.

Você define o grupo do arquivo como g1 , concede o acesso que desejar ao grupo. Por exemplo. chown a.g1 file && chmod 660 file só permitiria que o usuário a e os membros do grupo g1 lessem e gravassem o arquivo. (Além disso, o usuário a pode alterar as permissões. Se você quiser evitar isso, será necessário tornar o arquivo de propriedade de algum usuário que não fará isso.)

how we can give specific permissions to a specific group ? for example I want g1 group to have only read permission on any files which is owned by it.

Você não pode. As permissões são uma propriedade do arquivo, não do usuário ou grupo. No caso acima, o arquivo recebeu permissões de leitura / gravação para o grupo, e é isso que acontece. Você precisará tomar cuidado para não permitir que nenhum arquivo tenha permissões de gravação para o grupo, se for o que você deseja.

[the question from the comment] chown is mainly used for giving ownership to a group so later we can limit the group users to the file by using chmod command yes? otherwise we can restrict all other users except the owner by using chmod alone and there is no need to use chown.

Bem, praticamente. É claro que root pode usar chown para realmente alterar o usuário proprietário, se isso for necessário. Isso acontecerá, pelo menos, quando criar um novo usuário: a propriedade do diretório home deve ser definida de alguma forma.

(Se o grupo principal do usuário for apropriado, você poderá usar chmod sem chown , mas isso é apenas ignorar um chown desnecessário.)

    
por 28.06.2018 / 12:23