CST8177 - Lab 3 Review 2 Student Name Student number Section Objectives To review command line features, file system access, and permissions Lab Outcome A review of working with the command line A review of basic Linux utilities Additional Notes If you are uncertain as to how to proceed or have any problems, refer to class notes from previous for more information, your textbook, and the man pages. In-Lab Demo: Create a new non-empty file with both a hard link and a soft link. Exercise #1: Working with the find command Hint: Use the -mount option to prevent searching mounted file systems like /proc and /dev. Execute the command used to find all files from / with an extension of cron [user1 @localhost ~] $ __________________________________________ ______________________________________________________________ Execute the command used to find all files belonging to user1 [user1 @localhost ~] $ __________________________________________ _______________________________________________________________________________ Execute the command used to find all files belonging to the user of uid 500. [user1 @localhost ~] $ __________________________________________ ______________________________________________________________ Execute the command used to find all files that have been modified within the last 3 days (there's a trick for past and future): [user1 @localhost ~] $ __________________________________________ ______________________________________________________________ Exercise #2: Working with links Create a small non-empty file named target [user1 @localhost ~] $ _______________________________________ Create a directory named temp. [user1 @localhost ~] $ _______________________________________ Go into the temp directory. [user1 @localhost ~] $ _______________________________________ Working with soft links Create a soft link to the file target named s-link. [user1 @localhost temp] $ ____________________________________ Test that you can read the file target using the soft link s-link. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ Display both files, target and s-link, including all file attributes and the inode number. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ What is the first difference between the two entries? ______________________________________________________________ Change permissions of the file target to give no access to others. [user1 @localhost temp] $ ___________________________________ Display both files, target and s-link, including all file attributes and the inode number. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ What, if anything, has changed in s-link? ______________________________________________________________ Rename the file target to new-target. [user1 @localhost temp] $ ____________________________________ Test that you can read the file new-target using the soft link s-link. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ Briefly explain why this behaves as it does: ______________________________________________________________ Rename the file new-target to target. [user1 @localhost temp] $ ____________________________________ Working with hard links Create a hard link to the file target named h-link. [user1 @localhost temp] $ ____________________________________ Test that you can read the file target using the hard link h-link. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ Display both files, target and h-link, including all file attributes and the inode number. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ Are the file attributes, except for the filename, identical? Record any difference ______________________________________________________________ Change permissions on target to give no access to the group owners and full access to others. [user1 @localhost temp] $ ____________________________________ Display both files, target and h-link, including all file attributes and the inode number. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ Are the file attributes, except for the filename, identical? Record any difference ______________________________________________________________ Rename the file target to n-target. [user1 @localhost temp] $ ____________________________________ Test that you can read (cat) the file n-target using the hard link h-link. [user1 @localhost temp] $ ____________________________________ ______________________________________________________________ Remove the file n-target. , and both links s-link and h-link [user1 @localhost temp] $ ____________________________________ Exercise #3: Working with file permissions Show the command and circle the practical minimum permissions required to successfully complete the actions listed below. To produce a detailed directory listing (ls -l) within a directory, the user requires for that directory: [user1 @localhost ~] $ ___________________________________ R W X To go into a directory, the user requires for that directory: [user1 @localhost ~] $ ___________________________________ R W X To create a file or subdirectory into a directory, the user requires for that directory: [user1 @localhost ~] $ ___________________________________ R W X Show the command and circle the practical minimum permissions required to successfully complete the file manipulation actions listed below. To copy a file the user requires: for the source directory: [user1 @localhost ~] $ ___________________________________ R W X for the target directory: [user1 @localhost ~] $ ___________________________________ R W X for the file: [user1 @localhost ~] $ ___________________________________ R W X To move a file the user requires (assume the same filesystem for both source and target directory): for the source directory: [user1 @localhost ~] $ ___________________________________ R W X for the target directory: [user1 @localhost ~] $ ___________________________________ R W X for the file: [user1 @localhost ~] $ ___________________________________ R W X To move a file the user requires (assume different filesystems for source and target directory, perhaps a USB stick and the hard disk): for the source directory: [user1 @localhost ~] $ ___________________________________ R W X for the target directory: [user1 @localhost ~] $ ___________________________________ R W X for the file: [user1 @localhost ~] $ ___________________________________ R W X Briefly explain the differences between moving on the same and on different filesystems: ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ To delete a file the user requires: for the directory: [user1 @localhost ~] $ _______________________________________ R W X for the file: [user1 @localhost ~] $ _______________________________________ R W X Exercise #4: Working with default permissions Viewing default permissions Login as user1. Type umask and record the output of the command: [user1 @localhost ~] $ _______________________________________ ______________________________________________________________ Based on the user file-creation mask as displayed by umask, determine the default permissions for directories and files in octal mode: File: ___________________ Directory: ___________________ Verify it by creating a new file and displaying its long entry. [user1 @localhost ~] $ _______________________________________ [user1 @localhost ~] $ _______________________________________ ________________________________________________________________________ Record the default permissions set on the file in symbolic mode: ______________________________________________________________ Record the default permissions set on the file in octal mode: ______________________________________________________________ Verify it by creating and displaying a new directory. [user1 @localhost ~] $ _______________________________________ [user1 @localhost ~] $ _______________________________________ ______________________________________________________________ Record the default permissions set on the directory in symbolic mode: ______________________________________________________________ Record the default permissions set on the directory in octal mode: ______________________________________________________________ Changing default permissions Set the user file-creation mask to 077. [user1 @localhost ~] $ _______________________________________ Type umask and record the output of the command: [user1 @localhost ~] $ umask ______________________________________________________________ Based on the bitmask, as displayed by umask, determine the default permissions for directories and files in octal mode: File: ___________________ Directory: ____________________ Verify it by creating a new file. [user1 @localhost ~] $ _______________________________________ [user1 @localhost ~] $ _______________________________________ ______________________________________________________________ Record the default permissions set on the file in symbolic mode: ______________________________________________________________ Record the default permissions set on the file in octal mode: ______________________________________________________________ Verify it by creating a new directory. [user1 @localhost ~] $ _______________________________________ [user1 @localhost ~] $ _______________________________________ ______________________________________________________________ Record the default permissions set on the directory in symbolic mode: ______________________________________________________________ Record the default permissions set on the directory in octal mode: ______________________________________________________________