任务五 管理Linux系统的用户和用户组
【任务说明】
建立用户以及群组。
【任务实施】
第一步:查看LINUX系统中的用户
系统中所有的用户存放文件/etc/passwd 可通过【vim /etc/passwd】命令打开查看。
passwd文件由许多条记录组成,每条记录占一行,记录了一个用户帐号的所有信息。每条记录由7个字段组成,字段间用冒号:隔开,其格式如图所示
(1)用户名:它唯一地标识了一个用户帐号,用户在登录时使用的就是它。
(2)加密的口令:passwd文件中存放的密码是经过加密处理的。Linux的加密算法很严密,其中的口令几乎是不可能被破解的。盗用帐号的人一般都借助专门的黑客程序,构造出无数个密码,然后使用同样的加密算法将其加密,再和本字段进行比较,如果相同的话,就代表构造出的口令是正确的。因此,建议不要使用生日、常用单词等作为口令,它们在黑客程序面前几乎是不堪一击的。特别是对那些直接连入较大网络的系统来说,系统安全性显得尤为重要。
(3)用户ID:用户识别码,简称UID。Linux系统内部使用UID来标识用户,而不是用户名。UID是一个整数,用户的UID互不相同。普通用户的UID默认是从500开始的。
(4)组ID:用户组识别码,简称GID。不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID唯一地标识了一个用户组。普通用户的GID默认是从500开始的。UID与GID默认情况下是一致的。
(5)用户描述:这是给用户帐号做的注解。它一般是用户真实姓名、电话号码、住址等,当然也可以是空的。
(6)主目录:这个目录属于该帐号,当用户登录后,它就会被置于此目录中,就像回到家一样。一般来说,root帐号的主目录是/root,其他帐号的家目录都在/home目录下,并且和用户名同名。
(7)登录shell:用户登录后执行的命令。一般来说,这个命令将启动一个shell程序。例如,用bbs帐号登录后,会直接进入bbs系统,这是因为bbs帐号的login command指向的是bbs程序,等系统登录到bbs时就自动运行这些命令。
第2步:查看用户密码以及有效期的文件。
用户密码以及有效期的存放文件/etc/shadow 可通过如下命令【vim /etc/shadow】打开查看。
shadow文件由许多条记录组成,每条记录占一行,记录了一个用户帐号的所有用户密码以及有效期等信息。每条记录由8个字段组成,字段间用冒号:隔开,其格式如图所示。
(1)“用户名”是与/etc/passwd文件中的登录名相一致的用户账号
(2)“加密口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,能够登录但是不需要口令;如果是两个感叹号,则表示该用户没有设置密码,不能登录进系统,如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
(3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一
(2)“加密口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,能够登录但是不需要口令;如果是两个感叹号,则表示该用户没有设置密码,不能登录进系统,如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
(3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
(4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
(5)“最大时间间隔”指的是口令保持有效的最大天数。
(6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
(7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
(8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
系统帐号,系统中还有一些默认的帐号,如daemon、bin等。这些帐号有着特殊的用途,一般用于进行系统管理。这些帐号的口令大部分用(*)号表示,代表它们不能在登录时使用。
【vim /etc/shadow 】编辑用户密码的存放文件,把第一个冒号与第二个冒号之间的字符删除掉,设置 user2 的密码为空。
第3步:查看账号所属组文件。
/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的。
Linux中每当建立一个用户时,同时也建立一个同名的组,此用户默认是加入到此组中。组用户文件存放在/etc/group里面,可以通过【vim /etc/group】命令查看,如图所示。
在图所示的文件中,有四列,每一列对应的释义如下:
第一列:用户组名称;
第二列:用户组密码;
第三列:GID,即组ID;
第四列:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名。
第4步:查看用户组密码文件。
/etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码;
通过命令【vim /etc/gshadow】 查看用户组密码存放文件,每个用户组独占一行,如图所示。
在图所示的文件中,有四列,每一列对应的释义如下:
第一列:用户组名称;
第二列:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
第三列:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用“,”号分割;
第四列:组成员,如果有多个成员,用,号分割。
第5步:建立与删除用户
CentOS中,建立与删除用户的主要命令以及释义如下:
【useradd yhy】新建yhy用户。
【passwd yhy】为yhy用户设置密码,密码输入时无任何显示。
【useradd ybs –d /home/y】新建ybs用户,并指定家目录为/home/y。
【useradd user1 –d / home/user1】此处可以不加【-d】参数,因为用户的默认家目录就在/home下的与用户名相同的目录下。
【useradd user2】增加新用户user2,用户默认家目录为:/ home/user2。
【userdel yhy】表示删除用户,但不删除家目录。
【userdel -r ybs】删除ybs用户,并删除用户家目录。
【usermod –l user2 user1】修改用户user1名称为user2。
【usermod –L user2】锁定用户名user2 ,锁定后user2不能登录。
【usermod –U user2】解锁用户名user2。
【su - user1】root用户切换到普通用户不需要密码。
【su - root】普通用户切换到root用户需要root密码。
备注:【su】命令后加“-”横杆,切换用户时切换到用户的家目录,否则,不改变当前路径。
第6步:建立与管理用户组
CentOS中,建立与管理用户组的主要命令以及释义如下:
【groupadd grp1】新建用户组grp1。
【groupdel grp1】删除用户组 grp1。
【groupmod grp2 grp1】修改用户组名称grp1为grp2。
【gpasswd –a user2 grp2】把用户user2加入到用户组grp2中。
【gpasswd –d user2 grp2】把用户user2加入从用户组grp2中删除。
第7步:几个重要的命令补充
有关用户的操作还有以下命令,详细释义如下:
【who am i 】显示当前以哪个用户登录。
【w】显示目前登入系统的用户详细信息,包括登录IP地址等。
【who】显示目前登入系统的用户简要信息。
【last】记录每个用户的登录次数和持续时间等信息【finger】查找并显示用户信 如finger zhangs表示查看zhangs用户信息。
【su user】 切换用户但不切换当前目录。
【su – user1】切换用户并切换到user的家目录。
【ntsysv】 启动/关闭系统中的服务。
【setup】设置系统运行参数。
【任务说明】
由于不可能为每个用户都单独提供完全独立、相互隔离的文件系统,多用户操作系统必须提供一种安全的访问控制机制,使得用户既能和其他用户共享某些文件,又能保证各个用户的文件不会被非法存取或破坏。因而Linux对文件所有者、用户和其他用户,分别设置了存取控制权限,也即读、写和执行权限。
文件的权限有两种表示方法,一种是符号化表示法,另一种是十进制数字表示法。 符号化表示法使用英文字母r(Read)、w(Write)和x(execute)来分别表示读、写 和执行权限。用符号化表示法表示的文件权限共九位,每三位为一组,每一组都是rwx的三个符号与“-”符号的组合,其中“-”符号表示没有该权限。每组分别代表文件所属用户、同组用户和其他非本组用户对该文件的读(r)、写(w)、执行权限(x)。
本任务的主要目的是要自由灵活的管理Linux系统中的文件权限。
【任务实施】
第1步:认识文件权限说明:
当执行【ls -l 】或【 ls –al】 或【ll】命令后显示的结果如图所示。
最前面的第2~10个字符是用来表示一般权限。第一个字符一般用来区分文件和目录:d表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件。-:表示这是一个普通的文件。l: 表示这是一个符号链接文件,实际上它指向另一个文件。b.c:分别表示区块设备和其他的外围设备,是特殊类型的文件。s.p:这些文件关系到系统的数据结构和管道,通常很少见到。
第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如表所示:
权限 | 对文件而言 | 对目录来说 |
r(Read读取) | 读取文件内容的权限 | 具有浏览目录的权 |
w(Write写入) | 新增.修改文件内容的权限 | 删除、移动目录内文件的权限 |
x(execute执行) | 执行文件的权限 | 进入目录的权限 |
-(短横杠) | 不具有该项权限 | 不具有该项权限 |
下面以表举例说明:
所有者 | 所属组 | 其他人 | |
-rwx------: | 有读、写和执行 | 无权限 | 无权限 |
-rwxr--r-- | 有读、写与执行 | 读取 | 读取 |
-rw-rw-r-x: | 读取、写入 | 读取、写入 | 读取、执行 |
drwx--x--x | 读、写、进入目录 | 进入该目录,却无法读取任何数据 | 进入该目录,却无法读取任何数据 |
每个用户都拥有自己的专属目录,通常集中放置在/home目录下,这些专属目录的默认权限为rwx------:表示目录所有者本身具有所有权限,其他用户无法进入该目录。执行mkdir命令所创建的目录,其默认权限为rwxr-xr-x,用户可以根据需要修改目录的权限。
文件和目录的权限表示,是用rwx这三个字符来代表所有者,用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。我们把r、w、x分别用数字4、2、1来表示,权限数字之和即可代表对应的权限:
r: 对应数值4;
w: 对应数值2;
x:对应数值1;
-:对应数值0;
rwx合起来就是4+2+1=7,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。下面以表2-3为例说明字母所对应的数字权限关系。
-rwx------ | 4+2+1,0+0+0,0+0+0 | 700 |
-rwxr--r-- | 4+2+1,4+0+0,4+0+0 | 744 |
-rw-rw-r-x | 4+2+1,4+2+0,4+0+1 | 665 |
drwx―x―x | 4+2+1,0+0+1,0+0+1 | 711 |
drwx------ | 4+2+1,0+0+0,0+0+0 | 700 |
第2步:使用chmod改变文件或目录的访问权限
在文本模式下,可执行chmod命令去改变文件和目录的权限。
【chmod 777 123.txt】把123.txt 文件的权限设置为777。
【chmod 777 /home/user】仅把/home/user目录的权限设置为rwxrwxrw。
【chmod -R 777 /home/user】表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx。
【chmod u=rwx,g=rx,o=rx 123.txt】把123.txt文件设置为755的权限。
这里的u=rwx代表user(文件的拥有者)的权限等于rwx,g=rx代表group(所属组)的权限等于rx,o=rx代表other(其他人)的权限等于rx。
第3步:更改文件的所有者以及所属组
文件与目录不仅可以改变权限,使用chown命令还可以改变其所有者及所属用户组。
先使用【touch 123.txt】命令创建一个文件后再执行【ls –l】或【ll】命令看看文件的情况,如图所示。
从上图所示可以看到123.txt文件的所有者为root,所属用户组为root。
执行下面命令,把123.txt文件的所有权转移到用户yhy,如图所示。
【chown yhy 123.txt】把123.txt文件的拥有者改为yhy用户。
【 ls –l】查看文件详细系统。
要改变所属组,可使用【chown :yhy 123.txt】命令把123.txt文件的所属组改为yhy ,然后使用【ls –l】命令查看文件详细系统,如图所示。
要修改目录的权限,使用-R参数就可以了,方法和前面一样。
除了可以通过【chown】命令改变文件的拥有者以及所属组外,还可以通过【chgrp】改变文件的所属组。
【chgrp yangs /etc/123.txt】修改/etc/a.txt属组为yangs。
【chmod yhy.zck a.txt】或【chmod yhy:zck a.txt】把a.txt文件的拥有者改为yhy,所属组改为zck。
当然,前提条件是yhy用户以及zck用户组需要存在在系统中。然后可以【ls -l】看一下执行后的结果。
第4步:认识umask
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般可在/etc/profile./etc/bashrc.$ [HOME]/.bash_profile.$[HOME]/.profile或$[HOME]/.bashrc中设置umask值。具体取决于Linux发行版,
默认的权限可用【umask】命令修改,用法非常简单,只需执行【umask 777】 命令,便代表屏蔽所有的权限,因而之后建立的文件或目录,其权限都变成000,依次类推,如图所示。
如上图所示,当我们执行【umask 777】 后,再建立的文件夹的权限默认为000。
通常root帐号搭配【umask】命令的数值为022.027和 077,普通用户则是采用002,这样所产生的权限依次为755、750、700和775。用户登录系统时,用户环境就会自动执行【umask】命令来决定文件、目录的默认权限。
第5步:识别特殊权限
Linux引入suid、sgid、sticky这三种特殊权限,能够更加方便、有效和安全地控制文件。
当在一个目录或文件上加入suid特殊权限时,如过原来目录或文件的属主具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替x。
同样,sgid、sticky和suid相同,如过原来目录或文件的属组具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替X。
如果在一个文件或目录上加入sticky权限时,若原文件或目录的其他用户有x(可执行)权限时,就用小写t代替x;如果原文件或目录没有x权限时,就用大写T替代x权限。
可以chmod的字符或数字的方式修改特殊权限,下例以数字方式实现,如图所示。
从上图的操作结果来看,对于test1这个文件,属主、属组、其他人都没执行权限,其权限用数字表示为644,通过【chmod 7644 test1】命令都加上特殊权限,然后再通过【ll】命令查看,发现属主、属组、其他用户的执行权限变为S、S、T。
对于test2这个文件,属主、属组、其他人都执行权限,其权限用数字表示为755,通过【chmod 7755 test1】命令都加上特殊权限,然后再通过【ll】命令查看,发现属主、属组、其他用户的执行权限变为s、s、t。
备注:特殊权限对可执行文件的作用:
在一个目录上设置了sticky特殊权限,只有文件的所有者和用户才能删除该目录的文件,而不理会属组和其他用户的写权限。
在一个目录上设置sgid特殊权限,则只要是同组成员,都可以在此目录查看、创建、删除文件。
经常会对目录设置sticky和suid权限以方便管理。即同组成员可以查看和写入本目录下的各个文件,却不能删除。
从安全方面来讲,对于特殊权限,最好不要设置,不然会带来很严重的安全问题。
第6步:识别文件颜色
从上图中,我们可以看出,在Linux中,文件的颜色都是有含义的。其中, Linux中文件名颜色不同,代表文件类型不一样。如下所示:
浅蓝色:表示链接文件;
灰色:表示其他文件;
绿色:表示可执行文件;
红色:表示压缩文件;
蓝色:表示目录;
红色闪烁:表示链接的文件有问题了;
黄色:表示设备文件,包括block,char,fifo。
用【dircolors -p】命令可以看到缺省的颜色设置,包括各种颜色和“粗体”,下划线,闪烁等的定义。
【touch a.txt】创见的一般文件,文件颜色为白色。
【chmod 775 a.txt】增加可执行权限后,文件颜色变为为绿色。
【ln /etc/abc.txt 345.txt 】执行该命令后,文件颜色变为为天蓝色(建立345.txt为/etc/abc.txt的快捷方式)。
第7步:总结常用的几个命令
CentOS中常用的有关权限的几个命令以及释义如下,熟悉他们会让你的运维会事半功倍。
【chmod u+x,g-x,o=x test】 所有者加上执行权限,组成员减少执行权限,其他成员设置为执行权限。
【chmod –R 766 ./】修改当前目录权限,要求里面的所有文件和文件夹的权限修改为766。
【chown user1:G3 zip.zip】修改zip.zip的所有者为user1,所有组为G3。
【umask】查看当前umask参数。
【touch /home/dir1】在/home目录下创建新目录 dir1。
【ll /home/dir1】显示目录dir1的详细信息,记录目录的权限信息。
【umask 066】改变umask参数为066。
【chmod g+w /home/dir1】为dir1的同组用户增加写权限。
【chmod 755 /home/dir1】改变file1的文件权限为755。
【任务实施】
为了简化此任务的实施,我们把此任务分解成下面的几个子任务来学习。
【子任务一】管理rpm软件包;
【子任务二】管理压缩软件包。
【子任务一】管理rpm软件包
rpm有五种操作模式,分别为:安装、卸载、升级、查询和验证。
第1步:查询RPM软件是否已经安装。
在安装一个软件之前,往往需要先确认该软件是否已经安装,通过【rpm –q 软件包名】查询命令或在-q参数后面直接加其他的参数来查询软件包的安装信息,具体用法以及释义如下:
【rpm -qa | grep tomcat4】查询已经安装的 tomcat4 的所有套件。
【rpm -qip example.rpm】查询 example.rpm 安装包的信息。
【rpm -qif /bin/df】查询/bin/df 文件所在安装包的信息。
【rpm -qlf /bin/df】查询/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下
备注:其中-q参数表示查询,参数a表示查询所有套件,参数i表示显示套件的相关信息,参数l 显示安装包中的所有文件被安装到哪些目录下;参数s 显示安装版中的所有文件状态及被安装到哪些目录下;参数p 查询指定的RPM套件档;参数f 查询拥有指定文件的套件;
rpm软件包的安装可以使用程序rpm来完成,安装rpm软件的时候,当前工作目录下必须有该软件包存在,否则必须跟软件包的绝对路径。通过【rpm –i 软件包名】命令或在-i参数后面直接加其他的参数来安装软件包,具体用法以及释义如下:
【rpm -i example.rpm】安装 example.rpm 包。
【rpm -iv example.rpm】安装 example.rpm 包并在安装过程中显示正在安装的文件信息。
【rpm -ivh example.rpm】安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度。
备注:-i 表示安装指定的软件包 -v 显示安装时详细信息 -h 显示安装进程。
第3步:升级RPM软件包
当一个软件包已经安装,需要对其升级操作,采用【rpm -U 软件包名】命令,对其进行升级操作,命令格式以及释义如下:
【rpm -U example.rpm】升级 example.rpm 软件包。
【rpm -Uvh example.rpm】加v参数显示升级时详细信息,加h参数显示安装进程。
第4步:卸载RPM软件包
使用【rpm -e软件包名】命令卸载已经安装好的软件包,
【rpm -e tomcat4】卸载 tomcat4 软件包。
备注:包名可以包含版本号等信息,但是不可以有后缀.rpm,比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:
【rpm -e proftpd-1.2.8-1】
【rpm -e proftpd-1.2.8】
【rpm -e proftpd-】
【rpm -e proftpd】
有时会出现一些错误或者警告: ... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载,可以用【rpm -e --nodeps】强制卸载。
第5步:熟悉RPM 的其他附加命令
在实际软件安装、卸载、升级等的操作中,可能还存在软件的依赖等等一系列问题,在加上面步骤中的参数的同时,还可以加如下参数:
--force 强制操作,如强制安装删除等;
--requires 显示该包的依赖关系;
--nodeps 忽略依赖关系并继续操作;
【rpm –e --nodeps vsftpd】忽略依赖关系并继续删除vdftpd软件包。
【rpm –i --nodeps vsftpd】忽略依赖关系并继续安装vdftpd软件包。
【rpm –i --requires vsftpd】显示该包的依赖关系并安装vdftpd软件包。
【rpm –i -- force vsftpd】强制安装vdftpd软件包。
第6步:总结rpm的命名规则
假设一个软件包的名称为:abc-1.3.20-16.i386.rpm
abc代表软件包的名称;1.3.20表示版本号;16表示发行次数;i386表示适用平台为intel x86,除了i386选项外常见的还有:sparc(指sparc 平台)、alpha (指Alpha平台)、src (指软件源代码)。
【子任务二】管理压缩软件包
在Linux系统世界中,除了rpm软件包,还有很多压缩软件包,所以在此子任务中,需要熟悉压缩软件包的管理等操作。
第1步:管理tar软件包
使用tar命令加各种参数来管理tar软件包,具体的命令使用以及释义如下:
【tar cvf aa.tar aa.txt】建立一个tar包(把aa.txt压缩到文件aa.tar中)。
【tar xvf aa.tar】解压一个tar包
备注:在上面的命令中,加的cvf、xvf、cvfz等参数,他们的具体释义如下:
c表示创建一个新tar包;
v参数显示运行过程信息;
f参数指定文件名;
x参数解开一个tar包;
z参数调用zip;
t参数查看压缩包内容;
r参数添加文件。
第2步:管理zip包
zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。使用zip命令加各种参数来管理zip软件包,具体的命令使用以及释义如下:
【zip yhy.zip yhy.txt】通过zip命令压缩yhy.txt文件为yhy.zip。
【zip -r test.zip ./*】将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件。
【zip test2.zip test2/*】 打包目录。
【zip -d yhy.zip yhy.txt】删除压缩文件yhy.zip中yhy.txt文件。
【 zip –d yhy.zip yhy/ln.log】删除打包文件目录下的文件。
【zip -m yhy1.zip yhy1.txt】向压缩文件yhy1.zip中添加yhy1.txt文件。
【zip yhy3.zip yhy3s/* -x yhy3s/ln.log】压缩文件时排除某个文件。
第3步:解压zip包
unzip为.zip压缩文件的解压缩程序。zip包的的解压一般采用unzip命令,具体的命令使用以及释义如下:
【unzip yhy.zip】将压缩文件yhy.zip在当前目录下解压缩。
【unzip -n yhy.zip -d /tmp】将压缩文件yhy1.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
【unzip -o test.zip -d tmp/】将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
【unzip -v yhy.zip】查看压缩文件目录,但不解压。
【unzip a.zip】解压一个zip包。
第4步:gzip和gunzip等其他的压缩软件以及常用命令
Linux系统中还有其他的一些压缩工具以及命令,比如gz、tat.gz、bz2、tgz等等,熟悉他们会让你们的运维管理事半功倍。
1、【gzip –d a.gz 3.tar.gz】解压一个gz包。
2、【tar xvzf abc.tar.gz】解压一个tar.gz包。
3、【gunzip abc.tgz】解压一个.tgz包。
4、【tar xvzf a.tar.z】解压一个tar.z包。
5、【bunzip2 b.txt.bz2】解压一个bz2包。
6、【find / -name "*.zip"】将系统中所有的.zip文件名显示出来。
8、在你的家目录中创建如下内容,以便进行后面的命令操作。
【mkdir /home/dir1 dir2 dir3】在家目录中建立三个目录。
【touch /home/dir1/file1 /home/dir1/file2 /home/dir1/file3】在新建的目录中建立文件。
9、【zip -q -r /root/ys1.zip /root/*】将家目录下的所有文件(不包括目录)压缩成文件ys1.zip。
10、【zip -m ys1.zip install.log】将/root/install.log添加到ys1.zip中。
11、【unzip -v ys1.zip】显示一下ys1.zip中包含的文件信息。
12、【mkdir /tmp/unzip-ys1】 建立unzip-ys1 目录(此目录需要先建立)。
【unzip ys1.zip -d /tmp/unzip-ys1/】将ys1.zip解压至/tmp/unzip-ys1下。
13、【zip -r /root/ys2.zip /root/*】将家目录下的所有文件(包括目录)压缩成文件ys2.zip。
14、【mkdir /tmp/unzip-ys2】建立unzip-ys2 目录(此目录需要先建立)。
【unzip ys2.zip -d /tmp/unzip-ys2】将ys2.zip解压至/tmp/unzip-ys2 目录下。
15、将第8中的文件file1. file2. file3分别压缩成.gz的形式。
【tar -czvf file1.tar.gz dir1/file1】将dir1/file1文件压缩成file1.tar.gz。
【tar -czvf file2.tar.gz dir1/file2】将dir1/file2文件压缩成file2.tar.gz。
【tar -czvf file3.tar.gz dir1/file3】将dir1/file3文件压缩成file3.tar.gz。
16. 将第15中形成的.gz压缩文件拷贝到/tmp/gunzip目录并解压。
【mkdir /tmp/gunzip】建立gunzip目录。
【cp dir1/file1.gz dir1/file2.gz dir1/file3.gz /tmp/gunzip】复制压缩文件到新建的目录中。
【gzip -dv /tmp/gunzip/*】压缩gunzip目录下的所有文件。
【任务实施】
为了简化此任务的学习,我们通过下面的几个子任务的学习来达到我们的目的。
【子任务一】配置本地yum源;
【子任务二】配置国内网络yum源。
【子任务一】配置本地 YUM 源
在CentOS系统的安装光盘中,存放了许多我们常用的软件包,使用起来非常方便,在没有外网的环境中,我们只需搭建好本地的yum源,即可进行大部分的软件安装。
第1步:查看系统默认安装的yum
安装CentOS操作系统是基本都会默认安装yum,不需要另外安装,输入命令查询即可:
【rpm –qa yum】查看安装的yum主程序。
【rpm -qa |grep yum】查看安装的yum相关程序。
一般情况下yum软件本身是在安装操作系统的时候就安装上去了的。
第2步:挂载系统安装光盘
把光盘放入光驱,然后使用如下命令把光盘挂在/mnt这个常用的挂载点下。
【mount /dev/cdrom /mnt/】挂载光盘挂载成功后会在/mnt目录下看到光盘中的文件。
第3步:备份默认yum配置文件
在修改配置文件之前,先备份要修改的文件,养成好的工程习惯。
【cd /etc/yum.repos.d/】进入yum配置的目录下
【ls】会看到CentOS系统的默认四个以repo为后缀的配置文件
【mkdir /etc/yum.repos.d/bak】建立备份文件夹
【mv /etc/yum.repos.d/Cent* /etc/yum.repos.d//bak/】备份原来的配置文件
移动原有的配置文件到备份文件夹中。(注:CentOS-Base.repo 是yum 网络源的配置文件,CentOS-Media.repo 是yum 本地源的配置文件),如图所示。
第4步:编辑自己的repo文件
使用下面的命令新建一个自己的yum源。
【vim /etc/yum.repos.d/local.repo】新建local.repo文件。
备注:新建的文件必须以.repo为后缀,local可以自己取名)
备注:baseurl=file:///mnt/ yum源地址,光盘的挂载点,需要注意的是file后有有3个斜杠,前两个表示地址格式,后面一个斜杠表示根目录。
第5步:总结repo 文件的格式
所有repository服务器设置都应该遵循如下格式:
[serverid]
name=Some name for this server
baseurl=url://path/to/repository/
serverid 是用于区别各个不同的repository,必须有一个独一无二的名称;
name 是对repository 的描述,支持像$releasever $basearch这样的变量;
baseurl 是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
baseurl=url://server1/path/repository/
url://server2/path/repository/
url://server3/path/repository/
其中url 支持的协议有 http:// ftp:// file:// 三种。baseurl 后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl 只能有一个,也就是说不能像如下格式:
baseurl=url://server1/path/repository/
baseurl=url://server2/path/repository/
baseurl=url://server3/path /repository/
其中url 指向的目录必须是这个repository header 目录的上一级,它也支持$releasever $basearch 这样的变量。
url 之后可以加上多个选项,如gpgcheck.exclude.failovermethod 等
第6步:使用yum源安装软件。
yum命令搭配install参数表示安装指定的软件,详细使用方法以及释义如下:
【yum install –y dialog】通过yum源安装dialog软件。
【yum install yum-fastestmirror】自动搜索最快镜像插件。
【yum install yumex】安装yum图形窗口插件。
【yum localinstall –y dialog】安装本地的rpm软件包。
备注:在上面的命令中,-y选项表示对所有的提问都回答“yes”;如果不加-y选项,安装过程会要求用户手动确认安装过程中的问题。除了-y选项,还有其他的选项可以使用,他们的具体释义如下:
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。
第7步:使用yum更新软件。
yum命令搭配update参数表示更新指定的软件,详细使用方法以及释义如下:
【yum update –y dialog】更新dialog软件包。
【yum check-update –y dialog】检查是否有可用的更新dialog软件包。
【yum localupdate –y dialog】如果有dialog的新版本,而且你也下载到来本地,就可以这样本地更新dialog了。
【yum update】全部更新yum源。
第8步:使用yum卸载软件。
yum命令搭配remove参数表示卸载、或删除指定的软件,详细使用方法以及释义如下:
【yum remove –y dialog】卸载dialog软件包。
【yum remove | erase package1】 删除程序包package1。
第9步:yum命令的其他选项。
yum命令搭配其他参数详细使用方法以及释义如下:
【yum list dialog】:显示dialog软件包的信息。
【yum search dialog】:检查dialog软件包的信息。
【yum info dialog】:显示指定的dialog软件包的描述信息和概要信息。
【yum clean】:清理yum过期的缓存。
【yum shell】:进入yum的shell提示符;
【yum resolvedep dialog】显示dialog软件包的依赖关系。
【yum deplist dialog】:显示dialog软件包的所有依赖关系。
【yum clean packages】 清除缓存目录下的软件包。
【yum clean headers】 清除缓存目录下的headers。
【yum clean oldheaders】清除缓存目录下旧的 headers。
第10步:查询已安装的dialog软件。
通过yum安装的软件,依然使用rpm命令来查询软件的安装情况:
【rpm –qa dialog】查询dialog软件安装信息。
【子任务二】配置国内网络yum源
本地yum源地址指向光盘。但光盘中的软件毕竟有限,系统默认的yum 源(红帽官方的yum源)速度往往不尽人意,为了达到快速安装的目的,有时还需要把yum源指向国内的地址。
第1步:配置上海交通大学yum源
第2步:企业yum源列表:
搜狐开源镜像站:http://mirrors.sohu.com/。
网易开源镜像站:http://mirrors.163.com/。
第3步:大学教学yum源列表:
北京理工大学:
http://mirror.bit.edu.cn (IPv4 only)。
http://mirror.bit6.edu.cn (IPv6 only)。
北京交通大学:
http://mirror.bjtu.edu.cn (IPv4 only)。
http://mirror6.bjtu.edu.cn (IPv6 only)。
http://debian.bjtu.edu.cn (IPv4+IPv6)。
兰州大学:http://mirror.lzu.edu.cn/。
厦门大学:http://mirrors.xmu.edu.cn/。
清华大学:
http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)。
http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)。
http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)。
天津大学:http://mirror.tju.edu.cn/。
中国科学技术大学:
http://mirrors.ustc.edu.cn/ (IPv4+IPv6)。
东北大学:
http://mirror.neu.edu.cn/ (IPv4 only)。
http://mirror.neu6.edu.cn/ (IPv6 only)。
电子科技大学:http://ubuntu.uestc.edu.cn/。
拓展训练
1、 使用vim编辑只读文件时,强制存盘并退出的目录是(C)
A、【:w!】 B、【:q!】
C、【:wq!】 D、【:e!】
2、使用(A)命令可以把两个文件合并为一个文件
A、【cat】 B、【grep】
C、【awk】 D、【cut】
3、使用【ls -al】命令列出下面文件列表,(B)文件是符号连接文件
A、【-rw-rw-rw- 2 hel-s users 56 sep 09 11:05 hello】
B、【-rwxrwxrwx 2 hel-s users 56 sep 09 11:05 goodbey】
C、【Drwxr—r—2 hel users 1024 sep 10 08:10 zhang】
D、【Lrwxr—r—1 hel users 1024 sep 12 08:12 cheng】
4、对下面的命令:【$ cat nametest1 test2>name】,说法正确的是(B)
A、将test1、test2合并到name
B、命令错误,不能将输出重定向到输入文件中
C、当name文件为空时命令正确
D、命令错误,应该为【$ cat name test1 test2>>name】
5、假设当前处于vi的命令模式,现在要进入插入模式,以下快捷键中无法实现的是(D)
A、I B、A C、O D、1
6、目前处于vi的插入模式,若要切换到末行模式,以下操作方法中正确的是(B)
A、按Esc键 B、按Esc键,然后按:键
C、直接按:键 D、直接按shift+:组合键
7、以下命令中,不能用来查看文本文件内容的是(A)
A、【less】 B、【cat】
C、【tail】 D、【ls】
8、在Linux中,系统管理员(root)状态下的提示符为(B)
A、$ B、#
C、% D、>
9、删除文件的命令是(D)
A、【mkdir】 B、【rmdir】
C、【mv】 D、【rm】
10、建立一个新文件可以使用的命令是(D)
A、【chmod】 B、【more】
C、【cp】 D、【touch】
11、以下(B)是显示文件保存用户账号的信息
A、/etc/user B、/etc/gshadow
C、/etc/shadw D、/etc/fatab
12、以下对Linux用户账户的描述中,正确的是(B)
A、Linux的用户账户和对应的口令均存放在passwd文件中
B、passwd文件只有系统管理员才有权存取
C、Linux的用户账户必须设置了口令才能登录
D、Linux的用户口令存放在passwd文件中,每个用户对它有读的权限
13、新建用户使用useadd命令,如果要指定用户的主目录,需要使用(B)选项
A、-g B、-d
C、-u D、-s
14、为了保证系统的安全,现在的Linux系统一般将/etc/passwd密码文件加密后,保存为(D)文件
A、/etc /group B、/etc/netgroup
C、/etc/libsafe.notify D、/etc/shadow
15、当用root登录时,(D)命令可以改变用户Larry的密码
A、【su larry】 B、【changepassword larry】
C、【password Larry】 D、【passwdLarry】
16、如果刚刚为系统添加了一个名为Kara的用户,则在默认的情况下,Kara所属的用户组是(C)
A、user B、group
C、Kara D、root
17、执行【chmodo+rwfile】命令后,file文件的权限变为(C)
A、同组用户可读写file文件 B、所有用户可读写file文件
C、其他用户可读写file文件 D、文件所有者可读写file文件
18、若要改变一个文件的拥有者,可通过(A)命令来实现
A、【chmod】 B、【chown】
C、【usermod】 D、【file】
19、一个文件属性为drwxrwxrwt,则这个文件的权限是(A)
A、任何用户皆可读取,可写入 B、root可以删除该目录的文件
C、给普通用户以文件所有者特征 D、文件拥有者有权删除该目录文件
20、某文件的组外成员的权限为只读,所有者有全部权限,组内的权限为读与写,则该文件的权限值为(D)
A、467 B、674
C、476 D、764
21、光盘所使用的文件系统类型为(D)
A、ext2 B、ext3
C、swap D、ISO 9600
22、在以下设备文件中,代表第二个IDE硬盘的第一个逻辑分区设备文化节为(D)
A、/etc/hdb1 B、etc/hda1
C、/etc/hdb5 D、/dev/hdb1
23、将光盘CD-ROM(cdrom)安装到文件系统的/mnt/cdrom目录的命令是(D)
A、【mount/,mnt/cdrom】 B、【mount/mnt/cdrom/dev/cdrom】
C、【mount/dev/cdrom/mnt/crdom】 D、【mount/devt/cdrom】
24、【tar】命令可以进行文件的(A)
A、压缩、归档和解压缩 B、压缩和解压缩
C、压缩和归档 D、归档和解压缩
25、若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令为(C)
A、【tar-cvf myfile.txtmyfile.txt.tar.gz】 B、【tar-zcvfmyfile.txt myfile.txt.tar.gz】
C、【tar-zcvf myfile.txt.tar .gz myfile.txt】 D、【Tar-cvfmyfile.txt .tar .gz myfile.txt】
26、在Linux系统中,主机名保存在(A)配置文件中
A、/etc/hosts B、/etc/modules
C、/etc/sysconfig/network D、/etc/network
27、Linux系统的第二块以太网卡的配置文件全路径名是(D)
A、/etc/sysconfig/network/ifcfg-eth0 B、/etc/sysconfig/network/ifcfg-eth1
C、/etc/sysconfig/network-scripts/ifcfg-eth0 D、/etc/sysconfig/network-scripts/ifcfg-eth1
28、在Linux系统中,用于设置DNS客户的配置文件是(B)
A、/etc/hosts B、/etc/resolv.conf
C、/etc/dns.conf D、/etc.nis.conf
29、若要暂时禁用eth0网卡,下列命令中可以实现的是(D)
A、【ifconfig eth0】 B、【ifup eth0】
C、【ifconfig eth0 up】 D、【ifconfig eth0 down】
30、以下命令中可以重新启动计算机的是(A)
A、【reboot】 B、【halt】
C、【shutdown -h】 D、【init 0】
二、简答题
1、在Linux中有一个为列表内容,格式如下:
1rwxrwxrwx 1 hawkeye users 6 Ju1 18 09:41nurse2 – >nuse1
(1) 要完整显示如上文件列表信息,应该使用什么命令?写出完整的命令行。
答: ls-l nurse2
(2) 上述文件列表内容的第一列内容“1rwxrwxrwx”中“1”是什么含义?对于其他类型的文件或目录等还可能会出现什么字符?它们分别表示什么含义?
答: 1表示文件类型,这是一个符号链接文件。
其他文件类型有:-普通文件、d目录、b特殊块文件、c特殊字符文件。
(3) 上述文件列表内容的第一列内容“1rwxrwxrwx”中的第一、二、三个rwx分别代表什么含义?其中的“r”“w”“x”分别表示什么含义?
答:分别表示对文件nurse2的所有者、同组成员、其他人员都具有读/写/执行权限。
r、w、x分别表示读/写/执行权限。
r:对应数值4;w:对应数值2;x:对应数值1.
(4) 上述文件列表内容的第二列内容“1”是什么含义?
答:表示文件nurse2的链接数
(5) 上述文件列表内容的第三列内容“hawkeye”是什么含义?
答:表示文件nurse2的所有者
(6) 上述文件列表内容的第四列内容“users”是什么含义?
答:表示文件nurse2的属组
(7) 上述文件列表内容的第五列内容“6”是什么含义?
答:表示文件nurse2的字节数
(8) 上述文件列表内容中的“Jul 18 09;41”是什么含义?
答:表示文件nurse2被创建的日期和时间
(9) 上述文件列表内容的最后一列内容“nurse2->nursel”是什么含义?
答:表示文件nurse2被符号链接到nursse1
2、Linux支持哪些常用的文件系统?
答:在Linux中常用的文件系统主要有ext3、ext2及reiserfs。Linux目前几乎支持所有的Unix类的文件系统,除了我们在安装Linux操作系统时所要选择的ext3、reiserfs和ext2外,还支持苹果MACOS的HFS,也支持其它Unix操作系统的文件系统,比如XFS、JFS、Minixfs 及UFS等,您可以在kernel的源码中查看;如果您想要让系统支持哪些的文件系统得需要把该文件系统编译成模块或置入内核;当然Linux也支持Windows文件系统NTFST和fat,但不支持NTFS文件系统的写入;支持fat文件系统的读写。现在还有新的ext4文件系统。
3、 简述标准的Linux目录结构及其功能?
- root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。
- home --- 存储普通用户的个人文件
- ftp --- 用户所有服务
- httpd
- samba
- user1
- user2
- bin --- 系统启动时需要的执行文件(二进制)
- sbin --- 可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行
- proc --- 虚拟,存在linux内核镜像;保存所有内核参数以及系统配置信息
- 1 --- 进程编号
- usr --- 用户目录,存放用户级的文件
- bin --- 几乎所有用户所用命令,另外存在与/bin,/usr/local/bin
- sbin --- 系统管理员命令,与用户相关,例如,大部分服务器程序
- include --- 存放C/C++头文件的目录
- lib --- 固定的程序数据
- local --- 本地安装软件保存位置
- man --- 手工生成的目录
- info --- 信息文档
- doc --- 不同包文档信息
- tmp
- X11R6 --- 该目录用于保存运行X-Window所需的所有文件。该目录中还包含用于运行GUI要的配置文件和二进制文件。
- X386 --- 功能同X11R6,X11 发行版5 的系统文件
- boot --- 引导加载器所需文件,系统所需图片保存于此
- lib --- 根文件系统目录下程序和核心模块的公共库
- modules --- 可加载模块,系统崩溃后重启所需模块
- dev --- 设备文件目录
- etc --- 配置文件
- skel --- home目录建立,该目录初始化
- sysconfig --- 网络,时间,键盘等配置目录
- var
- file
- lib --- 该目录下的文件在系统运行时,会改变
- local --- 安装在/usr/local的程序数据,变化的
- lock --- 文件使用特定外设或文件,为其上锁,其他文件暂时不能访问
- log --- 记录日志
- run --- 系统运行合法信息
- spool --- 打印机、邮件、代理服务器等假脱机目录
- tmp
- catman --- 缓存目录
- mnt --- 临时用于挂载文件系统的地方。一般情况下这个目录是空的,而在我们将要挂载分区时在这个目录下建立目录,再将我们将要访问的设备挂载在这个目录上,这样我们就可访问文件了。
- tmp --- 临时文件目录,系统启动后的临时文件存放在/var/tmp
- lost+found --- 在文件系统修复时恢复的文件
4、在命令行下手工建立一个新账号,要编辑哪些文件?
答: useradd 这个命令建立用户
passwd 这个命令设置密码
5、Linux用哪些属性信息来说明一个用户账号?
答:登录名、口令、用户标识号、组标识号、用户名、用户主目录、命令解释程序。
6、如何锁定和解锁一个用户账号?
passwd -l test
这就话的意思是锁定test用户,这样该用户就不能登录了。
passwd -u test
对锁定的用户进行解锁,用户可登录了。
7、Vim编辑器有哪3大类工作模式?其相互之间如何切换?
vim编辑器有三大类工作模式,分别是命令行模式、文本输入模式、行末模式指令模式。
按i/a/o任意一个键,进入编辑模式;修改完信息后按esc键退出编辑;输入:wq保存并退出。
8、Linux与网络配置相关的配置文件主要有哪些?
主要文件:
(1)/etc/sysconfig/network-scripts/ifcfg-eth0
(2)/etc/sysconfig/network
(3)/etc/resolv.conf
(4)/etc/hosts
其他文件:
/etc/service
这个文件是记录构建在TCP/IP上面的各种协议,包括HTTP、FTP、SSH、Telnet等服务所定义的端口号,如果你需要自定义一个新的协议与port相对应,就需要改这个文件。
/etc/protocols
这个文件是在定义IP数据包协议的相关数据,包括ICMP/TCP/UDP的数据包协议的定义等
9、 如何利用ifconfig工具禁用和重启网络接口?
将网卡禁用:ifconfig eth0 down
(1)单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器。
(2)如有必要,向管理单元添加适用的服务器,然后连接该服务器。在控制台树中,单击适用的 DNS 服务器。
(3)在“操作”菜单上,单击“配置 DNS 服务器”。打开DNS服务配置向导
(4)然后根据公司规模大小来选择查找区域类型,点击“下一步”主服务器配置界面
(5)如果本机做为DNS服务器,则选择第一项,如果是配置网络上的一台DNS服务器则选择ISP维护区域,选择后点击“下一步”进入区域名称选择窗口。
(6)输入区域名称后点击“下一步”进入区域文件命名窗口
(7)这里可以创建一个新区域文件和使用从另一个DNS服务器复制文件来创建DNS区域文件。 这里一般默认即可,点击“下一步”进入动态更新设置界面
(8)动态更新能使DNS客户端计算机在每次发生更入时,用DNS服务器注册并动态更新资源记录。点击“下一步”进入DNS转发器设置窗口
(9)转发器是DNS服务器,此服务器把无法答复的查询转发经服务器,一般默认为本机,也可以不选择转发查询。 设置完毕后点击下一步进入完成配置向导界面
(10)完成配置向导里列出DNS服务器名及查找区域名称,确认后点击完成,完成DNS服务器配置。