Linux Basics II - Personal Web Pages

advertisement
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
Download