Tony Kombol man on-line user manual man command_you_want_info_on type q to exit examples: for ls (list directory) ▪ man ls for cp (copy) ▪ man cp Switch user su userid su is short for switch user ▪ temporarily assume the id of another user ▪ If no userid is supplied root is assumed ▪ Hence the term superuser is sometimes assumed for su ▪ Useful in cases when need to be root (superuser) for a small number of tasks ▪ or any user! It is often useful to become the superuser (root) to perform important system administration tasks But as previously warned do not stay logged on as the root Fortunately, there is a program to give temporary access another user's privileges: su userid If userid not specified, root is assumed To become the superuser or root Debian: Type the su command CentOS: Type the su – command The – is important, in CentOS it gives the privilages Then prompted for root's password: [me@linuxbox me]$ su Password: [root@linuxbox me]# After executing the su command, a new shell session as the superuser is started To exit the superuser session type exit Returns to previous session (user) An optional alternative way to allow one account to act as another account Also allows restriction of use of features Ubuntu Installed in the base system Disables root Gives root authority to the base user through sudo Example: sudo tkombol ifconfig Permissions The Unix operating system families are not only multitasking but are also a multi-user What exactly does multi-user this mean? More than one user can be operating on the computer at the same time While the computer might only have one keyboard and monitor, it can still be used by more than one user ▪ If the computer has serial ports users may access the computer via an external terminal ▪ If a computer is attached to a network, or the Internet, remote users can log in via telnet or ssh (secure shell) and operate the computer To make multiple access practical, a method had to be devised to protect the users from each other Actions of one user should not crash the computer One user should not be able interfere with the files belonging to another user Unix and Linux use the same permissions scheme Each file and directory is assigned access rights for: ▪ Owner of the file ▪ By default the userid that created the file ▪ Can be re-assigned ▪ Members of a group of related users ▪ By default the owner ▪ Everybody else ▪ e.g. the rest of the world Rights can be assigned to: ▪ read a file (look at it) ▪ write a file (change it) ▪ execute a file (run the file as a program). To see the permission settings for a file use the ls command with the –l option: [me@linuxbox me]$ ls -l some_file Typical response: -rwxrw-r-- 1 me us 1097374 Sep 26 18:48 some_file By looking at the returned permissions -rwxrw-r-- 1 me us 1097374 Sep 26 18:48 some_file a lot can be determined from examining the results of this command: It is a normal file Signified by the “-” on the left The file "some_file" is owned by user "me" ▪ User "me" has the right to read, write & execute (run) this file The file is owned by the group “us" ▪ Members of the group “us" can read and write this file Everyone else can only read this file To interpret the first portion (10 characters) of the listing: First character indicates the file type -: normal file d: directory l: link Followed by three sets of three characters ▪ Owner ▪ First three ▪ Group ▪ Second three ▪ Everybody else (world) ▪ Last three Each set conveys permissions for ▪ Reading ▪ First character ▪ Writing ▪ Second character ▪ Execution ▪ Last character Change the file permissions (access): chmod ▪ modify file access rights chown ▪ change file ownership chgrp ▪ change a file's group ownership Change the permissions of a file or directory Specify the desired permission settings and the file or files to be modified Two ways to specify the permissions Octal Symbolic Permission settings can be thought of as a series of bits for each grouping First bit for read Second bit for write Third bit for execute Example: rwx rwx rwx = 111 111 111 rw- rw- r-- = 110 110 100 rwx --- --- = 111 000 000 and so on... Therefore for each group of 3 bits: ▪ ▪ ▪ ▪ ▪ rwx rwr-x r-Etc. = = = = 111 110 101 100 (binary) = 7 (octal) (binary) = 6 (octal) (binary) = 5 (octal) (binary) = 4 (octal) Octal is perfect for noting permissions! • By representing each of the three sets of permissions (owner, group, and other) as a single octal digit • Convenient way of expressing the permissions • Example: • set some_file to have read and write permission for the owner, but keep the file private from others, enter the command: – [me@linuxbox me]$ chmod 600 some_file Value 777 755 700 666 644 600 Meaning (rwxrwxrwx) No restrictions on permissions. Anybody may do anything. Generally not a desirable setting. (rwxr-xr-x) The file's owner may read, write, and execute the file. All others may read and execute the file. This setting is common for programs that are ran by all users. (rwx------) The file's owner may read, write, and execute the file. Nobody else has any rights. This setting is useful for programs that only the owner may use and must be kept private from others. (rw-rw-rw-) All users may read and write the file. (rw-r--r--) The owner may read and write a file, while all others may only read the file. A common setting for data files that everybody may read, but only the owner may change. (rw-------) The owner may read and write a file. All others have no rights. A common setting for data files that the owner wants to keep private. chmod command can also be used to control the access permissions for directories Permissions scheme for directories similar to files ▪ R – view directory contents ▪ W - create or delete files in the directory ▪ X – Allow users to change into directory (cd dir) Value Meaning 777 (rwxrwxrwx) No restrictions on permissions. Anybody may list files, create new files in the directory and delete files in the directory. Generally not a good setting. 755 (rwxr-xr-x) The directory owner has full access. All others may list the directory or change to the directory, but cannot create or delete files or directories. This setting is common for directories that you wish to share with other users. 700 (rwx------) The directory owner has full access. Nobody else has any rights. This setting is useful for directories that only the owner may use and must be kept private from others. chmod [ugoa][+-=][rwx] fname The first symbol is the reference (who) to change: ▪ ▪ ▪ ▪ ▪ u: user (owner) g: group o: others (world) a: all the above Multiple references may be specified… The second symbol is to add, remove or set a permission ▪ +: add the permission ▪ -: remove the permission ▪ =: make it the exact permission The last symbol is the permission to change ▪ ▪ ▪ ▪ r: is to read w: is to write x: is to execute Multiple permissions may be specified Examples: chmod u+w change.sh ▪ Add the ability of the owner (user) to edit (w) change.sh ▪ Really to save it after it is changed ▪ Does not change any other permissions chmod a-x xyz.sh ▪ Remove execute for everyone (all) Octal: Can set all permissions with 3 digits Easiest to change all permissions to an exact specification Symbolic: Can easily alter only one permission Know and use both effectively! Change the owner of a file File creator is the original owner by default Only root can chown Example: Change the owner of some_file from "me" to "you”: [me@linuxbox me]$ su Password: [root@linuxbox me]# chown you some_file [root@linuxbox me]# exit [me@linuxbox me]$ Remember: in order to change the owner of a file, you must have root authority! To do this, our example: ▪ employed the su command for a root shell ▪ executed chown ▪ exited to return to original shell chown works the same way on directories as it does on files Change the group ownership of a file or directory Command format: [me@linuxbox me]$ chgrp new_group some_file In the example above Group ownership of some_file changed from its previous group to "new_group" Must be the owner of the file or directory to perform a chgrp Several commands available to control processes The most commonly used: kill ▪ sends a signal to one or more processes ▪ usually to "kill" a process Suppose a program becomes unresponsive How to get rid of it? Use the kill command Let's try this out on xload: ▪ First, identify the process to kill ▪ Use either jobs or ps to do this ▪ jobs will return a job number ▪ ps returns a process id (PID). Start xload and return control to terminal [me@linuxbox me]$ xload & [1] 1292 Use jobs to see who is running [1] is the id number [me@linuxbox me]$ jobs [1]+ Running xload & [me@linuxbox me]$ kill %1 [me@linuxbox me]$ xload & [2] 1293 [1] Terminated xload [me@linuxbox me]$ ps PID TTY TIME CMD 1280 pts/5 00:00:00 bash 1293 pts/5 00:00:00 xload 1294 pts/5 00:00:00 ps [me@linuxbox me]$ kill 1293 [2]+ Terminated xload Kill id 1 Start xload again Use p to see the procsss status 1293 is xloads process id Kill process1293 Flexible and powerful text search utility Basic syntax: grep search-item file_searched Can get very sophisticated http://unixhelp.ed.ac.uk/CGI/man-cgi?grep can use regular expressions can search multiple files “>” Output of a program goes to std out by default ▪ Usually the monitor or terminal > sends the output to a file instead ▪ Creates the file if it does not exist ▪ Replaces the file contents if it does exist “>>” ▪ Appends data to an existing file “<“ Data is read from std in ▪ Usually the keyboard or terminal Reads the input from a different source (file) “|” Takes the output of one program and uses it as input to another E.g.: ▪ du | less Autocomplete Tab key ▪ Start the command or name ▪ Hit Tab ▪ If what you typed is unique up to that point bash will complete the rest of the typing! ▪ If what you typed is not unique it will give a gentle beep ▪ Hit Tab again to get a list of matches Recall The up arrow will recall previous commands The down arrow recalls later commands When commands are entered on the terminal they are kept in the history library List your top 10 by with the history command: History by itself gives the last ~500 commands Use pipes and filters to get the reduced data history | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -n | tail | sort -nr More Top Linux Commands for Newbie hostname Prints the name of the local host that you are currently working on. Use netconf to change the name of the machine. whoami Prints current user on the screen. Extremely when switching between a user ids. finger user_id System info about a user. Try: finger root df –h Print disk info about all the file systems. The - h means in human-readable form. (df=disk free) grep Search for certain phrases or words in a file du / -bh | more Print detailed disk usage for each subdirectory starting at the “/” (root) directory in human legible form. (du=disk usage) free Memory info (in kilobytes) pwd Show the name of the current working directory