450 likes | 955 Views
Chapter 9 Part IV Linux Advanced Command Line . Filesystem Hierarchy Standard (FHS) Standard of outlining the location of set files and directories on a Linux system Gives Linux software developers the ability to locate files on a Linux system regardless of the distribution
E N D
Chapter 9 Part IV Linux Advanced Command Line • Filesystem Hierarchy Standard (FHS) • Standard of outlining the location of set files and directories on a Linux system • Gives Linux software developers the ability to locate files on a Linux system regardless of the distribution • This allows them to create software that is not distribution specific
The Filesystem Hierarchy Standard (FHS) Table 5-1: Linux directories defined by FHS
The Filesystem Hierarchy Standard (FHS) Table 5-1 (continued): Linux directories defined by FHS
Linking Files • Files may be linked to another in one of two ways: • One file may simply be a pointer or a shortcut to another file (known as a symbolic link or symlink) • The two files may share the same data (known as a hard link)
Linking Files • To better understand how files are linked, you must understand how files are stored on a filesystem • Structurally, a filesystem has three main sections: • Superblock: section of info: # of inodes & data blocks • inode table: each inode describes 1 file or directory and contains a unique inode number for identification • Other info: file size, data block locations, last date modified, permissions, & ownership • Since directories are files they have an unique inode also • Data blocks: filename & file contents (data) • Also called allocation units • Directories data blocks contain a list of files located within it
Hard Link Files are direct copies of one another, as they share the same inode & inode number. The structure of hard linked files
Linking Files • ln (link) command • Command used to create hard and symbolic links • To create hard link, you must use the ln command and specify two arguments: • The existing file to hard-link • The target file that will be created as a hard link to the existing file Try This: create file1 with touch or one of the editors $ ls -l i (check parameters. i displays inode) $ ln file1 file2 (file2 is direct copy) $ ls –li (have parameters changed?, what about the inode numbers)
Linking Files Symbolic links are sometimes called soft links. Symbolic links do not share the same inode, they are merely a pointer to the other, thus will have different sizes. Create file3 $ ln –s file3 file4 (-s symbolic option) $ ls –li (what’s different, what’s the same?) $ ls –F (what’s different, what’s the same?) Figure 5-2: The structure of symbolically linked files
Listing the Contents of a Folder • The ls command is used to list the contents of a folder and information about files, by default the current directory. # ls –al total 109 drwxr-xr-x 18 root root 4096 Jun 9 21:12 ./ drwxr-xr-x 18 root root 4096 Jun 9 21:12 ../ drwxr-xr-x 2 root root 4096 Jun 9 21:14 bin/ drwxr-xr-x 3 root root 1024 Jun 9 20:32 boot/ File type, permissions, hard link count, file owner, group owner, size, mod date, directory name, filename or pointer.
File and Directory Permissions • Recall that all users must successfully login with a username and password to gain access to a Linux system • Once logged in, users are identified by their username and group memberships • All access to resources depends on whether their username and group membership have the required permission • When a user creates a file or directory, that user’s name and primary group become the owner and group owner of the file, respectively • Primary group • Default group to which a user belongs
File and Directory Ownership • chown (change owner) command • Command used to change the owner and the group of a file or directory • Takes two arguments at a minimum: • The new owner and the files or directories to change $ chown userx file1 chgrp (change group) command • Command to change the group owner of a file or directory • Takes two arguments at a minimum: • The new group owner and the files or directories to change $ chgrp sys file1 Changing both with chown $ chown userx.sys file1
Managing File and Directory Permissions Mode • The section of the inode that stores permissions • Divided into three sections based on the user(s) that receive(s) the permission to that file or directory • User (owner) permissions • Group (group owner) permissions • Other (everyone on the Linux system permissions
Managing File and Directory Permissions • There are three regular permissions that you may assign to each of the user(s) referenced on the previous slide: • Read • Write • Execute • And – permission is unavailable
Interpreting the Mode Figure 5-3: The structure of a mode
Interpreting the Mode • User or Owner • When used in the mode of a certain file or directory, it refers to the owner of that file or directory • User • User whose name appears in a long listing of a file or directory and who has the ability to change permissions on that file or directory • Group • Typically users in the same company department • Other • When used in the mode of a certain file or directory, it refers to all users on the Linux system
Interpreting Permissions Table 5-4: Linux permissions
Changing Permissions • chmod (change mode) command • Used to change the mode (permissions) of a file or dir • Takes two arguments at a minimum: • The first argument specifies the criteria used to change permissions • The remaining arguments indicate filenames to change -rw-r--r-- $ chmod u=rwx,g=rw,o=rw -rwxrw-rw- $ chmod u+x,g+w,o+w -rwxrw-rw- $ chmod 766 file1 -rwxrw-rw-
Changing Permissions Figure 5-4: Numeric representation of the mode
Default Permissions • Umask • Used to alter the permissions on all new files and directories by taking select default file and directory permissions away • Only applies to newly created files and directories • Will never be used to modify the permissions of existing files and directories
Default Permissions Figure 5-5: Performing a umask 007 calculation
Special Permissions • Read, write, and execute are the regular file permissions used to assign security to files • Three more special permissions that you may optionally use on file and directories: • SUID (Set User ID) • SGID (Set Group ID) • Sticky bit
Defining Special Permissions • The SUID has no special function when set on a directory • However, if the SUID is set on a file and that file is executed, then the person who executed the file temporarily becomes the owner of the file while it is executing • The SUID can only be applied to binary compiled programs
Defining Special Permissions • The SGID has a function when applied to both files and directories • The SGID allows regular users to execute a binary compiled program and become a member of the group that is attached to the file during execution of the program • The sticky bit was used on files in the past to lock them in memory • Today, the sticky bit performs a useful function only on directories
Setting Special Permissions • The mode of a file that is displayed using the ls –l command does not have a section for special permissions • Special permissions require execute • They mask the execute permission when displayed using the ls –l command
Setting Special Permissions Figure 5-7: Representing special permissions in the mode
Setting Special Permissions Figure 5-8: Representing special permissions in the absence of the execute permissions
Setting Special Permissions Figure 5-9: Numeric representation of regular and special permissions
The grep Command • grep • Stands for Global Regular Expression Print • Used to display lines in a text file that match a certain common regular expression • Search is case sensitive unless –i used • -v reverse meaning of previous command $ grep “ CIS 130” file5 • Use the egrep command to display lines of text that match extended regular expressions • The fgrep command does interpret any regular expressions and consequently returns results much faster than the egrep command
Viewing Processes • There are several Linux utilities that can view processes • ps command • The most versatile and common Linux utility that can view processes • Without arguments, the ps command simply displays a list of processes that are running in the current shell
Viewing Processes • top command • Most common command used to display processes aside from ps • Displays its interactive screen listing processes organized by processor time • Processes that use the most processor time are listed at the top of the screen