linux系统管理中标_第1页
linux系统管理中标_第2页
linux系统管理中标_第3页
linux系统管理中标_第4页
linux系统管理中标_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上海中标软件有限公司 linuxlinux系统管理本章学习目标系统管理本章学习目标软件包管理软件包管理进程管理进程管理系统性能优化系统性能优化用户和用户组管理用户和用户组管理 linux下的软件包管理linux的一大特色就是采用red hat package manager(rpm)技术来安装和删除程序。由此大部分软件的升级、安装都要涉及到rpm包的问题 安装安装 rpm 包的格式是这样的:foo-1.0-1.i386.rpm其中foo是包的名称,1.0是包的发行版本,1是发行的次数,而i386代表在哪个系统上使用(此处为x86系统)。安装rpm包的命令格式是: rpm -i 安装选项 比如我

2、们想安装foo-1.0-1.i386.rpm可以敲入以下命令:rpm -i foo-1.0-1.i386.rpm 升级升级其实就是先反安装文件再安装新的rpm包,具体格式如下:rpm -u 升级选项 其实在以上两个操作中我们可以添加一些选项来使安装/升级更直观一些:“h”可以用“#”来表示安装的进度;“v”可以显示较多的提示。因此我们更常用的方法是:rpm -ivh 安装软件rpm -uvh 升级软件 查询命令格式如下:rpm -q 查询选项:其中当查询选项为一个文件包的名字时,会把文件包的名称及版本的详细资料显示出来。-i 显示软件包的概要信息-l 显示软件包中的文件列表-c 显示配置文件列

3、表-d 显示文档文件列表-s 显示软件包中文件列表并显示每个文件的状态-scripts 显示安装、卸载、校验脚本-queryformat (or -qf) 以用户指定的方式显示查询信息-dump 显示每个文件的所有已校验信息-provides 显示软件包提供的功能-requires (or -r) 显示软件包所需的功能下面具体列几个常用的组合:rpm -qa 查询所有安装的包rpm -qf foo 将包含有foo文件的包的名字显示出来rpm -ql pcd.rpm把pcd.rpm包里所有详细情况列出rpm -qa |grep pcd 察看pcd文件是否安装 校验命令格式为rpm -v 校验选项

4、在校验正常时你不会看到任何结果,如果发现有任何异常的地方,将会以它特定的方法显示出来。参数pkg1 . pkgn 将要校验的软件包名软件包选项-f 校验所属的软件包-a verify 校验所有的软件包-g 校验所有属于组 的软件包详细选项-noscripts 不运行校验脚本-nodeps 不校验依赖性-nofiles 不校验文件属性 删除软件包命令格式:rpm -e 注意:这里不能输入全部的软件包名称,否则将无法卸载!其他补充命令-test -percent -excludedocs -includedocs -replacepkgs -replacefiles -force -noscrip

5、ts -prefix -ignorearch -ignoreos -nodeps 其他其他打包文件非rpm包的程序大多使用tar来打包,gzip来压缩。tar全名为tap archiver,作用是把一大堆文件打包成一个文件(即tar文件)。但tar文件是没有经过压缩的,要用gzip来压缩。所以我们现在通常看见的 tar打包程序大都是以.tar.gz或.tgz结尾的压缩文件。在linux的命令行上键入以下命令:tar xvfz filename.tar.gz(或filename.tgz)有时候我们从网上下载了.tar.gz或.tgz文件,往往需要先看看里面的内容再决定是否安装。在linux下,查

6、看.tar.gz和.tgz文件内容的命令是:tar tfz filename.tar.gz在win95/98的环境里,winzip 7.0也可以解压和查看.tar.gz文件的内容。 安装源代码包- 方法一1.执行rpm -i your-package.src.rpm2. cd /usr/src/redhat/specs3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件4. cd /usr/src/redhat/build/your-package/ 一个和你的软件包同名的目录5. ./configure 这一步和编译普通的源码软件一样,可

7、以加上参数6. make7. make install 安装源代码包- 方法二1.执行rpm -i you-package.src.rpm2. cd /usr/src/redhat/specs前两步和方法一相同3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件这时,在/usr/src/redhat/rpm/i386/ (根据具体包的不同,也可能是i686,noarch等等)在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。执行rpm -i new-package.rpm即可安装完成。 如何卸载rpm软件包-补充使用命令 rpm

8、-e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:rpm -e proftpd-1.2.8-1rpm -e proftpd-1.2.8rpm -e proftpd-rpm -e proftpd不可以是下列格式:rpm -e proftpd-1.2.8-1.i386.rpmrpm -e proftpd-1.2.8-1.i386rpm -e proftpd-1.2rpm -e proftpd-1有时会出现一些错误或者警告:. is needed by . 这说明这个软件被其他软件需要,不能随便卸载可以用rp-e -node

9、ps强制卸载 应用实例假如你不小心删除了一些文件而又不能肯定是哪些,你可以检查整个系统来找出它们:rpm -va如果你想知道某个文件是来自哪个rpm包的:rpm -qf 文件名如果你正在使用某个文件又想知道更多的关于它的资料,可以输入:rpm -qdf 文件名 来找出这个文件的路径。如果你有一个新的rpm包又想知道更多的关于这个包的资料:rpm -qip 文件包名称应用实例一个rpm包中包含那些文件一个没有安装过的软件包,使用rpm -qlp *.rpm一个已经安装过的软件包,还可以使用rpm -ql *.rpm 获取关于一个软件包的版本,用途等相关信息?一个没有安装过的软件包,使用rpm -

10、qip *.rpm一个已经安装过的软件包,还可以使用rpm -qi *.rpm 应用实例某个文件是哪个软件包安装的,或者哪个软件包包含这个文件注意首先获得这个程序的完整路径,可以用whereis或者which然后使用rpm -qf例如:# whereis ftptopftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz# rpm -qf /usr/bin/ftptopproftpd-1.2.8-1# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txtproftpd-1.2.8-1其他

11、知识软件包文件名中的i386,i686是什么意思rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构的信息。i386指这个软件包适用于intel 80386以上的x86架构的计算机(ai32)i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(ia32)noarch指这个软件包于硬件架构无关,可以通用。i686软件包的程序通常针对cpu进行了优化,所以,向后兼容比较用以,i386的包在x86机器上都可以用。向前一般不兼容。不过现在的计算机,奔腾pro以下的cpu已经很少用,通常配置的机器都可以使用i686软件包常见问题不同操作系统

12、发行的rpm包可否混用? 用rpm -e *.rpm无法删除rpm包 在ms的系统下有没有读rpm文件的工具 linux图形下有没有工具? 是否可以通过ftp安装安装升级rpm包rpm -ivh ftp:/xxxxxxxx/path2somerpm rpm安装时已有的包版本过高怎么办 linux的启动和运行级别重要文件及目录重要文件及目录/etc/inittab/etc/inittab/etc/rc.d/etc/rc.d/etc/grub.conf/etc/grub.conf启动的服务启动的服务ntsysvntsysv系统日志dmesgdmesg/var/log/(lastlog/wtmp/u

13、tmp)/var/log/(lastlog/wtmp/utmp)/var/log/secure/var/log/secureetc/syslog.confetc/syslog.confsystem-logviwersystem-logviwer3.3 进程管理进程管理3.3.1 进程的定义进程的定义linuxlinux是一个多用户多任务的操作系统。多用户是指多是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指个用户可以在同一时间使用计算机系统;多任务是指linuxlinux可以同时执行几个任务,它可以在还未执行完一个任务时可以同时执行几个任务,它可以在还未

14、执行完一个任务时又执行另一项任务。又执行另一项任务。 那到底什么叫进程?那到底什么叫进程?linuxlinux系统上所有运行的程序都可系统上所有运行的程序都可以称之为一个进程。以称之为一个进程。linuxlinux用分时管理方法使所有的任务共用分时管理方法使所有的任务共同分享系统资源。进程的一个比较正式的定义是同分享系统资源。进程的一个比较正式的定义是 在自身在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行

15、资源;而进程是一个个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。序。而且一个程序可以启动多个进程。 3.3.2 3.3.2 报告进程状态报告进程状态要对进程进行监测和控制,首先必须要了解当前进程的要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而情况,也就是需要查看当前进程,而ps命令就是最基本同时命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运

16、行、运行的状态、进程是否结束、哪些进程占用进程正在运行、运行的状态、进程是否结束、哪些进程占用了过多的资源等等。了过多的资源等等。psps命令最常用的还是用于监控后台进程的工作情况,因为后命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入台进程是不和屏幕键盘这些标准输入/ /输出设备进行通信输出设备进行通信的,所以如果需要检测其情况,便可以使用的,所以如果需要检测其情况,便可以使用psps命令。其命令命令。其命令语法格式如下:语法格式如下: ps ps 选项选项 命令中的选项说明如下:命令中的选项说明如下: -e:显示所有进程。-f:全格式。-h:不显示标题。-

17、l:给出长列表。-a:显示终端上的所有进程,包括其他用户的进程。-r:只显示正在运行的进程。-x显示没有控制终端的进程。-txx:只显示受tty.xx控制的进程。-u:打印用户格式,显示用户名和起始时间。-j:按作业格式输出。-v:按虚拟存储器格式显示输出。-m:显示存储器信息。-s:增加子cpu时间和页面出错。-w:用宽格式显示,不截取命令行,使它成为一行。-r:只显示正在运行的进程。表 ps命令输出字段的含义字段含义user进程所有者的用户名pid进程号%cpu进程自最近一次刷新以来所占用的cpu时间和总时间的百分比%mem进程使用内存的百分比vsz进程使用的虚拟内存大小,以k为单位rss

18、驻留空间的大小。显示当前常驻内存的程序的k字节数。tty进程相关的终端stat进程状态,用下面的代码中的一个给出:r:可执行的。s:睡眠状态。d:不间断睡眠。t:停止或跟踪。z:僵尸。w:进程没有驻留页。i:空闲。time进程使用的总cpu时间command 被执行的命令行ni进程的优先级值,较小的数字意味着占用较少的cpu时间pri进程优先级。ppid父进程idwchan进程等待的内核事件名top使用方式:top - d delay q c s s i n b top -n 1 -b | grep mem top1.outd : 改变显示的更新速度,或是在交谈式指令列( interactiv

19、e command)按 sc : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称s : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 cpu time 累积起来s : 安全模式,将交谈式指令取消, 避免潜在的危机i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程n : 更新的次数,完成后将会退出 topb : 批次档模式,搭配 n 参数一起使用,可以用来将 top 的结果输出到档案内 显示说明显示说明17:31:42 up 18 days, 23:38, 1 user, load average: 0

20、.00, 0.00, 0.0017:31:42 up 18 days, 23:38, 1 user, load average: 0.00, 0.00, 0.00当前时间当前时间 系统运行时间系统运行时间 当前用户数当前用户数 平均负责(平均负责(1 1、5 5、1010分钟)分钟)94 processes: 93 sleeping, 1 running, 0 zombie, 0 stopped94 processes: 93 sleeping, 1 running, 0 zombie, 0 stopped进程总数进程总数 休眠进程数休眠进程数 运行进程数运行进程数 僵死进程数僵死进程数 终止

21、进程数终止进程数cpu states: cpu user nice system irq softirq iowait idlecpu states: cpu user nice system irq softirq iowait idletotal 0.0% 0.0% 0.1% 0.0% 0.0% 0.0% 99.8%total 0.0% 0.0% 0.1% 0.0% 0.0% 0.0% 99.8%cpu00 0.0% 0.0% 0.3% 0.0% 0.0% 0.0% 99.6%cpu00 0.0% 0.0% 0.3% 0.0% 0.0% 0.0% 99.6%cpu01 0.0% 0.0%

22、0.0% 0.0% 0.0% 0.0% 100.0%cpu01 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 100.0%cpucpu状态状态 用户占用用户占用 优先优先. . 系统系统. . 中断中断 软中断软中断 ? 空闲空闲mem: 3094664k av, 2627700k used, 466964k free, 0k shrd, 120776k buffmem: 3094664k av, 2627700k used, 466964k free, 0k shrd, 120776k buff1434068k actv, 155972k in_d, 41624k in_c14

23、34068k actv, 155972k in_d, 41624k in_cswap: 2048248k av, 130068k used, 1918180k free 1319416k cachedswap: 2048248k av, 130068k used, 1918180k free 1319416k cached内存使用情况:可用内存,已使用内存,空闲内存内存使用情况:可用内存,已使用内存,空闲内存.swapswap情况:情况:= =pid user pri ni size rss share stat %cpu %mem time cpu commandpid user pri n

24、i size rss share stat %cpu %mem time cpu command9590 root 25 0 172m 172m 11740 s 4.3 5.7 0:17 0 java9590 root 25 0 172m 172m 11740 s 4.3 5.7 0:17 0 javapid 每个进程的iduser 进程所有者的用户名pri 每个进程的优先级别ni 每个优先级的值size 进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是kbrss 进程占用的物理内存的总数量,单位是kbshare 进程使用共享内存的数量stat 进程的状态。其中s代表休眠状态;d代表

25、不可中断的休眠状态;r代表运行状态;z代表僵死状态;t代表停止或跟踪状态%cpu 进程自最近一次刷新以来所占用的cpu时间和总时间的百分比%mem 进程占用的物理内存占总内存的百分比time 进程自启动以来所占用的总cpu时间cpu cpu标识command 进程的命令名称vmstatvmstat 1 1 是更新速度,1位1秒procs -memory-swap-io-system-cpu-r b swpd free buff cache si so bi bo in cs us sy id wa1 0 549368 13316 102388 91992 12 6 9 8 2 12 72 3

26、25 02 0 549368 13316 102388 91992 0 0 0 0 156 1516 98 2 0 02 0 549368 13312 102388 91992 0 0 0 0 125 534 99 1 0 0 procs:r: the number of processes waiting for run time.b: the number of processes in uninterruptible sleep.memory:swpd: the amount of virtual memory used.free: the amount of idle memory.b

27、uff: the amount of memory used as buffers.cache: the amount of memory used as cache.swap:si: amount of memory swapped in from disk (/s).so: amount of memory swapped to disk (/s).io:bi: blocks received from a block device (blocks/s).bo: blocks sent to a block device (blocks/s).system:in: the number o

28、f interrupts per second, including the clock.cs: the number of context switches per second.cpu:these are percentages of total cpu time.us: time spent running non-kernel code. (user time, including nice time)sy: time spent running kernel code. (system time)id: time spent idle. prior to linux 2.5.41,

29、this includes io-wait time.wa: time spent waiting for io. prior to linux 2.5.41, shown as zero.iostatrootlinux # iostat -c|-d -k -t 间隔秒數 探测次数参数:-c :仅显示 cpu 的状态;-d :仅显示存储设备的状态,不可与 -c 一起用;-k :预设显示的是 block ,这里可以改成 k bytes 的大小來显示;-t :显示日期出來;# iostat -xlinux 2.4.21-9.30ax (localhost) 2006年07月14日avg-cpu:

30、%user %nice %sys %idle3.85 0.00 0.95 95.20device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkb/s wkb/s avgrq-sz avgqu-sz await svctm %util/dev/hda 1.70 1.70 0.82 0.82 19.88 20.22 9.94 10.11 24.50 11.83 57.81 610.76 99.96/dev/hda1 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.00 12.92 0.00 10.77 10.77 0.00/dev/hda

31、5 0.02 0.00 0.00 0.00 0.03 0.00 0.02 0.00 6.60 0.00 6.44 6.04 0.00/dev/hda6 0.01 0.38 0.05 0.03 0.43 3.25 0.21 1.62 46.90 0.15 193.96 52.25 0.41/dev/hda7 1.66 1.33 0.76 0.79 19.41 16.97 9.70 8.49 23.44 0.79 51.13 19.79 3.07r/s: 每秒完成的读 i/o 设备次数。即 delta(rio)/sw/s: 每秒完成的写 i/o 设备次数。即 delta(wio)/srsec/s:

32、 每秒读扇区数。即 delta(rsect)/swsec/s: 每秒写扇区数。即 delta(wsect)/srkb/s: 每秒读k字节数。是 rsect/s 的一半,因为每扇区大小为512字节。wkb/s: 每秒写k字节数。是 wsect/s 的一半。avgrq-sz: 平均每次设备i/o操作的数据大小 (扇区)。即 delta(rsect+wsect)/delta(rio+wio)avgqu-sz: 平均i/o队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。await: 平均每次设备i/o操作的等待时间 (毫秒)。即 delta(ruse+wuse)/de

33、lta(rio+wio)svctm: 平均每次设备i/o操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)%util: 一秒中有百分之多少的时间用于 i/o 操作,或者说一秒中有多少时间 i/o 队列是非空的小经验如果 %util 接近 100%,说明产生的i/o请求太多,i/o系统已经满负荷,该磁盘可能存在瓶颈。svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,cpu/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及i

34、/o 队列的长度和 i/o 请求的发出模式。如果 svctm 比较接近 await,说明i/o 几乎没有等待时间;如果 await 远大于 svctm,说明 i/o 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核算法,优化应用,或者升级 cpu。队列长度(avgqu-sz)也可作为衡量系统 i/o 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 i/o 高锋系统性能优化经常出现经常出现cpucpu等待等待i/o?i/o?磁盘的工作集中在某个或某几个上?磁盘的工作集中在某个或某几个上?cpucpu一直

35、是满负载?一直是满负载?raid raid 技术提高技术提高i/oi/o性能性能更先进的接口技术更先进的接口技术 更高性能磁盘更高性能磁盘应用调整应用调整进程管理进程管理3.3.3 3.3.3 结束进程结束进程当需要中断一个前台进程的时候,通常是使用当需要中断一个前台进程的时候,通常是使用组合键;但是对于一个后台组合键;但是对于一个后台进程这个组合键是不能达到目的的。这时就必须使用进程这个组合键是不能达到目的的。这时就必须使用kill命令,该命令可以终止后台进命令,该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的程。至于终止后台进程的原因很多,或许是该进程占用的cpu时间

36、过多;或许是该进时间过多;或许是该进程已经挂死。程已经挂死。killkill命令的语法格式很简单,大致有以下两种方命令的语法格式很简单,大致有以下两种方式:式:kill -s kill -s 信号信号 | -p -a | -p -a 进程号进程号 kill -l kill -l 信号信号 命令中的参数说明如下:命令中的参数说明如下: -s-s:指定需要送出的信号。既可以是信号名也可以对应数字。:指定需要送出的信号。既可以是信号名也可以对应数字。 -p-p:指定:指定killkill命令只是显示进程的命令只是显示进程的pidpid,并不真正送出结束信号。,并不真正送出结束信号。-l-l:显示信号

37、名称列表,这也可以在:显示信号名称列表,这也可以在/usr/include/linux/signal.h/usr/include/linux/signal.h文件中找到。文件中找到。 特殊应用:特殊应用:kill -sigkill 0kill -sigkill 03.3.4 3.3.4 进程调度进程调度nice !nice !查看进程的查看进程的nicenice值值 重新调度重新调度nicenice值值 renice renice 只能提高,不能降低。只能提高,不能降低。 root root可以降低可以降低nicenice 只是短时间的权益之计只是短时间的权益之计sleepsleep进程进程l

38、s;sleep 1m;lsls;sleep 1m;ls进程调度 后台执行后台执行top &top &ctrl+z ctrl+z 可终止可终止jobsjobsfg %nfg %nbg %nbg %nnohup nohup 退出登陆后继续执行退出登陆后继续执行nohup make &nohup make &任务的定期调度etc/crontabshell=/bin/bashpath=/sbin:/bin:/usr/sbin:/usr/binmailto=roothome=/# run-parts01 * * * * root run-parts /etc/cron.h

39、ourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthlminute hour day month dayofweek commandcrontab的时间格式minute hour day month dayofweek command在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。整数间的短线(-)指定一个整数范围。譬如,1

40、-4 意味着整数 1、2、3、4。用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。正斜线(/)可以用来指定间隔频率。在范围后加上 / 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。 crontab -u 用户名 -e /在root用户中给普通用户加计划任务编辑操作55 23 * * 03 lp /usr/local/message|mail -s today message rootat 命令atat命令在一定时间

41、后或在一定时刻内执行命令在一定时间后或在一定时刻内执行设置好的命令设置好的命令标准输入读取标准输入读取 at 1:00am +2days at 1:00am +2days echo hello|mail root echo hello|mail root ctrl+d ctrl+datq at -l atq at -l 查询查询atrm atrm 删除删除3.2 用户和工作组管理用户和工作组管理1. 1. 用户账号文件用户账号文件passwdpasswdpasswd 是一个文本文件,用于定义系统的用户账号,该是一个文本文件,用于定义系统的用户账号,该文件位于文件位于“/etc”目录下。它包含了

42、一个系统账户列表,目录下。它包含了一个系统账户列表,给出每个账户一些有用的信息,例如,用户给出每个账户一些有用的信息,例如,用户 id、组、组 id、主目录、主目录、shell等等。由于所有用户都对等等。由于所有用户都对passwd有读权限,有读权限,所以该文件中只定义用户账号,而不保存口令。所以该文件中只定义用户账号,而不保存口令。passwdpasswd文件中每行定义一个用户账号,一行中又划分为多文件中每行定义一个用户账号,一行中又划分为多个字段定义用户的账号的不同属性,各字段用个字段定义用户的账号的不同属性,各字段用“:”隔隔开。图开。图3-13-1中显示了中显示了passwdpassw

43、d文件的前文件的前1010行内容。在图中显行内容。在图中显示出了文件显示各用户的每一个字段,各字段的说明如表示出了文件显示各用户的每一个字段,各字段的说明如表3-13-1所示。所示。 表3-1passwd文件各字段说明字段说明account使用者在系统中的名字,它不能包含大写字母。password用户口令,出于安全考虑,现在不使用该字段保存口令,而用字母“x”来填充该字段,真正的密码保存在shadow文件。uid用户id号,惟一表示某用户的数字。gid用户所属的私有组号,该数字对应group文件中的gid。gecos这字段是可选的,通常用于保存用户命名的信息。directory用户的主目录,用

44、户成功登录后的默认目录。shell用户所使用的shell,如该字段为空则使用“/bin/sh”。从图3-2中可以看出,“/etc/shadow”文件中的每个记录用“:”隔开为9个域,每个域的含义分别为:登录名加密口令口令上次更改时距1970年1月1日的天数口令更改后不可以更改的天数口令更改后必须再更改的天数(有效期)口令失效前警告用户的天数口令失效后距账号被查封的天数账号被封时距1970年1月1日的天数保留未用3. 用户组账号文件用户组账号文件group用户组是逻辑地组织用户账号集合的方便途径,它允许用户在组内共享文件。系统上的每一个文件都有一个用户和一个组的属主。使用“ls l”命令可以看到

45、每一个文件的属主和组。于系统上的每个组,在/etc/passwd文件中有一行记录,记录的格式为: groupname : passwd : gid : userlist表3-2group文件字段说明字段说明groupname是组的名字passwd是组的加密口令gid是系统区分不同组的id,在/etc/passwd域中的gid域是用这个数来指定用户的缺省组。userlist是用“,”分开的用户名,列出的是这个组的成员。4. 用户口令文件用户口令文件gshadowgshadow文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。gshadow文件中每行定义一个用户组信息,行中各

46、字段间用“:”分隔,每行记录的格式为:groupname : encrypted password: group administrators: group members各字段的的含义如表3-3所示。在图3-4中给出了该文件的属性及文件的部分内容。字段说明groupname 用户组名称,该字段与group文件中的组名称对应。encryptedpassword 用户组口令,该字段用于保存已加密的口令groupadministrators 组的管理员账号,管理员有权对该组添加删除账号。groupmembers属于该组的用户成员列表,列表中多个用户间用“,”分隔。3.2.2 3.2.2 用户和组账

47、户的维护命令用户和组账户的维护命令1. 1. 增加用户帐号增加用户帐号在命令行下使用在命令行下使用 useradd useradd 命令:命令: useradd useradd 用户名用户名 该命令做了下面几件事:该命令做了下面几件事:1 1)在)在 /etc/passwd /etc/passwd 文件中增添了一行记录;文件中增添了一行记录;2 2)在)在 /home /home 目录下创建新用户的主目录,并将目录下创建新用户的主目录,并将 /etc/skel /etc/skel 目录中目录中的文件拷贝到该目录中去;但是使用了该命令后,新建的用户暂时的文件拷贝到该目录中去;但是使用了该命令后,

48、新建的用户暂时还无法登录,因为还没有为该用户设置口令,需要再用还无法登录,因为还没有为该用户设置口令,需要再用 passwd passwd 命命令为其设置口令后,才能登录。用户的令为其设置口令后,才能登录。用户的 uid uid 和和 gid gid 是是 useradd useradd 自自动选取的,它是将动选取的,它是将 /etc/passwd /etc/passwd 文件中的文件中的 uid uid 加加 1 1,将,将 etc/group etc/group 文件中的文件中的 gid gid 加加 1 1。 增加新用户时,系统将为用户创建一个与用户名相同的组,称为私有组。这一方法是为了

49、能让新用户与其他用户隔离,确保安全性的措施 下面通过增加一个用户“liuyidan”,以及查看其相关信息,来帮助用户理解该命令所执行的操作。其在终端上的操作命令及响应如图35所示。#useradd liuyidan /建立用户账号#tail l /etc/passwd /查看password文件中添加的用户账号信息#tail l /etc/shadow # ls /home/查看所建立账号的主目录选项功能描述g用于添加用户账号时指定该用户的私有组。如不指定“g”参数,useradd命令将自动建立与用户账号同名的组作为该账号的私有组。d用于显示或设置useradd命令所使用的默认值在“-g”选项

50、时,其语法格式如下:useraddg组名用户名在“-d”选项中,如果是用来修改useradd命令所使用的默认值,那么该命令使用的语法格式如下:useraddd-ggroup-bbase-sshell-finactive-eexpire2. 2. 修改用户账号修改用户账号usermodusermodusermodusermod命令可用来修改用户帐号的各种属性,包括用户主目录、私有命令可用来修改用户帐号的各种属性,包括用户主目录、私有组、登录、组、登录、shellshell等内容。等内容。usermodusermod的命令格式如下:的命令格式如下:usermod -lu-c usermod -lu

51、-c -d -d -e -e -f -f -g -g -g -g -l -l -s -u -s -u 用户帐号用户帐号 该命令的各个参数说明如下:该命令的各个参数说明如下:-c-c :修改用户帐号的备注文字。修改用户帐号的备注文字。 -d-d : 修改用户登入时的目录。修改用户登入时的目录。 -e-e : : 修改帐号的有效期限。修改帐号的有效期限。 -f-f :修改在密码过期后多少天即关闭该帐号。:修改在密码过期后多少天即关闭该帐号。 -g-g : 修改用户所属的群组。修改用户所属的群组。 -l -l :修改用户帐号的名称:修改用户帐号的名称下面举例说明该命令的使用方法:( 1)修改用户名,

52、把用户名“liuyidan”改名为“lyd”,使用的命令是:# usermod l lyd liuyidan(2)锁定“lyd”用户,使其不能登录。命令如下:# usermod l lyd(3)解锁“lyd”用户账号,使其可以登录。命令如下:# usermod u lyd3. 3. 删除用户删除用户userdeluserdeluserdeluserdel命令用于删除指定的用户账号。其使用的语法格式为:命令用于删除指定的用户账号。其使用的语法格式为:userdel -ruserdel -r用户账号用户账号 需要补充说明的是需要补充说明的是userdeluserdel命令可删除用户账号与相关的文件

53、。若不加参数,则仅删除用户命令可删除用户账号与相关的文件。若不加参数,则仅删除用户账号,而不删除相关文件。账号,而不删除相关文件。其中参数其中参数“-f”“-f”是用来删除用户登入目录以及目录中所有文件。是用来删除用户登入目录以及目录中所有文件。下面举例说明该命令的使用方法:下面举例说明该命令的使用方法:#grep lyd /etc/passwd#grep lyd /etc/passwd/查询用户账号查询用户账号lydlyd是否存在是否存在#userdel lyd#userdel lyd/删除删除lydlyd账号账号#grep lyd /etc/passwd#grep lyd /etc/pas

54、swd/再次查询用户账再次查询用户账号号lydlyd是否存在是否存在#ll d /home#ll d /home/查询用户查询用户lydlyd的主的主目录是否还存在目录是否还存在#userdel r lyd#userdel r lyd/删除用户的同时删除用户的同时删除其工作主目录删除其工作主目录4. 4. 组增加命令组增加命令groupaddgroupaddgroupaddgroupadd命令可指定群组名称来建立新的群组账号。该组账号的命令可指定群组名称来建立新的群组账号。该组账号的idid值必须是惟一的,且数值不可为负。预设的最小值不得小于值必须是惟一的,且数值不可为负。预设的最小值不得小于

55、500500,且,且每增加一个组账号每增加一个组账号idid值逐次增加。值逐次增加。idid值值04990499是保留给系统账号使是保留给系统账号使用。该指令使用的语法格式为:用。该指令使用的语法格式为:groupadd -r groupgroupadd -r group其中其中“-r”“-r”参数是用来建立系统账号。系统账号的参数是用来建立系统账号。系统账号的idid值不能大于值不能大于500500。下面举例说明该命令的使用方法:。下面举例说明该命令的使用方法:# groupadd lbgroup# groupadd lbgroup /建立组账建立组账号号lbgrouplbgroup# gr

56、ep lbgroup /etc/group# grep lbgroup /etc/group/查询查询groupgroup文件中文件中lbgrouplbgroup组是否建立组是否建立#groupadd r syslbgroup#groupadd r syslbgroup/建立系统组账号建立系统组账号 # grep lbgroup /etc/group # grep lbgroup /etc/group/查询查询groupgroup文件中文件中syslbgroupsyslbgroup组是否建立组是否建立 5. 5. 组账号修改组账号修改groupmodgroupmod命令用来更改群组识别码或名称

57、。该命令的语法格式为:命令用来更改群组识别码或名称。该命令的语法格式为:groupmod -g groupmod -g -n -n 群组名称群组名称 命令中所使用的参数说明如下:命令中所使用的参数说明如下: -g -g 设置欲使用的群组识别码。设置欲使用的群组识别码。 -o -o 重复使用群组识别码。重复使用群组识别码。 -n -n 设置欲使用的群组名称。设置欲使用的群组名称。下面举例说明该命令的使用方法:# grep lbgroup /etc/group/查询group文件中lbgroup组属性#groupmod g 503 lbgroup/改变lbgroup组的gid为503# grep

58、lbgroup /etc/group/查询操作结果是否正确#groupmod n ydgroup lbgroup/改变lbgroup组名为ydgroup# grep 503 /etc/group/查询操作结果是否正确6. 删除组账号groupdel命令用于删除指定的组账号,若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。该命令的语法格式为:groupdel 群组名称 7.口令维护命令出于系统安全考虑,linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令。因此使用useradd命令增加时,还需使用passwd命令为每一位新增加的用户设置口令;用户以后还可以随时用pa

59、sswd命令改变自己的口令。该命令的一般格式为: passwd 用户名其中用户名为需要修改口令的用户名。只有超级用户可以使用“passwd 用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令。 另外,passwd命令还可以使用一些参数选项,这些参数选项可对账号的口令进行不同的操作,但这些带参数的passwd命令只有root用户可以使用。这些参数选择包括:-s:用于查询指定用户账号的状态。-l:用于锁定账号的口令。-u:解除锁定账号的口令。-d:删除指定账号的口令。8.组中用户成员的维护gpasswd命令可用于把一个账户添加到组、把一个账户从组中删除、把一个账户设为组管理员。(1)添加用户到使用的命令格式为:gpasswd a 用户账号名组账号名(2)从组中删除用户的命令格式为:gpasswd d 用户账号名 组账号名(3)设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论