General
Previous  Top  Next

File permissions under Linux are very different and yet somewhat similar to the ones on Windows NT at the same time. You might be slightly disappointed when I tell you that I find Linux's file permissions less powerful than Windows NT's or Windows 2000's ACLs. This is because Linux's native file system, extfs2, doesn't support more granular permissions (Solaris 7 and 8 in contrast do support ACLs similar to the ones from NT – but their administration is not exactly – aeh – easy).

As you most likely know you can assign multiple users and groups to an object under Windows NT (and Windows 2000). If you ever read a Microsoft book or attended an official administration course you might recall that, and that is quite important to understand, you should apply only group permissions to objects, rather than assigning individual users. Microsoft also recommends that you put users into global groups, global groups into local groups, and assign local groups (and permissions) to objects. The next figure shows this a little more obvious

User1, User2, User3
-> Administration (global)


User4, User7, User8
-> Research (global)
-> Presentation (local)
-> object (read)
User10, User11
-> Management (global)



So in this example we have three global groups that will all be member of the one local group Presentation. This local group will have read permissions on the object. What is the message behind this? Point is, that with this concept you can get around with file permissions by only assigning permissions to one group. And that's the catch, under LINUX (Unix), you can have three types of permissions assigned to a file (there a few more but not relevant right now):

      owner      rwx
      group      rwx
      everyone   rwx

Every file has an owner, so the owner permissions determine what kind of permissions the owner has. Then you assign a group to the file and the according permissions, just like extensively described above. Finally you can configure everybody else's rights to the file. RWX obviously stands for READ, WRITE and EXECUTE.