Title: Linux Guide to Linux Certification, Third Edition
1Linux Guide to Linux Certification, Third Edition
- Week 4
- Linux File System Management
2Objectives
- Find files and directories on the filesystem
- Understand and create linked files
- Explain the function of the Filesystem Hierarchy
Standard - Use standard Linux commands to manage files and
directories
3Objectives (continued)
- Modify file and directory ownership
- Define and change Linux file and directory
permissions - Identify the default permissions created on files
and directories - Apply special file and directory permissions
4The Filesystem Hierarchy Standard
- Filesystem Hierarchy Standard (FHS) standard set
of directories for Linux and UNIX systems - Standard file and subdirectory contents
- Simplifies the task of finding specific files
- Gives Linux software developers ability to locate
files on any Linux system - Create non-distributionspecific software
5The Filesystem Hierarchy Standard (continued)
Table 4-1 Linux directories defined by the
Filesystem Hierarchy Standard
6The Filesystem Hierarchy Standard (continued)
Table 4-1 (continued) Linux directories defined
by the Filesystem Hierarchy Standard
7Managing Files and Directories
- mkdir command creates new directories
- Arguments specify directorys absolute or
relative pathname - mv command moves files
- Minimum of two arguments
- Source file/directory (may specify multiple
sources) - Target file/directory
- Pathnames can be absolute or relative
- For multiple files, can use wildcards in pathname
- Also used to rename files or directories
8Managing Files and Directories (continued)
- cp command copies files
- Same arguments as the mv command
- Also used to make copies of files
- Recursive referring to itself and its own
contents - Recursive copy command copies the directory and
all subdirectories and contents - Recursive search includes all subdirectories in a
directory and their contents - Use r option
9Managing Files and Directories (continued)
- Interactive mode Prompts user before overwriting
files - i option
- f option (force) Overrides interactive mode
- rm command Removes files
- Arguments are a list of files
- Can use wildcards
- Interactive mode by default
- Use -f option to override
10Managing Files and Directories (continued)
- rmdir command removes directories
- Arguments are a list of files
- Can use wildcards
- Interactive mode by default
- Use -f option to override
- Cannot be used to remove directory full of files
- To delete directory and all its contents
(subdirectories and files), use rm r command
11Managing Files and Directories (continued)
Table 4-2 Common Linux file management commands
12Finding Files
- locate command Search for files on system
- Receives full or partial filename as argument
- Uses premade indexed database of all files on
system - To update the database use updatedb command
- Information returned may not fit on screen
- Use with more or less commands
13Finding Files (continued)
- find command recursively search for files
starting from a specified directory - Slower than locate command, but more versatile
- Format find ltstart directorygt -criteria ltwhat to
findgt - e.g., find /root name project
- If using wildcard metacharacters, ensure that
they are interpreted by the find command - Place wildcards in quotation marks
- To reduce search time, specify subdirectory to be
searched
14Finding Files (continued)
Table 4-3 Common criteria used with the find
command
15Finding Files (continued)
Table 4-3 (continued) Common criteria used with
the find command
16Finding Files (continued)
- PATH variable lists directories on system where
executable files are located - Allows executable files to be run without
specifying absolute or relative path - which command search for an executable file
- Searches the PATH variable
- If the file is not found, lists the directories
that were searched
17What is an INODE?
- Inodes store information about files and folders,
such as file ownership, access mode (read, write,
execute permissions), and file type. - Fixed number of inodes per file system
- Inodes do not contain file names, only file
metadata. - Use df -i to see inode usage
- Use ls -i to determine a filenames inode number
- WARNING You can use up all of a filesystems
inodes without using all of the storage space on
the disk it resides.
18Linking Files
- Symbolic link one file is a pointer or shortcut
to another - Hard link two files share the same data
19Linking Files (continued)
- Filesystem has three main structural sections
- Superblock Contains general information about
the filesystem - e.g., number of inodes and data blocks, size of
each data block - The inode table consists of several inodes, each
of which describes a file or directory - Unique inode number, file size, data block
locations, last date modified, permissions, and
ownership - Data blocks Data making up contents of a file
20Linking Files (continued)
- Hard linked files share the same inode and inode
number - Must reside on the same filesystem
- To remove hard linked files, delete one of the
linked files - Reduces the link count for the file
21Linking Files (continued)
Figure 4-1 The structure of hard linked files
22Linking Files (continued)
- Symbolic linked files do not share the same inode
and inode number with their target file - Symbolic linked file is a pointer to the target
file - Data blocks in the linked file contain only a
pathname for the target file - Linked file and target file have different sizes
- Editing symbolic linked file actually edits the
target file - If the target file is deleted, symbolic link
serves no function
23Linking Files (continued)
Figure 4-2 The structure of symbolically linked
files
24Linking Files (continued)
- ln (link) command Create hard and symbolic links
- Two arguments
- Existing file to link
- Target file to create as a link to existing file
- Use s option to create symbolic link
- Arguments can be relative or absolute pathnames
25File and Directory Permissions
- All users must login with a username and password
- Users identified by username and group
memberships - Access to resources depends on username and group
membership - Must have required permissions
26File and Directory Ownership
- Primary group users default group
- During file creation, files owner and group
owner set to users username and primary group - Same for directory creation
- whoami command view current user name
- groups command view group memberships and
primary group - touch command create an empty file
27File and Directory Ownership (continued)
- chown (change owner) command change ownership of
a file or directory - Two arguments
- New owner
- File to change
- Can use R option for contents of directory
- chgrp (change group) command change group owner
of a file or directory - Same arguments and options as for chown command
28Managing File and Directory Permissions
- Mode inode section that stores permissions
- Three sections, based on the user(s) that receive
the permission - User permissions owner
- Group permissions group owner
- Other permissions everyone on system
- Three regular permissions may be assigned to each
user - Read
- Write
- Execute
29Interpreting the Mode
Figure 4-3 The structure of a mode
30Interpreting the Mode (continued)
- User refers to owner of a file or directory
- Owner refers to users with ability to change
permissions on a file or directory - Other refers to all users on system
- Permissions are not additive
31Interpreting Permissions
Table 4-4 Linux permissions
32Changing Permissions
- chmod (change mode) command change mode
(permissions) of files or directories - Two arguments at minimum
- Criteria used to change permissions
- Filenames to change
- Permissions stored in a files or a directorys
inode as binary powers of two
33Changing Permissions (continued)
Table 4-5 Criteria used within the chmod command
34Changing Permissions (continued)
Figure 4-4 Numeric representation of the mode
35Changing Permissions (continued)
Table 4-6 Numeric representations of the
permissions in a mode
36Default Permissions
- New files given rw-rw-rw- permissions by default
- umask takes away permissions on new files and
directories - umask command displays the umask
- Changing the umask
- Use a new umask as an argument to the umask
command
37Default Permissions (continued)
Figure 4-5 Performing a umask 022 calculation
38Default Permissions (continued)
Figure 4-6 Performing a umask 007 calculation
39Special Permissions
- Three more optional special permissions for files
and directories - SUID (Set User ID)
- SGID (Set Group ID)
- Sticky bit
40Defining Special Permissions
- SUID
- If set on a file, user who executes the file
becomes owner of the file during execution - e.g., ping command
- No functionality when set on a directory
- Only applicable to binary compiled programs
- Cannot be used on shell scripts
41Defining Special Permissions (continued)
- SGID
- Applicable to files and directories
- If set on a file, user who executes the file
becomes member of the files group during
execution - If a user creates a file in a directory with SGID
set, the files group owner is set to be the
directorys group owner and not the users
primary group
42Defining Special Permissions (continued)
- Sticky bit
- Previously used to lock files in memory
- Currently only applicable to directories
- Ensures that a user can only delete his/her own
files when given write permissions in a directory
43Setting Special Permissions
- Special permissions require execute
- Mask the execute permission when displayed by the
ls l command - May be set even if file or directory does not
have execute permission - Indicating letter in the mode will be capitalized
- Add special permissions via chmod command
- Add an extra digit at front of permissions
argument
44Setting Special Permissions (continued)
Figure 4-7 Representing special permissions in
the mode
45Setting Special Permissions (continued)
Figure 4-8 Representing special permissions in
the absence of the execute permissions
46Setting Special Permissions (continued)
Figure 4-9 Numeric representation of regular and
special permissions
47Summary
- The Linux directory tree obeys the FHS
- Allows system files to be located in standard
directories - Many file management commands exist
- Can find files using different commands
- locate search preindexed database
- which search PATH variable
- find search for file based on criteria
48Summary (continued)
- Files can be created as pointers to another file
or as a linked duplicate of another file - Called symbolic and hard links, respectively
- Each file and directory has an owner and a group
owner - Owner can change permissions and grant ownership
- Permissions can be set on the owner of a file,
members of the group of the file, and everyone on
the system (other)
49Summary (continued)
- Three regular file and directory permissions
(read, write, execute) and three special file and
directory permissions (SUID, SGID, sticky bit) - Permissions can be changed using chmod
- New files and directories receive default
permissions from the system - The root user has all permissions to all files
and directories on the Linux filesystem - Root user can change the ownership of any file or
directory on the Linux filesystem