360 likes | 471 Vues
Learn UNIX login/logout, help usage, directory traversal, file handling, and file attributes in this comprehensive guide.
E N D
Chapter 2 UNIX Utilities I By C. Shing ITEC Dept Radford University
Objectives • Understand what’s involved in Unix login and logout process • Understand how to use Unix help • Understand how to traverse directory tree • Understand how to create a directory, list its content and delete a directory • Understand how to create files, change its name, copy files and delete files • Understand how to control file printing • Understand how to list and set file attributes
Unix Login & Logout • Unix is case-sensitive • After Login, use home directory and shell specified in /etc/passwd and executes files (for environment set up): • .login command executed when user log in • .cshrc(.solaris/.linux) command executed when C shell starts Note: no prompt when login as root, it has no security check. If hacker gets /bin/sh, then system security breach • After logout, executes: • .logout command executed when user log out
Unix Help There are possible 8 sections in each manual page: • Commands • System calls • Library functions • Special files • File formats • Games • Miscellaneous • System administration utilities
Unix Help Usage: • man –k keyword • man –s manual_section_number command • man –f command one line explanation of the command Example: man –k mode | more man –s 2 chmod (Solaris) : list section 2 manual of chmod man 5 passwd (Linux) man –s 1m getty (Solaris) man –-S 1m getty (Posix) man –f echo
Traverse Directory Tree • List current folder • pwd • Change directory • cd path_name • Absolute path • cd /home/uid/pulic_html • Relative path • cd ./public_html or cd public_html • cd .. • -cd ~ • Go back to home directory • cd • Go back to previous directory • cd -
Create/List/Rename/Delete/COPY Directory • Create • mkdir directory_name • List • Directory name only • ls –d directory_name • Directory contents • Unhidden files • ls directory_name • All including hidden files • ls –a directory_name • Files and everything in subfolders • ls –R directoryn_ame Note: if file/directory name listed is a number, it may belong to an intruder.
Hidden Files Example • .history contains previous commands that saved. Can keep track of intruder’s action. command: history shows saved history in RAM • .ckpt (Only in rucs) contains backup files of your account
Create/List/Rename/Delete/COPY Directory • Rename • mv old_ directory_name new_ directory_name • Delete • Empty • rmdir directory_name • Has contents • rm –rf directory_name • Copy directory1 to directory2 • cp –r directory1 directory2
Create Files • Create • Small file • cat > filename Type in the content, end the standard input by pressing <ctrl><d> • touch filename Create an empty file • Large file • vi filename • vim filename (type vimlearn for on-line tutorial about vim)
List Files • List • File name only • ls filename • File name along with file type symbol • ls -F filename • File long information (attributes) • ls -l (ls –l filename) • File contents • cat filename • more filename • less filename (b – backward, f – forward) • page (Solaris) • head –n 5 filename (or head -5 filename): 1st 5 lines of file • tail –n 5 filename (or tail -5 filename): last 5 lines of file
List Files • The 1st 5 lines • head -5 filename (Solaris) • head 5 filename (Linux) • The last 6 lines • tail -6 filename (Solaris) • tail 6 filename (Linux) • wc filename • Total number of lines • wc –l filename • Total number of words • wc –w filename • Total number of characters • wc –c filename
Rename/Move/Delete/Copy Files • Rename • mv old_ filename new_ filename • Move file1,…,filen to a directory • mv file1 file2 … filen directory_name • Delete • A file • rm –f filename • Files and all sub-directories in the current folder • rm –rf * • Copy file1 tp file2 • cp file1 file2
Control File Printing • System V • Print file • lp –d printername –n copies filename • Print n pages on one paper • mpage -n • Check status • lpstat printername • Delete print job • cancel printjobid
Control File Printing • BSD • Print file and send e-mail to notify when done • lpr –Pprintername –m -#copies filename • Check status • lpq -Pprintername • Delete print job • lprm –Pprintername printjobid
List/Set File Attributes • file attributes (ls –l) in data structure stat (/usr/include/sys/stat.h) • mode: 16 bits, from left most • Type: 4 bits, from left • Regular file: shows – when use ls -l • Directory: shows d when use ls -l • Device: shows c when use ls -l Example: ls –l /devices (Solaris) • FIFO stream (Socket) • SUID (Set User ID): shows s/S when use ls -l set to allow the executable runs as to have the owner privilege, used by passwd, lp, mail, mv, ps, cgi-wrapper etc Example: ls –l /usr/bin/lp (in solaris) ls –l /usr/bin/passwd (in Linux)
List/Set File Attributes (Cont.) • mode: 16 bits, from left most (Cont.) • SGID (Set Group ID): set to allow the executable runs as to have the group privilege • Sticky: shows t (in ls –l) if set • File (for efficiency): keep the file in either RAM or swap space • Directory (shared): only owner can change his/her file attributes Example: ls –dl /var/tmp • User (3bits): s (in ls –l) means x is set when SUID; otherwise S, r has octal 4, w has octal 2, x has octal 1 • Group (3bits): s (in ls –l) means x is set when SGID; otherwise S, r has octal 4, w has octal 2, x has octal 1 • Other (3bits): r has octal 4, w has octal 2, x has octal 1
List/Set File Attributes • uname • gname • Size: Bytes • Nlink: number of aliases (or hard links) • Mtime (last file content modified time) Note: Unix time starts from Jan 1, 1970 • Atime (last file access time) • Ctime (time for last file contents, or meta-data changed, i.e. change of inode) (Note: In Windows, it is the file creation time)
List/Set Directory Attributes Note: For Directory (Contains filenames) M Time: changed when create, delete or rename files not changed even when file content modified A Time: changed when list directory content (i.e. directory read) not changed when create or delete files (write directory) or change directory (execute directory) C Time: directory attribute change
List/Set File Attributes • List • Include hidden files • ls –al • Include non-hidden files • ls –l • Modified time • ls –lt or ls -l • Access time • ls –lu • Change time • ls -lc • Size (in blocks) • ls –s • Type • file filename • Group • groups username
List/Set File Attributes • Set • Owner • chown newowner filename • chown –R newowner file1 file2 … • Group • chgrp newgroup filename • chgrp –R newgroup file1 file2 …
List/Set File Attributes • Set Permissions: • File • r : can see the file content (use cat) • w : can modify file (use vi) • x : can execute the file (the file is either an executable or a shell script) • Directory • r : can list file names in the directory (use ls) • w : can create or delete files in the directory (use vi, cp, mv) • x : can search the files in the directory (use cd)
List/Set File Attributes • Set • Change permission: chmod • Relative permission: use letter: u, g, o, a : user, group, other, all r, w, x : read, write, execute • chmod u+r filename add read access of filename to user • chmod o-w filename take off write privilege of filename from other • chmod a+x filename add execute privilege of filename to user, group and other • chmod u+s executable set UID bit on of the executable • chmod g-s executable set GID bit off of the executable • chmod +t directory set sticky bit on of the directory
List/Set File Attributes • Set absolute permission • Use octal • chmod 400 filename read only access of filename to user • chmod 050 filename give read and execute privilege of filename to group • chmod 4200 executable set UID bit on and write access of the executable • chmod 2060 executable set GID bit on and give read and write access to the executable • chmod 1644 directory set sticky bit on, give read+write to users, write to group and other of the directory
Misc. TC Shell Commands • ssh –l uname machinename • passwd: change password in /etc/shadow file • tty : display terminal port • stty –a : check terminal characteristics • Set certain keys to erase stty erase [Backspace key] stty erase [Delete key]
Misc. TC Shell Commands (In .cshrc/.login) • set prompt = ‘new prompt’ • set path = ($path /additional_search_path) • set savehist = n save n commands in .history file • set history = n save n commands in RAM • set noclobber prevent accidentally overwriting by redirection • set ignoreeof prevent accidentally logout by <ctrl><d> • set notify notify immediately the completion of background jobs instead of after pressing <Enter>
Misc. TC Shell Commands (Cont.) • script name.txt ( exit to quit): record text in screen • image screen.jpg (Red Hat Linux only): screen shot • which: which command is used • whereis: list absolute path of command locations • who am i: login info. • file filename: best guess file type(e.g. LSB file)
Misc. TC Shell Commands (Cont.) • < redirect input • > redirect output to a new file • >> redirect output to append to the existing/a new file • a.out < inputdata.txt >! output.txt overwrite output.txt if it exists • exit/logout/<ctrl><d>
Misc. TC Shell Commands (Cont.) • !! execute the previous command • !-2 execute the second from the last command • !n execute history event n command • !cmd execute the most recent command that begins with cmd • !n:p show history event n without executing it
Misc. TC Shell Commands (Cont.) • !cmd:s/word1/word2 execute the most recent command that begins with cmd by replacing word1 with word2 • !cmd:gs/word1/word2 execute the most recent command that begins with cmd by replacing every word1 with every word2 • ^word1^word2 execute the previous command by replacing word1 with word2
Misc. TC Shell Commands (Cont.) • uname: list machine OS • uname –r: list machine OS version • uname –n: list machine name • date +”20%y %m %d %H %M %S”: list year (20xx), month, day, hour, minute, second • clear • cat –n filename number the file content (all lines) • nl filename number each non-blank line in the file • cat filename | nl : number the non-blank line output
Misc. TC Shell Commands (Cont.) • mv –i, cp –i, rm –i • umask : set file creation mask • passwd : change password • id: show uid and gid • newgrp : create new shell for new group • tset : reset terminal type • touch -t YYMMDDHHMM.SS : change mtime and atime (Hacker hide track)
Misc. TC Shell Commands (Cont.) • echo message • echo “message” • printf “message\n” • printf message • source .cshrc (or . /source .cshrc) rerun an updated shell without re-login • cd ~uid (or cd $HOME) change directory to /home/uid • cd – (or cd ~-) change directory to the previous visited directory
Misc. TC Shell Commands (Cont.) • alias show all aliases • unaliascmd unset the alias cmd • alias cp “cp –i” • \cpoldfilenewfile use the unaliasedcp command • umask: create files (directory) with permission subtracted from default permission 666 (777) • umask 022: create file with permission 644 and directory with permission 755 • suuname: substitute user login • /bin/su -: login as superuser
Reference • Vi editor • Environment customize: .exrc (Use :set all in vi) • set autoindent • set noautoindent • set ignorecase • set noignorecase • set number • set nonumber • set showmode • set noshowmode
Example of Using SetUID Bit Have File processing hands-on:fileprocessing.c and fileprocessing.txt ready in /home/cshing/public_html/310/Lecture/tmp. • Instructor (1st): In tmp directory cd ~/310/Lecture/tmp chmodo+x../tmp gccfileprocessing.c chmodu+s,o+xa.out • Student: /home/cshing/public_html/310/Lecture/tmp/a.out /home/cshingpublic_html/310/Lecture/tmp/fileprocessing.txt