Security Architecture and Engineering

Access Control

Access Control List

  • 9-bit model not always flexible enough
  • Many systems (Multics, Windows XP and later, Solaris, some Linux) have more general Access Control Lists
  • ACLs are explicit lists of permissions for different parties
  • Wildcards are often used

Sample ACL

smb.* rwx
4187-ta.* rwx
*.faculty rx
*.* x

Permissin Checking Alorightm

if curr_user.uid == file.uid
    check_owner_permissions();
else if curr_user.gid == file.gid
    check_group_permissions();
else
    check_other_permissions();
fi

Owner Permissions

$ id
uid=54047(smb) gid=54047(smb) groups=0(wheel),3(sys),54047(smb)
$ ls -l not me
----r--r-- 1 smb wheel 29 Sep 12 01:35 not me
$ cat not me
cat: not me: Permission denied

Directory Permissions

$ ls -ld oddball
dr--r--r-- 2 smb wheel 512 Sep 12 01:36 oddball
$ ls oddball
cannot get at
$ ls -l oddball
ls: cannot_get_at: Permission denied
$ cat oddball/cannot get at
cat: oddball/cannot get at: Permission denied