umask
1.作用
umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。
2.格式
umask [-p] [-S] [mode]
3.参数
-S:确定当前的umask设置。
-p:修改umask 设置。
[mode]:修改数值。
4.说明
传统Unix的umask值是022,这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,那么这种“组保护模式”就不在需要了。严密的权限设定构成了Linux安全的基础,在权限上犯错误是致命的。需要注意的是,umask命令用来设置进程所创建的文件的读写权限,最保险的值是0077,即关闭创建文件的进程以外的所有进程的读写权限,表示为-rw-------。在~/.bash_profile中,加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。
5.应用实例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先显示当前状态,然后把umask值改为177,结果只有文件所有者具有读写文件的权限,其它用户不能访问该文件。这显然是一种非常安全的设置。
Linux的系统安全命令
虽然Linux和Windows NT/2000系统一样是一个多用户的系统,但是它们之间有不少重要的差别。对于很多习惯了Windows系统的管理员来讲,如何保证Linux操作系统安全、可靠将会面临许多新的挑战。本文将重点介绍Linux系统安全的命令。
passwd
1.作用
passwd命令原来修改账户的登陆密码,使用权限是所有用户。
2.格式
passwd [选项] 账户名称
3.主要参数
-l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。
-u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
-x, --maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-n, --minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。
-S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。
4.应用实例
$ passwd
Changing password for user cao.
Changing password for cao
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
从上面可以看到,使用passwd命令需要输入旧的密码,然后再输入两次新密码。
su
1.作用
su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
2.格式
su [选项]... [-] [USER [ARG]...]
3.主要参数
-f , --fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l , --login:加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。
-m, -p ,--preserve-environment:执行su时不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
USER:欲变更的使用者账号,ARG传入新的Shell参数。
4.应用实例
变更账号为超级用户,并在执行df命令后还原使用者。 su -c df root
umask
1.作用
umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。
2.格式
umask [-p] [-S] [mode]
3.参数
-S:确定当前的umask设置。
-p:修改umask 设置。
[mode]:修改数值。
4.说明
传统Unix的umask值是022,这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,那么这种“组保护模式”就不在需要了。严密的权限设定构成了Linux安全的基础,在权限上犯错误是致命的。需要注意的是,umask命令用来设置进程所创建的文件的读写权限,最保险的值是0077,即关闭创建文件的进程以外的所有进程的读写权限,表示为-rw-------。在~/.bash_profile中,加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。
5.应用实例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先显示当前状态,然后把umask值改为177,结果只有文件所有者具有读写文件的权限,其它用户不能访问该文件。这显然是一种非常安全的设置。
chgrp
1.作用
chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。
2.格式
chgrp [选项]... 组 文件...
或
chgrp [选项]... --reference=参考文件 文件...
将每个<文件>的所属组设定为<组>。
3.参数
-c, --changes :像 --verbose,但只在有更改时才显示结果。
--dereference:会影响符号链接所指示的对象,而非符号链接本身。
-h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。
-f, --silent, --quiet:去除大部分的错误信息。
--reference=参考文件:使用<参考文件>的所属组,而非指定的<组>。
-R, --recursive:递归处理所有的文件及子目录。
-v, --verbose:处理任何文件都会显示信息。
4.应用说明
该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
5.应用实例
改变/opt/local /book/及其子目录下的所有文件的属组为book,命令如下:
$ chgrp - R book /opt/local /book
chmod
Chmod使用格式:
Chmod [参数][模式]<文件或目录>
参数:-R:改变目录及其所有子目录的文件权限。
举例:
#chmod u+x inittab
#chmod ug+wx,o-x inittab
#chmod 0644 inittab
#chmod 0755 inittab
#chmod –R 700 ~
目录权限的补充说明:
1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
对特殊位的举例说明: 操作这些特殊位与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作, 1) chmod u+s temp : 为temp文件加上setuid标志. (setuid 只对文件有效) chmod g+s tempdir :为tempdir目录加上setgid标志 (setgid 只对目录有效) chmod o+t tempdir : 为temp文件加上sticky标志 (sticky只对目录有效)
2) 采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等.
设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如 rwsrw-r-- 表示有setuid标志 rwxrwsrw- 表示有setgid标志 rwxrw-rwt 表示有sticky标志 那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
1.作用
chmod命令是非常重要的,用于改变文件或目录的访问权限,用户可以用它控制文件或目录的访问权限,使用权限是超级用户。
2.格式
chmod命令有两种用法。一种是包含字母和操作符表达式的字符设定法(相对权限设定);另一种是包含数字的数字设定法(绝对权限设定)。
(1)字符设定法
chmod [who] [+ | - | =] [mode] 文件名
◆操作对象who可以是下述字母中的任一个或它们的组合
u:表示用户,即文件或目录的所有者。
g:表示同组用户,即与文件属主有相同组ID的所有用户。
o:表示其它用户。
a:表示所有用户,它是系统默认值。
◆操作符号
+:添加某个权限。
-:取消某个权限。
=:赋予给定权限,并取消其它所有权限(如果有的话)。
◆设置mode的权限可用下述字母的任意组合
r:可读。
w:可写。
x:可执行。
X:只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s:文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t:保存程序的文本到交换设备上。
u:与文件属主拥有一样的权限。
g:与和文件属主同组的用户拥有一样的权限。
o:与其它用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。
一个命令行中可以给出多个权限方式,其间用逗号隔开。
(2) 数字设定法
数字设定法的一般形式为: chmod [mode] 文件名
数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o)文件名,以空格分开的要改变权限的文件列表,支持通配符。
数字表示的权限的含义如下:0001为所有者的执行权限;0002为所有者的写权限;0004为所有者的读权限;0010为组的执行权限;0020为组的写权限;0040为组的读权限;0100为其他人的执行权限;0200为其他人的写权限;0400为其他人的读权限;1000为粘贴位置位;2000表示假如这个文件是可执行文件,则为组ID为位置位,否则其中文件锁定位置位;4000表示假如这个文件是可执行文件,则为用户ID为位置位。
3.实例
如果一个系统管理员写了一个表格(tem)让所有用户填写,那么必须授权用户对这个文件有读写权限,可以使用命令:#chmod 666 tem
上面代码中,这个666数字是如何计算出来的呢?0002为所有者的写权限,0004为所有者的读权限,0020为组的写权限,0040为组的读权限,0200为其他人的写权限,0400为其他人的读权限,这6个数字相加就是666(注以上数字都是八进制数),结果见图1所示。
图1 用chmod数字方法设定文件权限
从图1可以看出,tem文件的权限是-rw-rw-rw-,即用户对这个文件有读写权限。
如果用字符权限设定使用下面命令:
#chmod a =wx tem
chown
1.作用
更改一个或多个文件或目录的属主和属组。使用权限是超级用户。
2.格式
chown [选项] 用户或组 文件
3.主要参数
--dereference:受影响的是符号链接所指示的对象,而非符号链接本身。
-h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。
--from=目前所有者:目前组只当每个文件的所有者和组符合选项所指定的,才会更改所有者和组。其中一个可以省略,这已省略的属性就不需要符合原有的属性。
-f, --silent, --quiet:去除大部分的错误信息。
-R, --recursive:递归处理所有的文件及子目录。
-v, --verbose:处理任何文件都会显示信息。
4.说明
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户ID;组可以是组名或组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限。
5.应用实例
1.把文件shiyan.c的所有者改为wan
$ chown wan shiyan.c
2.把目录/hi及其下的所有文件和子目录的属主改成wan,属组改成users。
$ chown - R wan.users /hi
chattr
1.作用
修改ext2和ext3文件系统属性(attribute),使用权限超级用户。
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
3.主要参数
-R:递归处理所有的文件及子目录。
-V:详细显示修改内容,并打印输出。
-:失效属性。
+:激活属性。
= :指定属性。
A:Atime,告诉系统不要修改对这个文件的最后访问时间。
S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D:检查压缩文件中的错误。
d:No dump,在进行文件系统备份时,dump程序将忽略这个文件。
C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
s:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u:Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
4.说明
chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。
5.应用实例
1.恢复/root目录,即子目录的所有文件
# chattr -R +u/root
2.用chattr命令防止系统中某个关键文件被修改
在Linux下,有些配置文件(passwd ,fatab)是不允许任何人修改的,为了防止被误删除或修改,可以设定该文件的“不可修改位(immutable)”,命令如下:
# chattr +i /etc/fstab
sudo
1.作用
sudo是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令,权限是所有用户。
2.格式
sudo [-bhHpV] [-s ] [-u <用户>] [指令]
sudo [-klv]
3.主要参数
-b:在后台执行命令。
-h:显示帮助。
-H:将HOME环境变量设为新身份的HOME环境变量。
-k:结束密码的有效期,即下次将需要输入密码。
-l:列出当前用户可以使用的命令。
-p:改变询问密码的提示符号。
-s :执行指定的Shell。
-u <用户>:以指定的用户为新身份,不使用时默认为root。
-v:延长密码有效期5分钟。
4.说明
sudo命令的配置在/etc/sudoers文件中。当用户使用sudo时,需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日常工作,经常执行一些固定的几个只有超级用户身份才能执行的命令,那么用sudo是非常适合的。
ps
1.作用
ps显示瞬间进程 (process) 的动态,使用权限是所有使用者。
2.格式
ps [options] [--help]
3.主要参数
ps的参数非常多, 此出仅列出几个常用的参数。
-A:列出所有的进程。
-l:显示长列表。
-m:显示内存信息。
-w:显示加宽可以显示较多的信息。
-e:显示所有进程。
a:显示终端上的所有进程,包括其它用户的进程。
-au:显示较详细的信息。
-aux:显示所有包含其它使用者的进程。
4.说明
要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的作用:ps aux
图2 ps-aux命令详解
图2第2行代码中,USER表示进程拥有者;PID表示进程标示符;%CPU表示占用的CPU使用率;%MEM占用的物理内存使用率;VSZ表示占用的虚拟内存大小;RSS为进程占用的物理内存值;TTY为终端的次要装置号码。
STAT表示进程的状态,其中D为不可中断的静止(I/O动作);R正在执行中;S静止状态;T暂停执行;Z不存在,但暂时无法消除;W没有足够的内存分页可分配;高优先序的进程;N低优先序的进程;L有内存分页分配并锁在内存体内 (实时系统或 I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。
4.应用实例
在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量进程的情况。除了可以使用top命令查看内存使用情况之外,还可以使用下面的命令:
ps aux | sort +5n
who
1.作用
who显示系统中有哪些用户登陆系统,显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用,以及做了些什么。 使用权限为所有用户。
2.格式
who - [husfV] [user]
3.主要参数
-h:不要显示标题列。
-u:不要显示使用者的动作/工作。
-s:使用简短的格式来显示。
-f:不要显示使用者的上线位置。
-V:显示程序版本。
4.说明
该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。who命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。
动手练习
1.使用Linux命令检测系统入侵者
安装过Mandrake Linux和Red Hat Linux的用户都会知道,Linux系统会内置三种不同级别(标准、高、更高)的防火墙,当进行了Linux服务器的安装和一些基本的设置后,服务器应该说是比较安全的,但是也会有黑客通过各种方法利用系统管理员的疏忽侵入系统。如何快速查找黑客非常重要。一般来说,可以使用命令查询黑客是否入侵,见表1。
表1 查询黑客入侵现象的命令对应表
举例说明,如果黑客嗅探网络,那么它必须使网卡接口处于混杂模式,使用下面命令进行查询:
#ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1
......
从这个命令的输出中,可以看到上面讲到的这些概念。第一行的00:00:E8:A0:25:86是mac地址,第二行的192.168.1.7是IP地址,第四行讲的是接收数据状态,这时正在被黑客嗅探。一般而言,网卡有几种接收数据帧的状态,如Broadcast、Multicast、Promiscuous等。Broadcast是指接收所有类型为广播报文的数据帧;Multicast是指接收特定的组播报文;Promiscuous则是通常说的混杂模式,是指对报文中的目的硬件地址不加任何检查、全部接收的工作模式。
2.限制su命令的滥用
我们知道,超级用户在Linux中有最大的权利,几乎所有黑客都想得到这个目标。Linux可以增加对切换到超级用户的限制。使用PAM(Pluggable Authentication Modules)可以禁止除在wheel组以外的任何人su成root,修改/etc/pam.d/su文件,除去屏蔽标识#。使用/usr/sbin/usermod G10 bjecadm将bjecadm这个账号加入gid为10的组,就是wheel组。命令如下:
/etc/pam.d/su # 使用密码验证#
auth sufficient /lib/security/pam_wheel.so debug
# 限制只有wheel组用户才可以切换到root#
auth required /lib/security/pam_wheel.so use_uid
chmod -G10 bjecadm
另外,每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/sulog文件中写一条信息,若该文件记录了大量试图用su进入root的无效操作信息,则表明了可能有人企图破译root口令。
Linux命令有着强大的功能。对于Linux系统管理员来说,往往只需要通过各种安全命令技巧,组合构成安全防线。从计算机安全的角度看,世界上没有绝对安全的计算机系统,Linux系统也不例外。
其他信息列述
1.1 Linux操作系统概述
开放性的系统
多用户多任务的系统
具有出色的稳定性和速度性能
具有可靠的系统安全性
提供了丰富的网络功能
标准兼容性和可移植性
提供了良好的用户界面
Linux系统的组成
Kernel(内核)和版本
Linux 发行套件
Linux Shell
Linux 文件系统
Linux 文件系统标准结构
1.2 红旗Linux的安装
1.2.1 安装前的准备
1.2.2 使用安装光盘从CD-ROM安装
1.2.3 使用Linux启动盘从硬盘安装
1.2.1 安装前的准备
收集计算机硬件信息
规划硬盘空间
选取工作站类型:至少需要1.2G左右空间;最多需要1.5G左右空间。
选取服务器类型:至少需要650M左右空间,最多需要1.2G左右空间。
选取便携式类型:与工作站类型所需空间相当。
选取自定义类型:至少需要350M左右空间,最多需要2.4G左右空间。
规划网络配置信息
1.2.2 使用安装光盘从CD-ROM安装
设置CMOS
安装
安装红旗linux
Server和Workstation模式:自动分割硬盘
Custom:手工分割 ? Mount Point
/ ? root根分区(建议:256MB)
SWAP ?交换分区(建议:略小于实际内存2倍)
/usr:? 安装软件存放位置(建议:2.5GB)
/home:? 视用户多少而定
/var:? 存放临时文件(建议:256MB)
/boot: ? 存放启动文件(建议:32MB)
1.2.3 Linux的其他安装方式
本地安装
远程网络安装
使用Linux启动盘从硬盘安装
制作启动软盘
1、在DOS下创建:
进入dosutils子目录,运行rawrite程序 。
输入../images/boothd.img 。
2、在linux下创建:
#dd if=/images/boothd.img of=/dev/fd0 bs=1440
修改CMOS设置中的引导顺序
明确系统文件在硬盘中的存放位置
使用Linux安装启动盘从远程FTP服务器安装
远程网络安装Linux系统的方法和本地硬盘安装类似,也需要制作启动软盘。制作启动软盘的步骤和前面相同,唯一不同的是制作启动软盘时使用的软盘镜像文件是bootnet.img。
1.3、linux安装须具备的知识
磁盘的标识:
IDE硬盘:/dev/hdxx:其中第一个X表示第几块硬盘,采用a、b、c、d分别对应四块硬盘,第二个X表示分区,1-4表示主分区或扩展分区,逻辑分区从5开始。
SCSI硬盘:/dev/sdxx
光盘:/dev/cdrom
软盘:/dev/fd0
1.4 Linux运行级别和系统的启动和关闭
21.4.1 Linux的运行级别和切换
21.4.2 Linux的启动过程
1.4.1 Linux的运行级别和切换
Linux的运行级别
Linux运行级别的切换
Linux的启动、关闭和重新启动
Linux的运行级别
Linux运行级别的切换
在inittab文件中,操作initdefault将在系统初始化之后启动预设的运行级别,用户可以通过更改此项设置来改变系统的预设运行级别。
用户也可以在系统运行过程当中来改变系统的运行级别,方法是用init命令,后面加上要切换到的运行级别。
Linux的启动、关闭和重新启动
linux启动
红旗linux在启动过程中首先加载Linux内核,在内存中执行内核操作,检查硬件,挂载根文件系统,然后启动init进程。init进程就会根据inittab文件中的设置来使系统进入预设的运行级别,读取相关的配置文件和脚本程序,最后启用相关服务,完成整个系统的启动。
Linux的重启方法
Reboot
Init 6
Ctrl+alt+delete
Shutdown –r time [warning-message]
如:#shutdown –r +3 “system will be down in 3 minites,please save you work”
#shutdown –r now
#shutdown –r 03:15
Linux关机的方法
Halt
Init 0
Shutdown –h time [warning-message]
如:#shutdown –h now
1.5 Linux的初步使用
1.5.1 Linux的字符运行方式
1.5.2 linux的图形界面
1.5.3 常见问题
1.5.1 Linux的字符运行方式
登录和注销 :
超级用户登录后的操作提示符是“#”;普通用户登录后的操作提示符是“$”
若要注销登录,用户可以在当前的登录终端上输入logout命令或使用Ctrl+d热键进行。
终端之间的切换采用:alt+f1—f7
1.5.2 linux的图形界面
图形界面下运行终端命令:rxvt
图形界面切换到字符界面:ctrl+alt +f1—f6
图形界面下的注销:ctrl+alt+delete
图形界面下的锁定:ctrl+alt+L
1.5.3 常见问题
最基本的安全问题
root口令丢失的解决方法
删除Linux操作系统
最基本的安全问题
如果机箱有锁,应该上锁,并保证钥匙与机箱分离放置;
若机箱没有锁,如果必要,当正常运行后断开电源按钮和复位按钮的连接线;
禁止三键热启功能,修改/etc/inittab,将此行注释掉;
禁止BIOS中的软驱启动功能,并设置BIOS开机密码;
禁止公开root密码,若有多个系统管理员则应该避免root密码的扩散;
必须准备引导软盘以防硬盘无法启动时使用。
root口令丢失的解决方法
使用单用户模式 ,重设root密码
在红旗linux4桌面版中,在开始菜单中选3按e,再选2按e,把3改成1,回车再按b。
删除Linux操作系统
首先要修改MBR,删除LILO。
在DOS或Windows下用fdisk命令加上/mbr参数来完成 。
重新格式化ext3分区为FAT32分区或NTFS分区。
hls
查看公开信息
发送悄悄话给hls
给hls发送Email
查找hls发表的更多帖子
添加 hls 到好友列表
第2章:linux shell和常用命令
2.1 linux常用命令
2.2 shell
2.3 vi的使用
2.1 linux的常用命令
第一节:文件目录类命令
1、 查看联机帮助信息
man 命令 如:#man ls
info 命令 如:#info cd
2、列出当前目录或指定目录的文件名和目录名
ls [选项] 文件或目录
常用[选项]如下:
-a:显示所有的文件,包括以“.”开头的隐含文件。
-l:长格式输出
-m:宽行输出
-F:以各种符号表示不同的文件类型
--color:彩色输出
-R:递归输出
3、touch
功能:修改文件的创建日期或以当前系统日期创建一个空文件。
-d:修改文件的日期。
#touch –d 20030123 test.txt
4、cp
功能:复制文件
用法:cp [选项] 源文件或目录 目标文件或目录
选项:
a: 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
5、mv
功能:给文件或目录改名或将一个文件或目录移到另一个目录
用法:mv [选项] 源文件或目录 目标文件或目录
-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
6、rm
功能:删除文件或目录
用法:rm [选项] 文件…
- f 强制删除
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。
- i 进行交互式删除
7、cd
功能:改变工作目录。
语法:cd [directory]
用法:
#cd ..返回上一层目录
#cd ~进入自家目录
8、pwd
功能:显示当前工作目录
用法:#pwd
9、mkdir
功能:创建一个目录(类似MSDOS下的md命令)。
语法:mkdir [选项] dir-name
- m 对新建目录设置存取权限。也可以用chmod命令设置。
- p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
#mkdir –m a=rwx test
#mkdir –m u=rwx,g=rx,o=rx test1
#mkdir –m 755 test2
#mkdir –p test3/test4(test3和test4均为新目录)
10、rmdir
功能:删除空目录。
语法:rmdir [选项] dir-name
- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
11、file
功能:查看文件类型
语法:file 文件名
12、cat
功能:查看文本文件的内容
语法:cat 文件名
13、more
功能:分屏显示文本文件的内容。
14、less
功能:显示文本文件的内容,可使用pageup和pagedown上翻页下翻页。
15、head
功能:查看文件的开头部分内容
语法:head [行数] 文件名
用法:#head test.txt:显示前10行内容
#head -20 test.txt 显示前20行内容。
16、tail
功能:查看文件的结尾部分内容。
语法:tail [行数] 文件名
默认的行数为10行。
17、sort
功能:对文本文件中的各行进行排序
用法:sort 文件名
例:#sort 123.txt >456.txt 将123.txt排序后重定向到456.txt文件中。
18、uniq
功能:将重复行从输出文件中删除,只留下每条记录的唯一样本
语法: uniq 文件名
#uniq 456.txt文件中的重复行删除后输出
19、pr
功能:处理文件以便打印,输出到标准输出
语法:pr [参数] 文件名列表
[参数]
-d:将输出的每一行后加一新的空白行
-n:输出行号
如:#pr –n 123.txt
20、ln
功能:建立链接文件
语法:ls [-s] 源文件名 目标文件名
说明:链接文件分为硬连接和软连接,硬连接相当于一个数据源有两个文件名,删除一个文件另一个文件不变,修改一个文件的内容另一个文件的内容也跟着改变。硬连接不能和另一个目录链接,也不能和其他文件系统的文件进行链接。软链接相当于快捷方式,没有上面的限制,加-s参数创建软链接。
21、wc
功能:统计文件的行数、字符数和单词数。
语法:wc [-lwc] 文件名
-l: 只显示行数,-w:只显示单词数,-c:只显示字符总数。
22、whatis
功能:可以用一行内容显示对命令行后输入的关键词的说明。
语法:whatis 关键词
用法:#whatis find whereis
23、Whereis
功能:确定指定文件的源程序/二进制程序和手册部分的位置。
用法:#whereis ls
24、which
功能:显示可执行命令的路径和它的别名。
用法:#which ls
25、locate
功能:可以查找具体文件或命令的路径,可以查找具体的字符串或子串
用法:locate 文件名或关键字
26、du
功能:统计文件和目录所占用的磁盘空间
语法:du [-ask] 文件名或目录名
-a:显示对涉及到的所有文件的统计,而不仅仅统计目录
-s:只打印出合计数
-k:以kB字节数显示
Find使用范例
find . -name ls.txt
find . -name ls.txt –print
find / -name ‘c??’ –print
find / -name ‘f*’ –print
find . -name ‘f*’ –exec ls –l {} /;
find . -name f/* –ok rm {} /; (交互式提问)
find . -perm 644 –mtime 4
find . -name ‘c??’ –o -name ‘d??’
28、grep
功能:在文件中搜寻匹配的行并进行输出
语法:grep [参数]<要找的字串><原文件>
-num:输出匹配行前后各num行的内容
-A num:输出匹配行后num行的内容
-B num:输出匹配行前num行的内容
-i:忽略大小写的区别
-v:只显示出那些不包括某字串的行和文件,和默认的相反
二、文件压缩和归档类命令
1、gzip
功能:是一种压缩程序,特点是可以得到最佳的压缩率,但速度较慢。
语法:gzip [-vd9] 文件名
-v:冗长型选项,可以显示每个文件的大小等
-d:解压
-9:产生最佳压缩效果,但速度较慢。
2、gunzip
功能:可以把压缩的文件解压成原始文件状态,可以解压扩展名为.gz,.z,.Z和.tgz等类型的压缩文件
语法:gunzip [-v] 文件名
-v:显示解压缩文件的冗长结果
3、tar
功能:可以归档多个文件和目录到一个.tar文件下,还可以从一个归档文件中抽取一个文件和目录。
语法:tar [-c][-r][-t][-x][-v][-z][f 文件名] 文件和目录名
-c:创建归档文件
-r:增加文件到归档文件中
-t:查看归档文件中的文件
-x:解开归档文件
-v:显示冗长信息
-z:进行压缩和解压
如: #tar –cvf back.tar 文件1 目录1 文件2
#tar –rvf back.tar 文件3
#tar –tf back.tar
#tar –xvf back.tar
#tar –czvf back.tar.gz 文件1 目录1 文件2
#tar –xzvf back.tar.gz
4、安装以rpm方式提供的软件
Rpm(the red hat package manager)是一个开放的软件包管理系统。
功能:可以安装和卸载RPM包的软件
#rpm –ivh *.rpm 安装RPM包;
#rpm –ivh –force *.rpm 在原先安装的基础上再强行安装一次;
#rpm –Uvh *.rpm 升级rpm包
#rpm –qa 查找列出系统中所有安装的rpm包
#rpm –q sendmail:查看sendmail包的情况
#rpm –ql sendmail:查看sendmail安装的位置
#rpm –e *.rpm 卸载rpm包
#rpm - qlp name.rpm 查看name.rpm有哪些文件
#rpm - qf name.rpm 查看已经装好的文件属于哪个rpm包
#rpm2cpio filename.rpm 使用“rpm2cpio”来从RPM文档中提取文件
5、安装以源代码方式提供的软件
(1)、解包解压:
#tar –xzvf *.tar.gz 解包解压后会在当前目录下建立一个子目录,如xxxx
(2)、#cd xxxx
(3)、#./configure
(4)、#make
(5)、#make install
三、系统状态类命令
1、dmesg
功能:显示引导时内核显示的状态信息
#dmesg |grep -4 “eth0”显示状态信息中与eth0相关的前后4行内容
2、uname
功能:显示当前的系统信息
#uname -a
3、uptime
功能:显示当前时间,自从上次重新引导之后系统运行的时间,服务器和多少用户链接以及系统前1、5、15分钟的负载信息。
4、who
功能:显示当前登录在系统上的用户信息。
-r:查看系统运行等级
-w,在登录帐号后面显示一个字符来表示用户的信息状态:
+:允许写信息; -:不允许写信息; ?:不能找到终端设备
5、w
功能:查看其他登录的用户(who增强版)
第一行输出内容:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒、5秒和15秒的平均负载
第二行输出内容:登录帐号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。
*JCPU时间指的是和该终端(tty)连接的所有进程占用的时间
*PCPU时间则是指当前进程(即在WHAT项中显示的进程)所占用的时间
6、whoami
功能:显示当前用户名
7、hostname
功能:显示系统的主机名
8、cal [月份] [年份]
功能:显示日历
9、bc
功能:计算器,使用quit退出
10、date
功能:显示或修改日期时间。
11、df
功能:报告文件系统磁盘空间的使用情况
语法:df[参数]
[参数]
-h:用常见的格式显示出大小(例如:1K,23M,2G等)
-t:只显示指定类型的文件系统
12、free
功能:查看当前内存和交换空间的使用情况
四、网络类命令
1、write
功能:向另外一个用户发信息,以Ctrl+D作为结束,普通用户发信息受到mesg状态影响。
语法:write <用户名>
2、wall
功能:向所有用户广播信息,普通用户受到mesg状态影响。
语法:wall [message]
3、mesg
功能:显示或设置是否接受其他用户发来的信息。
语法:mesg [参数]
[参数]
y:接受从其他用户发来的信息
n:不接受从其他用户发来的信息
#mesg
显示当前是否接受其他用户发来的信息
4、ping
功能:通过检查网络中其他主机的应答信息,来确认网络的连通性。
语法:ping [参数] 主机名(或ip地址)
参数:
-c count:共发出count次信息。
-R:显示路由表的详细信息
5、telnet
功能:远程登录
语法:telnet [<主机名>][:端口号]
6、ifconfig
功能:配置网络接口
语法:
ifconfig [interface] [up][down][netmask mask]
#ifconfig
#ifconfig eth0 192.168.0.3 netmask 255.255.255.0 up
7、netstat
功能:显示本地系统的网络连接状态
语法:netstat [-a][-r][-c][-i]
-a:显示所有本地系统中的网络连接
-r:显示路由表
-c:显示连续的网络连接状态
-i:显示全部网络接口信息。
8、ftp
功能:文件传输
语法:ftp [<主机名>]
子命令:
?:列出所有的FTP命令;
pwd:显示远程主机的当前目录
lcd:切换和显示本机主机的当前目录
ls:列出远程主机当前目录下的内容
!dir:列出本机主机的当前目录下的内容
cd:切换远程主机的目录
get:下载一个文件
mget:成批下载文件
put:上传一个文件
mput:成批上传文件
prompt:使用mget和mput时是否采用交互式询问
bye:中止一个FTP连接
open:打开一个FTP连接
close:关闭一个FTP连接
binary:采用二进制模式传输
ascii:采用ascii模式传输
type:查看传输模式
2.2 shell
一、shell简介
二、shell功能
一、shell简介
(一)、定义:shell是用户与操作系统内核之间的接口,具有命令解释器和编程语言的双重功能。
(二)、shell中的命令分为内部命令和外部命令,内部命令包含在shell自身之中的,如cd,exit等,查看内部命令的方法可用help命令;而外部命令是存在于文件系统某个目录下的具体的可执行程序,如cp等,查看外部命令的路径可用which。
(三)、命令解释过程
二、shell功能
(一)、命令行解释
1、交互模式
2、后台运行:如#fsck / &
(二)、通配符
*:表示任一串字符
?:表示任一个字符
[…]:匹配方括号内的任意字符
[!...]或[^…]:匹配除方括号内的任意字符
[a-zA-Z]:匹配首字符是字母的所有文件
(三)、重定向
1、>:输出重定向 如:#ls >1.txt
2、>>:追加重定向
如:#cat /etc/inittab >>1.txt
3、<:输入重定向 如#wc 4、<如#wc <hello
it is a nice day
!
5、2>:错误重定向
6、&>:同时实现输出重定向和错误重定向
(四)、管道操作符 |
功能:把一个命令的输出内容作为另外一个命令的输入内容。
#ls |more:分屏显示
#dmesg |grep eth0
(五)、命令替换符` `
功能:把一个命令的输出内容作为另外一个命令的参数。
#cd `pwd`
#tar –cvf zsan.tar `find / -user “zsan”`
#tar –cvf conf.tar `ls /etc *.conf`
(六)、命令执行顺序
1、;按顺序执行命令 如#date;cal
2、&&逻辑与的关系,只有前面的命令执行成功后面的命令才会被执行。
如:#mail [email protected] <123.txt &&rm –fr 123.txt
3、||逻辑或的关系,只有前面的命令执行失败后面的命令才会被执行。
如:#write zsan <123.txt ||mail [email protected] <123.txt
4、( )组合命令行中的命令,改变执行顺序
如:#date;cal|wc与#(date;cal)|wc
(七)、自动补全:在bash下输入命令时不必把命令输全,bash就能判断出用户所要输入的命令,可通过tab键完成自动补全功能。
(八)、命令别名
功能:可以使工作变得轻松的工具
语法:alias [<别名>=“<原文件名>”]
#alias 显示所有的别名
#alias md=“mkdir” 建立别名
#unalias md 取消别名
(九)、命令历史
功能:可以记录一定数目的以前在shell中输入的命令以避免重复劳动
1、查看所有的历史命令:#history
2、查看某条历史命令:#history n
3、引用历史命令:#!<命令编号>
2.3 vi的使用
一、编辑模式下的常用命令
1、0:移光标到当前行的行首
2、$:移光标到当前行的行尾
3、H:移光标到当前屏第一行的行首
4、M:移光标到当前屏中间行的行首
5、L:移光标到当前屏最后一行的行首
6、pageup、pagedown:上翻页,下翻页
7、ctrl+g:显示状态信息
8、X:删除一个字符
9、dd:删除或剪切光标所在的行
10、d0:删除光标处到行首的内容
11、d$:删除光标处到行尾的内容
12、u:取消上次命令
13、. :重复操作
14、YY:复制当前行
15、p:粘贴
二、命令状态下操作:
1、:n 跳行
2、:w 保存
3、:q 退出(须先保存)
4、:w filename 另存为
5、:wq 保存退出
6、:q! 不保存强制退出
7、:a,b w filename 将a行到b行的内容另存为
8、:.,$ w filename 将当前行到行尾的内容另存为
9、:1,. W filename 将第一行到当前行的内容另存为
10、:/string 在全文中查找string字符串
11、:a,b s/string1/string2/g 将a行到b行之间的所有string1替换成string2
12、:% s/string1/string2/g 将全文中的string1替换成string2
13、:e filename 新建文件
14、: r filename 打开一个文件
15、:f filename 重命名当前文件
16、:n1,n2 co n3 将n1和n2行的内容复制到n3行位置上
17、:n1,n2 m n3 将n1和n2行的内容移到n3行的位置上
18、:n1,n2 d 将n1到n2行的内容删除掉
19、:set number 设置行号
20、:set autoindent 设置自动缩进
21、:!Cmd 执行shell命令
22、:r ! Cmd 将shell命令的执行结果作为文件的内容
23、:sh 暂时退出vi到系统下,按ctrl+d结束
24、:X 文件保存退出前加密。
hls
查看公开信息
发送悄悄话给hls
给hls发送Email
查找hls发表的更多帖子
添加 hls 到好友列表
第三章:文件系统管理
3.1 文件系统概述
一、文件管理
(一)、文件的类型
1、普通文件:包括文本文件和二进制文件
2、目录文件
3、链接文件:包括硬链接和软链接。
4、特殊文件:
设备文件:包括字符类设备(如打印机)和块设备(如硬盘)以及空设备(null)
管道文件:是一个先进先出(FIFO)的缓冲区。
文件类型及其代表字符
(二)、文件权限
1、chmod
功能:改变文件(目录)的访问权限
权限的表示法有两种:
一是采用符号标记模式进行更改
二是采用八进制数指定新的访问权限
符号表示法的格式:[ugoa][+-=][rwx]
u:表示文件的所有者;
g:表示文件所有者同组的用户;
o:其他用户
a:所有用户
+:添加权限
-:撤消权限
=:指定权限
r:读权限
w:写权限
x:执行权(或对目录的访问权)
八进制数字表示法:
用1—4个八进制数来表示,其中:
第一位:
用4表示setuid:设置使文件在执行阶段具有文件所有者的权限,如/usr/bin/passwd的权限设置 ;
用2表示setgid:该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组;
用1表示sticky bit :该位可以理解为防删除位,一个文件是否可以被某用户删除, 主要取决于该文件所在的目录是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除别的文件, 则可以对目录使用sticky bit位. 用户对目录设置该位后, 就算对目录具有写权限, 也不能删除不属于该用户的文件。
第二位:用来设置文件所有者的权限,用4表示可读,用2表示可写,用1表示可执行
第三位:用来设置文件所在组用户的权限,用4表示可读,用2表示可写,用1表示可执行
第四位:用来设置其他用户的权限,用4表示可读,用2表示可写,用1表示可执行。
Chmod使用格式:
Chmod [参数][模式]<文件或目录>
参数:-R:改变目录及其所有子目录的文件权限。
举例:
#chmod u+x inittab
#chmod ug+wx,o-x inittab
#chmod 0644 inittab
#chmod 0755 inittab
#chmod –R 700 ~
目录权限的补充说明:
1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
对特殊位的举例说明: 操作这些特殊位与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作, 1) chmod u+s temp : 为temp文件加上setuid标志. (setuid 只对文件有效) chmod g+s tempdir :为tempdir目录加上setgid标志 (setgid 只对目录有效) chmod o+t tempdir : 为temp文件加上sticky标志 (sticky只对目录有效)
2) 采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等.
设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如 rwsrw-r-- 表示有setuid标志 rwxrwsrw- 表示有setgid标志 rwxrw-rwt 表示有sticky标志 那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
2、chown
功能:修改文件(目录)所有者和组别
语法:
chown [参数]<用户名[.组名]><文件或目录>
参数:-R:递归地修改目录及其下面内容的所有权。
#chown zsan history.doc
#chown –R zsan.sales /home/zsan
3、chgrp
功能:改变文件的组所有权
格式:chgrp [参数]<组><文件或目录>
[参数]:-R:递归地将指定目录下的所有文件和子目录的组名修改为指定的组。
#chgrp –R student /home/st01
4、umask
功能:用于设置文件的默认生成掩码,告诉系统当创建一个文件或目录时不应该赋予其哪些权限。
(三)ext2(ext3)文件系统安全选项
A:Atime。告诉系统不要修改对这个文件的最后访问时间
S:Sync。一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。 a:Append Only。系统只允许在这个文件之后追加数据,不允许任何进程覆盖或者截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。 i:Immutable。系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
ext2(ext3)文件系统安全选项
d:No dump。在进行文件系统备份时,dump程序将忽略这个文件。 C:Compress。系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后,才写入磁盘。 s:Secure Delete。让系统在删除这个文件时,使用0填充文件所在的区域。 u:Undelete。当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
chattr修改文件属性
chattr +i filename 设置i属性
chattr –i filename 取消i属性
lsattr 查看设置的属性
二、linux支持的文件系统:
Ext2或ext3文件系统
FAT(适用各种版本的DOS)
NTFS(适用Windows NT -- Windows 2000)
VFAT和FAT32(适用Windows 9x)
HFS(适用MacOS)
HPFS(适用OS/2)
Swap(交换分区)
3.2 fdisk分区工具
#fdisk –l /dev/hda
#fdisk /dev/hda
:m 列出所有的分区命令
:p 显示分区情况
:d 删除原有的分区
:n 增加新分区
:t 改变分区类型
:l 查看分区类型
:a 设置活动分区
: w 保存退出
: q 不保存退出
3.3 使用mkfs创建文件系统
mkfs命令的格式是:mkfs 选项 设备名
例如:
mkfs –t ext2 –c /dev/hda2
-t:指定文件系统类型
-c:建立文件系统前先检测有无坏块
#mke2fs –c /dev/hda2
3.4 挂载和卸载文件系统
挂载文件系统
卸载文件系统
挂载文件系统
mount /dev/sdb1 /tmp/test1
mount /mnt/floppy
mount
注意
挂载目录必须存在
Linux专门提供了挂载目录/mnt
不要在挂载目录下进行挂载操作
将软盘或光盘放入驱动器后在实施挂载操作
卸载前不要取出软盘或光盘
不能在同一个目录下挂载两个文件系统
卸载文件系统
umount /mnt/cdrom
umount /dev/sdb1
umount /tmp/test1
mount –a:卸载所有挂载设备
注意:不能在挂载目录下进行卸载操作
3.5 软盘、光盘、USB硬盘的使用
1、软盘格式化:fdformat –n /dev/fd0H1440
2、建立文件系统
mkfs –t ext2 –c /dev/fd0H1440
3、挂载文件系统
mount –t ext2 /dev/fd0H1440 /mnt/floppy
4、使用
cp /etc/lilo.conf /mnt/floppy
mkdir /mnt/floppy/mydir1
5、卸载
umount /mount/floppy
1、挂载文件系统
mount –t iso9660 /dev/cdrom /mnt/cdrom
或
mount /mnt/cdrom
2、卸载
umount /mnt/cdrom
eject(弹出光盘)
USB硬盘的使用
USB硬盘在Linux系统下是被模拟成SCSI设备来使用的,因此对应的设备文件是/dev/sda,如果有多块USB硬盘,则设备文件依次是/dev/sdb、/dev/sdc等。
用mount命令加-o loop选项挂载光盘镜像文件
1、#mkdir /mnt/iso
2、#mount –o loop rfdesktop4.iso /mnt/iso
3.6在系统启动时自动挂装文件系统
要系统自动挂载文件系统必须修改系统配置文件/etc/fstab。系统启动所要挂载的文件系统、挂载点、文件系统类型等都记录在/etc/fstab文件里。
3.7 文件系统管理的常用命令
df:显示文件系统的统计数据
du:显示硬盘使用的统计信息
ln:创建链接文件
tar:文件打包
fsck:文件系统检查命令
dd:文件拷贝命令
fsck
功能:检查文件系统
语法:fsck [选项]<设备名>
选项:
-t fstype:检查的文件系统类型
-A 检查所有在/etc/fstab中列出的文件系统
-p:整理文件系统,自动修正所有问题
注意:
1、当检查一个文件系统时,应该确保处于未挂装状态
2、当要检查根文件系统时,应该使用急救软盘或安装光盘重新引导机器后时行
fsck命令输入的错误代码
Linux引导盘的制作
#cd /lib/modules
#mkbootdisk --device /dev/fd0 2.4.20-8
制作引导盘的好处:
1、替代LILO
2、紧急情况下使用引导盘和急救盘恢复系统
3、当其他系统覆盖了LILO
dd:文件拷贝命令
制作Linux安装启动盘
dd if=boot.img of=/dev/fd0 bs=1440k
制作redhat linux急救盘
#dd if=rescue.img of=/dev/fd0
rescue.img存放在redhat linux安装光盘的images目录中。
备份和恢复软盘数据
dd if= /dev/fd0 of=backup
dd if=backup of= /dev/fd0
第四章:用户管理
本章主要内容
4.1 用户和组管理概述
4.2 用户帐号的管理
4.3 组的管理
4.4 磁盘限额
4.1 用户和组管理概述
一、帐号管理包括用户的管理、组的管理和口令的管理
二、linux下的用户分为三类:
1、超级用户:超级用户的uid和gid均为0
2、普通用户:普通用户的uid和gid是在500-60000范围内的一个值
3、伪用户:uid的值是在1-499之间,不能登录,只是满足系统管理的要求,如bin,sys,lp 等。
三、linux下的组分为标准组和私有组:
1、当在创建一个新用户时,若没有指定他所属于的组,系统就会建立一个和该用户同名的私有组;
2、标准组可以容纳多个用户,若使用标准组,在创建一个新的用户时就可以指定他所属于的组。
四、帐号系统文件
1、linux下的帐号系统文件主要有/etc/passwd,/etc/group,/etc/shadow ,这些文件只有超级用户才可以修改
2、其他文件或目录
(1)、默认设置文件
/etc/login.defs,/etc/default/useradd
(2)、默认设置目录
/etc/skel
2.1 用户帐号管理
一、创建新的用户帐号系统将会
1、在/etc/passwd中添加一笔记录
2、创建用户的自家目录
3、在用户自家目录中设置默认的配置文件
4、设置用户初始口令
二、创建帐号
Useradd [<选项>]<用户名>
[<选项>]
-u uid:指定新用户的uid,默认为使用当前最大的uid加1
-g group:指定新用户所在的组,该组必须已经存在
-G group:指定新用户的附加组
-d dir :指定新用户的自家目录
-s shell:指定新用户使用的shell,默认为bash,也可以使用chsh命令修改,/etc/shells
-c comment:说明新用户的附加信息,如全名等
-e expire:指定用户的登录失交效时间,格式yyyy-mm-dd
-m 建立新用户的自家目录
-M 不建立新用户的自家目录
-R 建立一个系统用户
举例:
#useradd –g ll –e 12/31/2001 lei
#passwd lei
三、删除已存在的用户帐号
Userdel –r lei
-r :表示连同自家目录一起删除
四、修改用户属性
Usermod [<选项>]<用户名>
其中[<选项>]和useradd中的选项基本相同,但增加
-l:更改用户的帐号名
-L:锁定用户
-U:取消帐号锁定
#usermod –l xjlei –d /home/xjlei –G girl lei
五、成为超级用户
修改用户的uid和gid为0即可。
命令:usermod –u 0 –o zsan
-o:强迫修改uid
六、禁用和恢复用户帐户
命令:passwd [<选项>]<用户名>
[选项]
-l:锁定用户
-u:对被锁定的用户解锁
-d:删除用户密码
-S:查看用户帐号的状态,如是否被锁定等
七、切换到其他用户
命令:su [-] [username]
说明:如果目录用户是普通用户,则可以切换到超级用户或其他普通用户,但需要口令,如果目录用户是超级用户,则可以直接切换到普通用户,不需要密码。
[-] :连同工作环境一起切换。
八、sudo
sudo是可以让普通用户执行某个超级用户执行的程序,如:sudo vi /etc/shadow
所有这些配置项要保存在/etc/sudoers文件中
sudo文件中语法如下:
1、用Host_Alias关键字定义主机列表
如:Host_Alias RED=www,ftp
2、用User_Alias关键字定义用户别名列表
如:User_Alias US=wdn,zsan
3、用Cmnd_Alias关键字定义命令别名列表
如:Cmnd_Alias CMDS=/bin/rm,/bin/chown
一个实例:/etc/sudoers
User_Alias US=wdn
User_Alias US1=lsi,wemz
User_Alias US2=zsan
US ALL=ALL
US1 ALL=/sbin/shutdown
US2 ALL=ALL,!/bin/su
4.3 组的管理
一、添加组
命令:groupadd [<选项>]<组名>
[选项]
-g gid:指定新组的gid,默认为使用当前最大的gid加1
-r:建立一个系统用户组,不指定-g选项,则分配一个1-499之间的值
#groupadd –g 888 ll
二、删除组
命令:groupdel <组名>
三、修改组的属性
命令:groupmod [<选项>]<组名>
其中选项与groupadd选项基本相同,但增加一个-n选项,用于修改新的组名。
#groupmod –n girl ll
四、为标准组添加用户
命令:gpasswd [选项][用户][组]
-a:把用户加入组
-d:把用户从组中删除
#gpasswd –a zsan sales
五、查看当前用户属于哪些组
groups [username]
六、切换到某组运行(必须已属此组)
newgrp [group]
七、其他命令
1、id命令
功能:可以查看一个用户的uid和gid
格式:id 用户名
2、finger
功能:查看用户的相关信息
格式:finger 用户名
3、chfn
功能:修改用户信息
格式:chfn 用户名
4.4 磁盘限额
一、安装磁盘限额
在安装光盘中找到quota的rpm软件包。如:
#rpm –ivh quota-version.i386.rpm
可用rpm –q quota查看是否安装
二、启用系统的quota功能
编辑etc/fstab,在要启用磁盘限额的分区
(如/home)行中的添加相应参数如
/dev/hda6 /home ext3 rw defaults,usrquota,grpquota 0 2
三、创建quota文件
在/home分区中添加aquota.user和aquota.group文件
#touch aquota.user
#touch aquota.group
系统重启,运行quotacheck –avug命令在配额文件中创建磁盘信息。
四、设置用和组的quota
对一个用户的磁盘使用限制有两种,一种是软限制(soft limit),一种是硬限制(hard limit),硬限制是分配给用户的最大磁盘空间,使用完了就立即拒绝用户再存放文件,而当用户的磁盘使用空间超过了软限制时,在一定期限内仍可继续存储文件,但系统会有警告。而这个期限可用edquota –t 来设置
1、为用户设置quota
#edquota –u zsan
2、为组设置quota
#edquota –g sales
3、若为多个用户重复设置quota
#edquota –p 参考用户 待设置用户
#edquota –p zsan lsi wdn
四、启动quota
#quotaon -avug
五、查看磁盘限额的情况
#quota zsan
#quota –a
六、显示有关quota的摘要信息
# repquota /home
hls
查看公开信息
发送悄悄话给hls
给hls发送Email
查找hls发表的更多帖子
添加 hls 到好友列表
第五章 进程管理
本章主要内容
5.1 进程的基本概念
5.2 进程的管理和监控
5.3 进程的自动执行
5.1 进程的基本概念
一、程序、进程和作业的概念
1、程序是机器指令的集合,一般以文件的形式存储在磁盘上,是静态的。
2、进程是一个程序在地址空间中的一次执行活动,是动态的。
3、作业是指用户提交给计算机进行加工的一项任务,是由用户程序、数据以及某种形式的控制信息组成。
二、进程的类型
1、交互进程:由一个shell启动的进程,既可以在前台运行,也可以在后台运行。
2、批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行进程。
3、守护进程:在linux启动是初始化,需要时运行于后台的一些服务进程。
三、进程的启动方式:
1、手工启动,分为前台启动和后台启动,通常情况下,我们执行一个命令就会启动一个进程。
#ls / –R >test 前台启动
#ls / -R >test & 后台启动
2、调度启动:事先设置好,根据用户要求让系统自动启动。
2.2 进程的管理和监控
一、查看系统中的进程
1、ps [选项]
[选项]
-a 显示所有用户的进程,但不包括没有控制终端的进程
-u 显示用户名和启动时间
-x 显示没有控制终端的进程
PS命令输出的重要信息的含义
PID:进程号
PPID:父进程的进程号
TTY:进程启动的终端
STAT:进程当前的状态,S代表休眠,R代表运行,T代表追踪或停止,Z代表僵尸进程,W代表进程没有固定的pages,<表示高优先级的进程,N代表低优先级的进程。
TIME:进程自从启动以来占用CPU的总时间
COMMAND/CMD:进程的命令名
USER:用户名
%CPU:占用CPU的时间与总时间的百分比
%mem:占用内存与系统总内存的百分比
SIZE:进程代码大小
二、控制系统中的进程
1、kill
功能:杀死一个进程
格式:kill -9 进程号
2、renice
功能:改变一个正在运行进程的优先级
格式:renice –n pid
-n:进程的优先级,大于0是降低优先级,小于0是提高优先级,优先级的范围是从19到-20
3、 nohup
功能:当用户退出登录后,进程仍然能够在后台继续运行.
语法:nohup myprogram &
4、top
功能:以动态的方式显示进程状态
Top命令的显示栏说明:
PID:进程号
User:进程的所有者
Pri:进程运行的优先级
Ni:nice值,表示进程的优先级
VIRT:进程占用的虚拟内存的总量
RES:进程占用的非swap内存的总量
SHR:和其他进程共享内存的总量。
S:进程的状态
TIME+:进程的累积运行时间
Top中的子命令
l,t,m:调整显示的摘要信息,l是平均负载,t是cpu状态,m是内存信息
f:用来添加、删除显示栏位
u:列出某个用户的进程
n:设置显示总进程数的最大值
k,r:k用来杀死某个进程,r是renice
q:退出TOP
5、进程的挂起和恢复
按ctrl+z可以暂停正在运行的进程,
执行jobs可以显示当前终端下有哪些程序在后台运行以及哪些进程被挂起了。
执行fg可以在前台恢复一个被挂起的进程。
执行bg可以在后台恢复一个被挂成的进程。
5.3 进程的自动运行
1、at
功能:指定在某一时刻执行命令
格式:at [选项] 时间
选项:
-l:列出已经排定的任务
-d n 删除序号为n的任务
-v:显示命令将被执行的时间
时间表示法:
HH:MM 当天中的某小时、某分钟,如果此时刻已经过去了,则推迟到下一天的这一时刻。
Midnight:午夜
noon:中午
MM/DD/YY:某月、某日、某年
now+计时:从现在起某时刻后,如now+3days表示从现在起,三天以后
2、batch
功能:任务会在系统负载较小的时候运行。
3、应用程序corn
对于要在每天或每周都要定期执行的任务,则可以使用corn来排定。
格式:crontab –e
可以调动VI来编辑计划任务表。如:
00 03 * * * rm –fr /ftp/incoming/temp/*
分钟 小时 日 月 星期 命令
(00-59)(00-23)(01-31)(01-12)(01-07)
#crontab –l 查看用户的计划表
#crontab –r 删除用户的计划表
4、linux自动安排系统维护任务
/etc/crontab
/etc/cron.daily
/etc/cron.monthy
/etc/cron.weekly
/etc/cron.hourly
虽然 GUI 桌面(如 KDE 和 GNOME)能够帮助用户利用 Linux 特性,而无需关于命令行接口的功能知识,但还是经常会需要更多的功能和灵活性。而且,基本熟悉这些命令对于在 shell 脚本中正确地使某些功能自动化仍然是必需的。
这篇文章是关于 Linux 文件命令的一个“速成教程”,它是为那些刚接触这个操作系统或者只是需要补充这方面知识的用户提供的。它包含了对一些更有用的命令的一个简明的概述以及关于它们的最强大的应用的指导。下面包含的信息 — 结合一些实验 — 将使您能够容易地掌握这些基本的命令。(注意:当涉及到一个与 Oracle 集群文件系统 (OCFS) 结合的内核时,这些命令中的某些命令的行为可能会稍微有所不同。在此情况下,Oracle 提供了一个 OCFS 工具集,该工具集可以为文件命令应用提供一个更好的选择。)
注意,这里包含的所有示例都在 SUSE Linux 8.0 Professional 上进行了测试。虽然没有理由相信它们在其它的系统上将不能工作,但如果出现问题,您应当查看您的文档,以了解可能的变化。
背景概念
在深入研究规范之前,让我们回顾一些基础知识。
文件和命令
在 Linux/UNIX 操作系统中,所有事物都被当作文件来处理:硬件设备(包括键盘和终端)、目录、命令本身,当然还有文件。这个奇怪的惯例实际上是 Linux/UNIX 的能力和灵活性的基础。
大多数(几乎是全部)的命令形式如下:
command [option] [source file(s)] [target file]
获取帮助
最有用的命令之一是那些提供帮助的命令(特别是对那些学习 Linux 的人而言)。Linux 中的两个重要的信息来源是联机参考手册,或 man 页面和 whatis 工具。您可以用 whatis 命令来访问一个不熟悉的命令的 man 页面。
$ whatis echo
要了解关于这个命令的更多信息,可以使用:
$ man echo
如果您不知道某个特殊任务所需的命令,您可以用 man -k (也称为 apropos)和一个主题来生成可能的命令。例如:
$ man -k files
一个很有用但常常被忽视的命令可以提供关于使用 man 本身的信息:
$ man man
您可以用 SPACEBAR 来浏览任意的 man 页面;UP ARROW 将向上翻滚文件。.要退出,则输入 q,!,或 CTRL-Z。
用户类别
记得那句名言“所有动物一例平等但有些动物比其他动物更加平等”吗?在 Linux 世界中,根用户掌管一切。
根用户可以以另一个用户名 su (源自 "superuser")登录。要执行诸如添加一个新用户、打印机或文件系统之类的任务,必须作为根用户登录或者用 su 命令和根用户密码切换到超级用户。系统文件(包括控制初始化过程的系统文件)归根用户所有。虽然可能允许普通用户对它们进行读操作,但出于系统安全性的原因,编辑的权利将留给根用户。
BASH shell
虽然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默认 shell。它结合了与它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。
BASH 内置的命令 history 默认记录最后输入的 500 条命令。可以通过在命令提示符下输入 history 来查看它们。要检索某个特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN ARROW,或在历史列表中输入它的编号,并在编号前面加上 "!",例如:
$ !49
您还可以通过一条命令在历史列表中离位置最靠前的项目的距离来执行该命令:如果在历史列表中有 53 个事件,$ !-3 将执行事件号 51。
像 UNIX/Linux 世界的其它 shell 一样,BASH 使用了特殊的环境变量来方便系统管理。例如:
HOME,用户主目录
PATH,Linux 用来搜索您输入的命令的可执行镜像的搜索路径
HISTSIZE,系统保存的历史事件的数量
除了这些保留的关键字之外,您还可以定义您自己的环境变量。例如,Oracle 使用 ORACLE_HOME (还有其它一些变量),要使 Oracle 安装成功完成,必须在您的环境中设置这些变量。
可以在提示符下临时设置变量:
$HISTSIZE=100
或者,在 /etc/profile (需要根用户权限)中进行系统范围的永久设置,或在 .profile 中进行局部永久设置。
可以通过 echo 命令,并用一个 $ 符号来访问一个环境变量的值,进而查看该值。
$ echo $HOME
/home/bluher
可以用 env 命令来查看当前所有的环境变量。
正则表达式和通配符
许多 Linux 命令使用通配符 * 和 ? 来匹配任意数量的字符或分别匹配任意的单个字符;正则模式匹配表达式利用一个句点 (.) 来匹配除“换行符”之外的任意单个字符。这两种情况下都使用方括号 ([ ]) 来