Linux系统安全命令

来源:互联网 发布:php 二维数组 push 编辑:程序博客网 时间:2024/06/03 12:40

虽然 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 命令需要输入旧的密码,然后再输入两次新密码。

这里写图片描述

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 文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。
它与chmod的效果刚好相反,umask设置的是权限“补码”

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.应用实例

这里写图片描述
上述 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

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.实例

如果一个系统管理员创建了一个文件夹10.04,那么我们最好所有人授权对这个文件有读写权限,可以使用命令:

井号chmod 777 10.04

上面代码中,这个 666 数字是如何计算出来的呢?0001为所有者的执行权限,0002 为所有者的写权限,0004 为所有者的读权限,0010为组的可执行权限,0020 为组的写权限,0040 为组的读权限,0100为其他的人的执行权限,0200 为其他人的写权限,0400 为其他人的读权限,这 6 个数字相加就是 666(注以上数字都是八进制数),结果见图 所示。
这里写图片描述

从图 可以看出,10.04文件的权限是wxr-xr-x,即用户对这个文件有读写权限。如果用字符权限设定使用下面命令:

井号chmod a=wxr  10.04

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. 9 以上内核才能支持。另外,通过 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] [1-] [-u<用户>] [指令]

3.主要参数

-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

4.说明

sudo 命令的配置在/etc/sudoers 文件中。当用户使用 sudo 时,需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。sudo 是系统管理员用来允许某些用户以 root 身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日常工作,经常执行一些固定的几个只有超级用户身份才能执行的命令,那么用 sudo 是非常适合的。

ps

1.作用

ps 显示瞬间进程 (process) 的动态,使用权限是所有使用者。

2.格式

ps [options] [--help]

3.主要参数

ps 的参数非常多, 此出仅列出几个常用的参数。
这里写图片描述

4.说明

要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps 命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图 2 给出了ps-aux 命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是 u、a、x。下面就结合这三个参数详细说明 ps 命令的作用:ps aux

这里写图片描述

图中 第 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.主要参数

这里写图片描述

4.说明

该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信,比如使用 talk 命令,那么首先要确定的就是该用户确实在线上,不然 talk 进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用 who 命令。who 命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。

原创粉丝点击