2

I was so sure of myself, I thought I knew about permissions. Until someone asked me this.

Having these users:

User   Group
----   -----
juan   juan
pedro  pedro
maria  maria
jose   jose
miguel miguel
eric   eric
lola   lola
paola  paola       

This directory: /opt/privado with Owner = juan:juan

Permissions:

juan 111
pedro  110
maria and jose 101
miguel and eric 100
lola   000

There are no common permissions for creating a group myGroup and assigning, for example, 110 because I have different permissions for a different group of users. How can this be done on Unix? Really the issue is for Linux, but maybe it is the same solution.

2 Answers 2

7

You want to use POSIX ACLs for this, if you can't create sensible groups. See the setfacl command.

1
  • I agree with @geekosaur. Also check the man pages for acl(5) and getfacl(1).
    – jsbillings
    May 4, 2012 at 22:08
2

Unix allows one set of mode bits per file. On traditional implementations of Unix, you can control access by the owner, owner's group, and others — and that's it.

If you have a recent Unix (including Linux), you can use ACLs to solve this problem:

setfacl -m u:juan:7 -m u:pedro:6 -m u:maria:5 \
    -m u:jose:5 -m u:miguel:4 -m u:eric:4 -m u:lola:0 /opt/privado

You can then view the ACL with:

getfacl /opt/privado

POSIX ACLs are very powerful, yet pretty obscure in most circles. Check out the manpages for more information.

1
  • 1
    @geekosaur answered this while I was typing my answer (and got my vote too as a result).
    – Alexios
    May 4, 2012 at 22:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .