Linux入门教程——第三章 Linux 系统管理

  第一部分 账号管理

   一、系统管理员账号与一般用户账号的差别

  Linux中的账号主要分成两类:系统管理员账号与一般用户账号。系统管理员账号名称为root,具有对系统完全的控制权,可以对系统做任何设置及修改,当然也可以决定哪些用户可以进入系统,并设置所有账号的权限。这两类账号的主要差别如下表:

Linux入门教程——第三章 Linux 系统管理_第1张图片



  二、创建用户账号

  创建用户账号有许多种方法,可以一次创建一个账号,也可以一次建多个账号。

  使用useradd命令创建账号

  在Red HatLinux中执行useradd命令,可创建新的用户帐号:

  [root@free root]# useradd benny ←创建benny账号

  [root@free root]# passwd benny ←设置口令

  Changing password for user benny

  New password: ←输入口令

  Retype new password ←再输入一次

  Passwd:all authentication ←设置成功 
 

  在一个系统中,用户的账号名称必须是唯一的,假若要创建的账号先被他人占用,这会出现用户已存在的信息:

  [root@free root]# useradd benny

  Useradd: user benny exists

  [root@free root]# useradd lambert

  Useradd: user lambert exists

  要解决用户账号的管理问题,需要依靠系统管理员本身。一般说来有3种方法:

  管理员自己根据用户的账号来创建一份数据库,以后在新增用户之前,都可以利用数据库先查询账号存在与否。

  检查/etc目录下的passwd文件,该文件内含本系统所有用户的账号,管理员可确认账号是否已经存在。

  执行finger“账号”命令,查看该账号是否存在。

  三、管理员账号

  安装完Linux之后,系统默认即创建了root账号。此账号为系统管理员,对系统拥有完全的控制权,可对系统做任何设置和修改,所以维护root账号的安全格外重要。

  1.设置root账号的口令

  在安装Linux过程中,即要求安装者为root账号设置口令。管理员可在日后更改甚至取消口令。不过,除非整个Linux系统只有自己使用,否则强烈建议替root账号设置一个不易被破译的口令。

  在x window下面单击主菜单,执行“系统设置/根命令”命令,在图形界面下比较直观与Windows大致雷同。

Linux入门教程——第三章 Linux 系统管理_第2张图片



  图为:在图形界面下设置一般用户账号

  拥有root账号的系统管理员除了设置口令之外,建议先替自己创建一个一般的用户的账号,供日常操作使用,如此可避免因操作失误而影响整个系统。最好等到系统需要维护时,再使用root账号登陆。

  四,只允许root登陆的维护模式

  如果希望这台计算机除了root账号之外,其他账号都不得登陆时,可在/ect目录中执行touch nologin命令,产生一个文件名为nologin的文件,当其他用户要登陆时,系统只要发现此文件存在,就会禁止他们登陆:

  Red HatLinuxrelease 9 (Shrike)

  Kernel 2.4.20-8 on an 686

  free login benny ← 用benny账号登陆

  Password: ← 输入正确的口令

  Login incorrect ← 即使输入正确也会登陆失败

  login ← 重新返回到登陆界面

  这种状态通常用于管理员要维护系统时。若要再度恢复用户登陆,则只要将nologin文件删除即可。

  五,停用与删除用户账号

  当用户毕业、离职、或逾期不缴费时,可以考虑停用或删除用户账号,以避免这些用户继续登陆系统。

  1,停用账号

  将账号停用的意思是暂时不允许用户登陆系统,但仍然保留其数据。可编辑/ect/passwd文件,要把停止使用的账号标注起来:

  cassia:x:502:502::/home/cassia:/bin/bash

  #silent:x:600:100::/home/silent/bin/bash ←在账号最前面加上“#”

  2,删除账号

  当确定用户已不再需要使用本系统,或列为拒绝来往用户时,可以考虑将该账号完全删除。

  1,使用userdel命令或编辑passwd与shadow文件

  使用userdel命令可以很方便地将用户删除,范例如下:

  [root@free root]# userdel –r silent

  加上参数“-r”表示删除账号时,一并将该账号的用户的用户目录及邮件文件都删除。若不加“-r”参数,则只会删除而保留该账号的相关目录。

  当然也可编辑passwd和shadow文件,直接将账号删除,随后删除账号该账号的主目录与邮件目录。

  删除后台执行程序

  为避免用户还有程序遗留在系统中,请执行下列命令检查后台执行的程序,并把在后台中执行的程序删除:

  [root@free root]# ps aux   grep “silent”

  删除计时器

  此外还有一点相当重要,就是要将用户所设置的计时器去掉。在Linux系统中,用户可以自行设置计时器,时间一到就自动执行某些命令。这些计时器所执行的命令,有的可能会影响系统的安全与保密,因此必须特别注意用户所留下来的计时器。执行下列命令检查计时器:

  [root@free root]# crontab –u silent -1

  当发现用户自行设置的计时器还在系统中时,直接执行crontab –u silent –r 命令,便能删除该用户的计时器文件。

  六,创建组

  创建组的方法和创建账号几乎相同,且过程更简单。可执行groupadd命令来创建组。例如要创建GID编号700、名称为staff的组:

  [root@free root]# groupadd –g 700 staff ← 执行命令

  [root@free root]# more/etc/group ← 查看结果

  …

  Lambert:x:501

  Cassia:x:502

  Staff:x:700 ← 加进来了

  参数-g用来指定组标识符,0~499则留给系统使用。若省略此参数,系统会自动指定GID,使用从编号500开始尚未用掉的号码。

  七,删除组

  当不在需要某一个组时,可执行groupdel命令删除组(再删除某个组前,要执行find/-group组名称命令,检查系统中隶属于该组的目录及文件,并利用chown命令改变其所属组):

  [root@free root]#groupdel staff 

  第二部分 磁盘空间管理

  由于Linux是多用户的操作环境,如果任由每个用户存放文件而不加限制,磁盘空间将迅速消耗,很快便无法使用。Quota的功能就是去限制用户运用的磁盘空间。在系统尚未设置磁盘空间时,可用执行quota命令检查自己的磁盘使用空间,若出现下列信息,则表示没有限制:

  [lambert@free lambert]$ quota

  Disk quotas for user lambert (501):none ← 无限制

  这表示用户lambert可以任意堆放文件,直到塞满整个磁盘为之,这样将造成其他用户都无法储存数据。为了避免这种毫无节制、滥用空间的灾难发生,本节将讨论如何为用户设置磁盘空间的限制。

  一,编辑fstab文件

  用文本编辑程序打开/etc/fstab 文件,其内容如下:

  编辑ext3文件系统原生分区的设置表示要创建用户与组的磁盘空间限制:

  LABEL=//ext3 defaults,usrquota,grpquota 1 1 ← ext3文件系统分区

  倘若只要限制用户或组的磁盘空间,则只需要加上usrquota或grpquota其中一项即可,保存文件后退出,请重新启动。

  对fstab文件中各字段的代表意义有兴趣者,可执行man fstab和man mount命令来查看相关信息。

  二,生产配置文件

  修改fstab文件后,请先在系统根目录下执行touch aquota.user与touch aquota.group命令,自行创建aquota.user及aquota.group两个文件,接着执行quotacheck命令设置:

  [root@free root]# quotacheck –ugavmc

  Quotacheck: Scanning / dec/ hda1[/]done

  Quotacheck: Checked 10064 directories and 202332 files

  以下是用于quotacheck命令的参数说明:

  -a参数:扫描fstab文件加入quota设置的分区。

  -d参数:详细显示命令执行过程,便于调试或了解程序执行的情形。

  -g参数:扫描磁盘空间时,计算每个组标识符(GID)所占用的目录和文件数目。

  -v参数:标识命令执行过程。

  -m参数:强制执行命令。

  -c参数:不读取已经存在的aquota数据库,重新扫描硬盘并保存。

  进行如上操作后然后重新启动,并设置用户的磁盘空间。

  三,执行quotaon

  要取消磁盘空间的限制,执行quotaoff -avug命令即可。范例如下:

  [root@free root]# quotaoff –avug

  /dec/hda1[/]:group quotas turned off

  /dec/hda1[/]:user quotas turned of

  四,检查是否超过磁盘限制

  一般的用户执行 quota –v命令,可知自己是否超过限制:

  [lambert@free lambert]# quota –v

  Disk quotas for user lambert(501):

  ……

  第三部分 文件系统与权限设置

  当所有人都把目光投注在操作系统身上时,却常常忘记了一个极为重要的配角――文件系统。文件系统的优劣与否和操作系统的执行效率、稳定性以及可靠度息息相关。

  一,认识系统的目录

  在安装Linux的磁盘中会有很多系统默认的目录,这些目录依照不同的用途而放置特定的文件。在前面已经简单介绍过一些常用的目录,以下将详细说明每一个默认目录的功能:

  /: 根目录,包含整个Linux系统的所有目录和文件。

  /bin:此目录放置操作系统时所需要使用的各种命令程序。例如cp、rpm、kill、tar、mv、rm与ping等常用命令,还有各种不同的Shell,如bash、bash2、tcsh等。

  /dev:存放界面设备代号的文件。例如硬盘的/dev/had、终端机等。这些文件比较特殊,他们实际上都指向所代表的界面设备。

  /etc:存放与系统设置、管理相关的文件。例如记录账号名称的passwd文件、投影口令文件shadow都放在这里。

  /etc/X11:X Window 配置文件的目录。

  /etc/rc.d:这个目录包含了启动或关机时所运行的script文件。

  /home:此目录默认用来设置用户账号的主目录。

  /lib:放置一些共享的函数库。

  /lib/modules:存放系统内核的模块。某些可被模块化的部分,并不需要在编译系统内核本体,避免内核过大导致效率较低。

  /lost+found:文件系统发生问题时,Linux会自动扫描磁盘试图修正错误,倘若找到遗失或错误的区域,就会将这些区域转成文件存放于目录中,等候管理员来进一步处理。

  /misc:默认空无一物,供管理员堆放公共杂物。默认权限时全部用户都可以读取和执行文件,但是只有管理员能够写入文件。

  /mnt:此目录下默认有/mnt/cdrom和/mnt/floppy两个目录,用来作为光盘与软件的加载点.

  /proc:系统内核和执行程序之间的信息,如执行ps、free等命令时所看到的信息,就是从这里读取。这目录内的文件并非真的存在,用户看到的虚拟文件。

  /root:系统管理员专用的目录,即root账号的主目录。

  /sbin:此目录存放启动系统需运行,例如 fsck、init、grub、lilo与swapon等

  /tmp:供全部用户暂时放置文件的目录。系统默认可让所有用户读取、写入和执行文件,因此对于一般用户来说,若觉得自己的磁盘空间不够使用,便可暂时利用此目录存放文件。这里也是临时文件的目录,某些程序在执行中说产生的临时文件会存放在这个目录内。

  /usr:此目录包括许多子目录,用来存放系统命令。程序等信息。

  /usr/bin:放置用户可以执行的命令程序,如find、free、gcc等。

  /usr/share/doc:存放各种文件的目录。

  /usr/share/man:放置多种帮助文件。

  /usr/src:存放源代码的地方,Linux系统内核的源代码就放在此目录下。

  /var:系统执行时,需要暂时记录存放的数据或临时文件,都会放置在这个目录里。

  /var/tmp:前面介绍的/tmp目录除了放置所有用户暂时存放的文件之外,还提供给程序产生的临时文件使用,因此经常会因对方许多文件,而显得非常杂乱。管理员通常会定时清理/tmp目录,维护磁盘空间的整洁。加入不想将某些文件混入/tmp目录中,可以选择存放在这里。

  二,文件属性

  d:表示这是一个目录。在ext3中,目录被视为一种特殊的文件。

  -:表示这是一个普通的文件

  l:表示这是一个符号链接的文件,实际上它指向另一个文件。

  b、c:分别代表区块设备和其他的界面设备,是特殊类型的文件。

  s、p:这些文件关系到系统的数据结构和通道,通常很少见到。

  1,一般权限

  r (read,读取):对文件而言,用户具有读取文件内容的权限。对目录而言,用户拥有浏览目录内容的权限。

  w (write,写入):对文件而言,用户具有修改文件内容的权限。对目录而言,用户具有删除或移动目录内文件的权限。

  x(execute,执行):对文件而言,用户具有执行文件的权限。对目录而言,用户具有进入目录的权限。

  2,特殊权限

  其实文件与目录的权限设置不只如此,还有所谓的特殊权限存在。属于特殊权限会拥有一些“特权”,因而用户若无特殊需求,不应该去打开这些权限,避免安全方面出现严重漏洞,让黑客入侵。

  设置UID,S(SUID, Set UID):可执行的文件若搭配这个权限,该文件便能得到权限,可以任意存取文件所有者能使用的全部系统资源。

  设置GID,S(SGID,Set GID):应用在文件上面,其效果和SUID相同,只不过将范围由文件所有者扩大成组。也就是说,拥有此权限的文件,可以任意存取整个组所能使用的系统资源。

  三,用户与组的权限关系

  假如用户lambert属于cassia组,其用户主目录的权限设为rwxr-x—x,表示统属cassia组的用户,可以读取和记入这个目录,其他用户则只能进入该目录,但完全看不到任何内容。

  因而属于其他组的用户saber,就无法读取lambert目录中的文件。但若将/etc目录下的group文件内容作些修改,情况就不同了:

  …

  postfic:x:89:

  pvm:x:24:

  cassia:x:501:lambert,saber ← 将saber账号加入cassia组

  saber:x:502:

  四,检查inode编号

  链接的文件实际上都是指向磁盘中相同的数据,因为每个文件仅占用一个inode,所以他们的inode编号应该一样。执行ls –i命令来查看文件的inode编号:

  [lambert@free lambert]$ ls –i LambertLink

  10423 LambertLink

  [lambert@free lambert]$ ls –i /tmp/var/ForEveryOne

  10423 /var/tmp/ForEveryOne

  从上面的结果可看出这两个文件的inode编号一样的,倘若是用复制而非连接的方法,便会是两个不相干的文件,各自拥有inode编号。

  [lamnert@free lambert]$ ls –I LambertFile

  366955 LambertFile ←这个文件的inode是366955,而ForEveryOne的是10423

你可能感兴趣的:(Linux)