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.)