The UNIX File System CS465. File Systems What is a file system? A means of organizing information on the computer. A file system is a logical view, not.
Published byModified over 5 years ago
Presentation on theme: "The UNIX File System CS465. File Systems What is a file system? A means of organizing information on the computer. A file system is a logical view, not."— Presentation transcript:
File Systems What is a file system? A means of organizing information on the computer. A file system is a logical view, not necessarily a physical view. What does the file system provide: –Ways to create, move, and remove files –Ways to order files –Security Examples of file systems: –DOS, Macintosh, CD-ROM, UNIX, NFS (networked file system)
UNIX File System Heirarchical storage –Basic storage unit is a FILE Unix File: a collection of data –Just a sequence of bytes –No record or block structure is required
Unix File Types Ordinary file (stores info) Directory (holds other files and directories) –Directory file contains information about files Special file (represents physical devices like printers, terminals, etc) Pipe (temporary file for command linkage)
File and Directory Names Names are case sensitive Can use any character, however: –Avoid using: / >, ! ( ) # & | @ $ ^ * ? Legal but hard to use with shells Length: Up to 14 characters guaranteed Names must be unique inside a directory Files beginning with “.” are “invisible”
The Unix File System / is the “root” directory. In our example there are three directories in root. The “home” directory contains directories of all users on a system. Each user can create and administer his/her own directories, subdirectories and files. progs notes.login jonessmith username homeetctmp / A rooted tree file structure (inverted tree)
Some Common Directories / root ancestor of all files in the file system /bin binary executable files /dev special device files /etc administrative files /home user home directories /tmp temporary files /usr special user files or home directories
Pathnames Absolute Path Name –Every file and directory in the file system can be identified by a “full path name” (route from root to file) /home/sue/email/f1 Relative path name –Location is relative to working directory. Working directory.. Parent directory –If working directory is /home/sue: email/f1 fred / home sue docs email f1 f2
Home and Working Directories Home directory –The directory you are in when you first login in –This is your space; you control security –Place to put your personalized startup files –Your working directory after typing cd with no arguments Working (current) directory –Can access files in your working directory by simply typing the filename (relative pathname) –To access files in other directories, must use the absolute pathname pwd prints the working directory cd changes the working directory
Directory Shorthands Directory abbreviations:. the directory itself..the parent directory Every directory contains. and.. files In most shells “~” means your home directory) ~user means user’s home directory Example: ~small000/.login is file.login in /home/small000, which is my home directory.
Finding Yourself The command pwd tells you where you are in the file hierarchy. It gives you the absolute path to your location. $ pwd /home/small000
Changing Directories cd change directory (home) cd.. go to parent directory cd / go to the root directory cd ~ go to my home directory cd ~user go to user’s home directory cd /etc go to the etc directory from root cd../sub go to the sub directory in my parent directory
Creating and Removing Directories A new directory can be created with the mkdir command –Note command cannot be shortened to md A directory can be removed using the rmdir command –The directory must be empty (no files or subdirectories) –Note command cannot be shortened to rd
Links Can have many links to the same file One directory contains the actual file, and the others contain a name only, which links to the actual file ln -command for creating links $ ln filename linkname
Links ln creates a new link, not a new file. The new link and the original filename are equivalent pointers to the file. Example: $ ln names lnames jones lnamesnamesletter3 007 Golden Eye Tomorrow Never Dies File Contents
Creating Directories mkdir –Makes a new directory (if you have permission to do so) –With a simple pathname, mkdir makes a new directory in your working directory. $ pwd /home/jbond $ mkdir newdir $ ls –l total 3 -rw-r--r-- 1 jbond cs 154 Feb 4 15:00 letter3 -rw-r--r-- 1 jbond cs 64 Feb 4 15:00 names drwxr-xr-x 2 jbond cs 512 Feb 4 15:26 newdir/
Deleting Directories rmdir deletes a directory (if you have permission). $ rmdir newdir $ ls -l total 6 -rw-r--r-- 1 jbond cs 154 Feb 4 15:00 letter3 -rw-r--r-- 1 jbond cs 64 Feb 4 15:00 names $ rmdir /usr rmdir: directory "/usr": Search or write permission needed
Moving Stuff mv can move a directory into a directory $ ls namesnewdir/secret/ $ mv newdir secret $ ls namessecret/ $ ls secret letternewdir/
Access Permissions Every user has: –A username –A numeric uid (user identification) –A default group association –Optional assocations with other groups Command: id view your uid and default group and which groups you belong to
Access Permissions Every file has: –A single owner –An association with a single group –A set of access permissions associated with it For a File, permissions control what can be done to the file contents For a Directory, permissions control whether a file in that directory can be listed, searched, renamed or removed
Changing Your Group Association When you first log in, you're group is set to the default group specified in your /etc/passwd file. To change groups, use the newgrp command $ newgrp admin Once you've changed to the new group, if you create a new file, it will be owned by the new group.
Access Permissions First character shows the file type: –directory (d) –plain file (-) –link (l) -rwxr-xr-x l Rest specify three types of users: - user owner - group - othersrwxr-xr-x l who are allowed to: l (r) read l (w) write l (x) execute
Permission Settings PermissionFor a FileFor a Directory r (read)Contents can be viewed or printed. Contents can be listed, but not searched. Normally r and x are used together. w (write)Contents can be changed or deleted. File entries can be added or removed. x (execute)File can be run as a program. Directory can be searched and you can cd to it.
Permission Settings: Examples Use ls –l to view permission settings -r-- --- --- (400)protect it from accidental editing -rw- --- --- (600)only you can edit/read the file -rw- r-- r-- (644)only you can edit, others can read -rw- rw- rw- (666)public read file! dr-x r-x r-x (555)anyone can list but can’t create/delete/rename files dr-x --- --- (500)only you can list drwx --- --- (700)you can do anything, but not others drwx r-x r-x (755)you can do anything, others only list drwx rwx rwx (777)anyone can do anything!
Changing Permissions chmod command is used to modify permissions. can only be used by the owner of a file/dir (or the administrator root). Format: chmod [ugoa] [+-=] [rwx] [file/dir] –Optionally, one of the characters: u (user/owner), g (group), o (other), or a (all). –Optionally, one of the characters: + (add permission), - (remove permission), or = (set permission). –Any combination of the characters r (read), w (write), or x (execute).
Default Permissions Every time a directory or file is created it must immediately have some permissions The umask instruction sets the default permissions $ umask ddd ddd is a three digit octal number
umask The system’s initial permission value, used when a file is created, is 666 (rw-rw-rw-). The system’s initial permission value used when a directory is created, is 777 (rwxrwxrwx). To determine the umask value you want to set, subtract the value of the permissions you want from the initial permissions. The remainder is the value to use with the umask command. To change the default mode for files to 644 (rw-r--r--), subtract 644 from 666. You get 022, which is the value you would use as an argument to the umask command.argument
umask Scope The new umask value affects only those files and directories that are created from this point forward. Place a umask command in your.profile file to permanently set your default permissions.
The SuperUser Every Unix system has at least one userid which is special This is referred to as root although the name may be different root may access any and all files or directories, no matter what their protection bits are set to