LINUX命令大全文档格式.docx
《LINUX命令大全文档格式.docx》由会员分享,可在线阅读,更多相关《LINUX命令大全文档格式.docx(56页珍藏版)》请在冰点文库上搜索。
这显然是一种非常安全的设置。
Linux的系统安全命令
虽然Linux和Windows
NT/2000系统一样是一个多用户的系统,但是它们之间有不少重要的差别。
对于很多习惯了Windows系统的管理员来讲,如何保证Linux操作系统安全、可靠将会面临许多新的挑战。
本文将重点介绍Linux系统安全的命令。
passwd
passwd命令原来修改账户的登陆密码,使用权限是所有用户。
[选项]
账户名称
3.主要参数
-l:
锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。
-u:
解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
-x,
--maximum=DAYS:
最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-n,
--minimum=DAYS:
最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-d:
删除使用者的密码,
只有具备超级用户权限的使用者方可使用。
-S:
检查指定使用者的密码认证种类,
4.应用实例
$
passwd
Changing
password
for
user
cao.
cao
(current)
UNIX
password:
New
Retype
new
passwd:
all
authentication
tokens
updated
successfully.
从上面可以看到,使用passwd命令需要输入旧的密码,然后再输入两次新密码。
su
su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
[选项]...
[-]
[USER
[ARG]...]
3.主要参数
-f
,
--fast:
不必读启动文件(如
csh.cshrc
等),仅用于csh或tcsh两种Shell。
-l
--login:
加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。
如果没有指定USER,缺省情况是root。
-m,
,--preserve-environment:
执行su时不改变环境变数。
-c
command:
变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
USER:
欲变更的使用者账号,ARG传入新的Shell参数。
4.应用实例
变更账号为超级用户,并在执行df命令后还原使用者。
df
root
chgrp
chgrp表示修改一个或多个文件或目录所属的组。
使用权限是超级用户。
组
文件...
或
--reference=参考文件
文件...
将每个<
文件>
的所属组设定为<
组>
。
-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,命令如下:
-
R
book
/opt/local
/book
chmod
Chmod使用格式:
Chmod[参数][模式]<
文件或目录>
参数:
-R:
改变目录及其所有子目录的文件权限。
举例:
#chmodu+xinittab
#chmodug+wx,o-xinittab
#chmod0644inittab
#chmod0755inittab
#chmod–R700~
目录权限的补充说明:
1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
对特殊位的举例说明:
操作这些特殊位与操作文件权限的命令是一样的,都是chmod.有两种方法来操作,1)chmodu+stemp:
为temp文件加上setuid标志.(setuid只对文件有效)chmodg+stempdir:
为tempdir目录加上setgid标志(setgid只对目录有效)chmodo+ttempdir:
为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)
chmod命令是非常重要的,用于改变文件或目录的访问权限,用户可以用它控制文件或目录的访问权限,使用权限是超级用户。
chmod命令有两种用法。
一种是包含字母和操作符表达式的字符设定法(相对权限设定);
另一种是包含数字的数字设定法(绝对权限设定)。
(1)字符设定法
[who]
[+
|
=]
文件名
◆操作对象who可以是下述字母中的任一个或它们的组合
u:
表示用户,即文件或目录的所有者。
g:
表示同组用户,即与文件属主有相同组ID的所有用户。
o:
表示其它用户。
a:
表示所有用户,它是系统默认值。
◆操作符号
+:
添加某个权限。
-:
取消某个权限。
=:
赋予给定权限,并取消其它所有权限(如果有的话)。
◆设置mode的权限可用下述字母的任意组合
r:
可读。
w:
可写。
x:
可执行。
X:
只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
s:
文件执行时把进程的属主或组ID置为该文件的文件属主。
方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t:
保存程序的文本到交换设备上。
与文件属主拥有一样的权限。
与和文件属主同组的用户拥有一样的权限。
与其它用户拥有一样的权限。
文件名:
以空格分开的要改变权限的文件列表,支持通配符。
一个命令行中可以给出多个权限方式,其间用逗号隔开。
(2)
数字设定法
数字设定法的一般形式为:
数字属性的格式应为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-,即用户对这个文件有读写权限。
如果用字符权限设定使用下面命令:
a
=wx
chown
更改一个或多个文件或目录的属主和属组。
用户或组
文件
受影响的是符号链接所指示的对象,而非符号链接本身。
--from=目前所有者:
目前组只当每个文件的所有者和组符合选项所指定的,才会更改所有者和组。
其中一个可以省略,这已省略的属性就不需要符合原有的属性。
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或用户ID;
组可以是组名或组ID;
文件是以空格分开的要改变权限的文件列表,支持通配符。
系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限。
1.把文件shiyan.c的所有者改为wan
wan
shiyan.c
2.把目录/hi及其下的所有文件和子目录的属主改成wan,属组改成users。
wan.users
/hi
chattr
修改ext2和ext3文件系统属性(attribute),使用权限超级用户。
[-RV]
[-+=AacDdijsSu]
[-v
version]
文件或目录
-R:
-V:
详细显示修改内容,并打印输出。
-:
失效属性。
+:
激活属性。
=
指定属性。
A:
Atime,告诉系统不要修改对这个文件的最后访问时间。
S:
Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
Append
Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。
如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i:
Immutable,系统不允许对这个文件进行任何的修改。
如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D:
检查压缩文件中的错误。
d:
No
dump,在进行文件系统备份时,dump程序将忽略这个文件。
C:
Compress,系统以透明的方式压缩这个文件。
从这个文件读取时,返回的是解压之后的数据;
而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
Secure
Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。
同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。
另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。
chattr命令不能保护/、/dev、/tmp、/var目录。
1.恢复/root目录,即子目录的所有文件
#
-R
+u/root
2.用chattr命令防止系统中某个关键文件被修改
在Linux下,有些配置文件(passwd
fatab)是不允许任何人修改的,为了防止被误删除或修改,可以设定该文件的“不可修改位(immutable)”,命令如下:
+i
/etc/fstab
sudo
sudo是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令,权限是所有用户。
2.格式
[-bhHpV]
[-s
<
shell>
]
[-u
用户>
[指令]
[-klv]
-b:
在后台执行命令。
-h:
显示帮助。
-H:
将HOME环境变量设为新身份的HOME环境变量。
-k:
结束密码的有效期,即下次将需要输入密码。
列出当前用户可以使用的命令。
-p:
改变询问密码的提示符号。
-s
执行指定的Shell。
-u
以指定的用户为新身份,不使用时默认为root。
-v:
延长密码有效期5分钟。
sudo命令的配置在/etc/sudoers文件中。
当用户使用sudo时,需要输入口令以验证使用者身份。
随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。
sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。
一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日常工作,经常执行一些固定的几个只有超级用户身份才能执行的命令,那么用sudo是非常适合的。
ps
ps显示瞬间进程
(process)
的动态,使用权限是所有使用者。
[options]
[--help]
ps的参数非常多,
此出仅列出几个常用的参数。
-A:
列出所有的进程。
显示长列表。
-m:
显示内存信息。
-w:
显示加宽可以显示较多的信息。
-e:
显示所有进程。
显示终端上的所有进程,包括其它用户的进程。
-au:
显示较详细的信息。
-aux:
显示所有包含其它使用者的进程。
要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。
ps命令就是最基本、也是非常强大的进程查看命令。
使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。
图2给出了ps-aux命令详解。
大部分信息都可以通过执行该命令得到。
最常用的三个参数是u、a、x。
下面就结合这三个参数详细说明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是所执行的指令。
在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量进程的情况。
除了可以使用top命令查看内存使用情况之外,还可以使用下面的命令:
aux
sort
+5n
who
who显示系统中有哪些用户登陆系统,显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用,以及做了些什么。
使用权限为所有用户。
[husfV]
[user]
不要显示标题列。
不要显示使用者的动作/工作。
-s:
使用简短的格式来显示。
-f:
不要显示使用者的上线位置。
-V:
显示程序版本。
该命令主要用于查看当前在线上的用户情况。
如果用户想和其它用户建立即时通信,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。
又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。
who命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。
动手练习
1.使用Lin