SkyPoint 
    Communications is a full service Internet Service Provider. 
  Unix Permissions
  NOTE: This Tip Sheet 
    assumes that the reader has a copy of a telnet application like EWAN or NCSA 
    Telnet, and is familiar with its use. If you do not have a telnet application, 
    you can get one several ways. If you are a SkyPoint Macintosh user you can 
    download the standard SkyPoint software package, which includes NCSA Telnet. 
    Windows 95 users have a telnet window already installed. Otherwise, all platform 
    users can access www.shareware.com 
    on the Web, do a search for telnet applications, and download one for free. 
    
  What Are Permissions? 
    
  Permissions dictate who 
    may enter, read from, write to, or run a file in a directory. They also determine 
    who may read, write, or run (execute) an individual file. Each of these functions 
    can be set separately. UNIX categorizes possible users into three types - 
    the owner of the file (user), members of the owner's group (group), and the 
    rest of the world (other). When deciding who you want to have a particular 
    type of access to a file or directory, you will have to make a decision for 
    each of these three categories. 
  How Do I Know 
    What Permissions Are On A File Or Directory? 
  To see the permission 
    on every file and subdirectory in your current directory, type ls -l and hit 
    the return key. You will see a list like the one below.  
 
  The file, link, or directory 
    name is shown at the far right of each line. The permission for that entry 
    is shown at the far left field of each line. The second field from the left 
    shows the owner, here user "aquila," and the third field from the left shows 
    the owner's group, here "skyshell."
  Look at the permissions 
    field carefully. To read the code, divide the field into four parts: the first 
    letter, then three sets of 3 letters. The first letter can be a "-", "l", 
    or "d". The groupings of three can only show "r", "w", "x", and "-". For example, 
    the "rhostinfo" permissions would be divided into:
  - | rw- | r-- | r--
  The first part, the single 
    letter or dash, signifies what the named entry is. For example, if it had 
    a "d" in it, it would mean that the entry was a directory. In the above example 
    there is only a "-", meaning that this is a regular file.
  The leftmost grouping 
    of three shows the owner's permission. In your home directory, you are the 
    owner. Here, the file's owner can read (r) and write (w) this file. Writing 
    includes the ability to delete. The "-" shows that the file can not be executed 
    by the owner, as it is placed in the spot reserved for the "x" permission.
  The second set of three 
    shows the group's permission. In the above example, the group is "skyshell." 
    Skyshell is the group that most of SkyPoint's users belong to. The second 
    set of three therefore applies to anyone in the skyshell group, which is an 
    awful lot of people. Here, the read (r) permission is turned on, but the write 
    (w) and execute (x) permissions are off. That means that anyone in that group 
    could read or copy the file, but could not delete, change, or run it. 
  The third, rightmost 
    set are the set of permissions for the rest of the world (other). Here, they 
    are the same as for the group.
  How Do I Change 
    The Permissions? - chmod
  Usage: chmod [option/operation/mode] 
    [filename]
  
   
  | Option 
  (permission type): | u =user 
  (owner) g =group
 o =other
 | 
   
  | Operation: | + =add permission - =remove permission
 = = assign permission and remove permission from all other fields
 | 
   
  | Mode: | r =read w =write
 x =execute
 | 
  
  The easiest way to explain 
    how to use chmod is to give an example and let you see how it works. Let's 
    do a few examples: 
  Example 1:
  -rw-r--r-- 1 aquila skyshell 
    1756 Apr 2 13:13 rhostinfo
  Let's say that we want 
    the owner (u) of this file to be able to execute this file (if it was executable) 
    as well as reading and writing to it, we want the group (g) to be able to 
    read it only, and we don't want the rest of the world (o) to have any access 
    to it at all. Here's the command we would use to make those changes:
   
    chmod u+x,o-r rhostinfo
  
  Notice that we have added 
    (+) the execute (x) permission to the owner (u), left the group (g) untouched 
    by not mentioning it in the command, and removed (-) the read (r) permission 
    from the rest of the world (o). You should also note that the command does 
    not have a space after the comma - this is very important, because if you 
    had a space after the comma the command would not work. The permissions on 
    rhostinfo, if we did an ls -l rhostinfo, would be:
   
    -rwxr----- 1 aquila 
      skyshell 1756 Apr 2 13:13 rhostinfo
  
  Example 2:
   
    -rwxr----- 1 aquila 
      skyshell 2505 May 4 1996 test*
  
  In this example, we will 
    pretend that test is an executable file. We want the owner (u) to be able 
    to read (r), write (w), and execute (x) the file. We also want the group (g) 
    and the rest of the world (o) to be able to read (r) and execute (x) the file 
    but not change or delete it (w). First we note that the permissions for the 
    owner are correct, but we need to change the permissions for the group and 
    the rest of the world. Here are two ways to do this:
   
    chmod u=rwx,g=rx,o=rx 
      test
      chmod g+x,o+x test 
  
  Notice that in the first 
    method, you would specify exactly what you wanted the permissions to be. When 
    using the assign (=) operation, anything that is not specified as on is automatically 
    turned off. In the second method, you would use the add (+) and remove (-) 
    operators to change only what you specified you wanted changed.
  We suggest you take some 
    time to practice the chmod command to become familiar with it. Do not worry 
    about "breaking" something or not being able to undo your changes to a file 
    owned by you. You will be able to fix any error you make when you change a 
    permission on one of your files.