Linux操作系统初级培训.pdf
Linux操作系统初级培训操作系统初级培训DSC认证培训体系课程时间:180分钟更新日期:2007年11月 本课程为Linux操作系统操作系统培训课程之一 课程内容:Linux操作系统的初级培训 培训对象:参加曙光DCSA认证的技术人员 能力要求:初步了解Linux操作系统的相关知识 培养目标:此培训纲要针对Linux入门级学习,使大家能够独立安装Linux,并进行简单的系统维护;掌握Linux操作系统的相关基础知识及一些常用的命令。课程简介目录 第一章:Linux操作系统简介1.1 Linux操作系统起源1.2 Linux操作系统特性1.3 Linux操作系统结构1.4 Linux操作系统内核版本1.5 Linux操作系统发行版本1.6 Linux操作系统特点 第二章:Linux操作系统安装和基本配置 第三章:Linux操作系统的文件系统结构 第四章:Linux操作系统的用户管理 第五章:Linux操作系统常用命令详解 第六章:Linux操作系统的进程管理第一章:Linux操作系统简介 Linux 以它的高效性和灵活性著称。具有多任务、多用户的能力。Linux 之所以受到广大计算机爱好者的喜爱,其主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改。另一个原因是,它具有 Unix 的全部功能,任何使用 Unix 操作系统或想要学习 Unix 操作系统的人都可以从 Linux 中获益。1.1 Linux操作系统起源Linux是一个诞生于网络、成长于网络且成熟于网络的操作系统。1991年,芬兰大学生Linus Torvalds萌发了开发一个自由的UNIX操作系统的想法,当年Linux诞生,为了不让这个羽毛未丰的操作系统夭折,Linus将自已的作品Linux通过Internet发布。从此一大批知名的、不知名的hack、编程人员加入到开发过程中来,Linux逐渐成长起来。Linux一开始是要求所有的源码必须公开,并且任何人均不得从Linux交易中获利。然而这种纯粹的自由软件的理想对于Linux的普及和发展是不利的,于是Linux开始转向GPL,成为GNU阵营中的主要一员。Linux凭借优秀的设计,不凡的性能,加上IBM、INTEL、CA、ORACLE等国际知名企业的大力支持,市场份额逐步扩大,逐渐成为主流操作系统之一。Linux只是内核,即操作系统中允许用户的软件与硬件通信的那部分。Linux产商借网络爱好者升级的内核,通过优化、增加功能出售各个版本的linux操作系统1.2 Linux操作系统特点开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力提供了丰富的网络功能:完善的内置网络是Linux一大特点。可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。1.3 Linux操作系统结构hardwaremultitaskingdeviceinterfacesvishlsbashkernelTCP/IPstackshellgccdiffgrepwcwhocatutilitiesKernel系统启动时将内核装入内存管理系统各种资源Shell用户界面,提供用户与内核交互处理接口是命令解释器,提供强大的编程环境bash,ash,pdksh,tcsh,ksh,sh,csh,zsh.Utility提供各种管理工具,应用程序1.4 Linux操作系统内核版本版本号码稳定版本开发版本2.4.32 2.6.19-6稳定版本开发版本2.4.32 2.6.19-6主版本号.稳定(偶)/开发版本(奇).发布号-patch号主版本号.稳定(偶)/开发版本(奇).发布号-patch号http:/www.kernel.org/pub/linux/kernel/当前最新版本当前最新版本linux-2.6.23.tar.gzlinux-2.6.23.tar.gz1.5 Linux操作系统发行版本目录 第一章:Linux操作系统简介 第二章:Linux操作系统安装和基本配置 2.1 Linux系统安装前的准备 2.2 Linux系统安装方式的选择 2.3 Linux系统安装内容的选择 2.4 服务器磁盘控制器类型 2.5 Linux系统磁盘分区 2.6 Linux系统分区优点 2.7 Linux系统分区识别 2.8 Linux系统主要分区介绍 2.9 Linux 操作系统安装简解 2.10 Linux系统基本配置 第三章:Linux操作系统的文件系统结构 第四章:Linux操作系统的用户管理 第五章:Linux操作系统常用命令详解 第六章:Linux操作系统的进程管理第二章:Linux操作系统安装和基本配置2.1 Linux系统安装前的准备 Linux安装前须知安装前要了解所安装服务器的硬件配置方面的信息,主要包括磁盘控制器型号、网卡型号、内存大小及CPU类型等,根据相关信息和用户使用情况安装合适的Linux操作系统。在安装Linux前要了解Linux的一些基础知识。服务器硬盘分区要求根据需要,硬盘的分区可以自己定义,建议最少安装三个分区:/根分区、/swap 交换分区、/boot引导分区。多操作系统的安装可以在硬盘上安装一个以上的操作系统,不同的操作系统必须有自己的分区,在安装Windows及Linux双操作系统时,请先安装Windows再安装Linux。2.2 Linux系统安装方式的选择 通过光盘介质引导安装CD、DVD 通过网络引导安装NFS,HTTP,FTP 通过软盘(DOS)引导安装需将操作系统拷贝到硬盘某个分区 通过网络传输镜像文件安装曙光公司DCIS采用的方式2.3 Linux系统安装内容的选择 根据实际需要来选择将要安装的软件包?作为网络服务器专用,提供用户服务?作为办公专用,处理日常事务?作为企业工作站专用,提供内部资源管理?如果将来有别的需要,可以很方便的安装相应软件,实现各种所需功能2.4 服务器磁盘控制器类型 磁盘类型:SATA,SCSI,SAS RAID卡型号:Adaptec:LSI :2.5 Linux系统磁盘分区 磁盘分区:?主分区:最多4个主分区,其中一个主分区必须被标志为是“活动的”,而且包含一个引导装入程序?扩展分区:将主分区之一转换成一个扩展分区,然后将扩展分区再细分成任意个逻辑分区,不可将目录安装在扩展分区上?逻辑分区:每个物理驱动器上最多只能有11个逻辑分区2.6 Linux系统分区优点?增强可用性:如果系统一个分区由于故障而不能使用,其余好的分区仍然可以使用;?减少关闭时间:如果系统故障只影响一部分分区,那么只有这部分分区需要修复,故能比整个分区修复花的时间更少;?维护轻松:如果需要修复分区,单独修复每个分区比修复整个大分区要轻松得多;?均衡I/O:可以把分区分配到不同的磁盘来平衡I/O改善性能;?分区对用户透明,最终用户感觉不到分区的存在。2.7 Linux系统分区识别第一SCSI/SATA/SAS的主盘:/dev/sda分区:/dev/sda1、/dev/sda2、/dev/sda3.第二SCSI/SATA/SAS的从盘:/dev/sdb分区:/dev/sdb1、/dev/sdb2、/dev/sdb3.第三SCSI/SATA/SAS的主盘:/dev/sdc分区:/dev/sdac1、/dev/sdc2、/dev/sdc3.主分区被命名为sda1-sda3,如超过3个分区,则/dev/sda4被定义为扩展分区,在/dev/sda4下生成/dev/sda5逻辑分区,Linux操作系统最多能分11个逻辑分区2.8 Linux系统主要分区介绍/boot/boot引导分区:该目录放置系统内核及驱动模块引导程序,需要独立分区:1 独立有利于避免文件系统损坏造成的无法启动问题,如果独立出来,而/根文件系统因为别的原因损坏了,可以正常引导进入linux内核,并有很大几率进入一个可用的shell来修复系统,如果不独立,则很可能/文件系统损坏导致找不到/boot下的内核镜像,从而无法引导内核。2 若使用lilo作为引导,避免1024柱面问题。使用grub引导不存在该问题。3 文件系统支持问题。若安装多操作系统,/boot分区独立可以很方便的管理多系统引导/boot修复若由于操作或别的原因导致系统引导损坏,可以通过以下方法修复:进入grub模式grub find/boot/grub/stage1 注:找到/boot分区位置返回(hd0,0)注:说明/boot分区在第一块硬盘的第一个分区grubroot(hd0,0)注:这是/boot所在的分区;grubsetup(hd0)注:把GRUB写到MBR上;2.8 Linux系统主要分区介绍/swapSwap空间的作用?当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。?有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap会不堪重负),有相当一部分的数据直接交换到文件系统分区规则:?Swap space 比内存要慢5-6个数量级?在安装时,系统会尝试将交换分区安装到磁盘外端?当有多个磁盘控制器时,在每个磁盘上都建立交换分区?尽量将交换分区安装在访问最频繁的数据区附近2.8 Linux系统主要分区介绍/swap创建Swap文件1.以超级用户(root)身份登陆#dd if=/dev/zero of=swapfile bs=1024 count=32000创建一个有连续空间的交换文件。大小为1024*32000=32G2.激活Swap文件#/usr/sbin/swapon swapfileswapfile指的是上一步创建的交换文件。3.在/etc/fstab/path/swapfile none Swap default 0 04.检验Swap文件是否加上/usr/sbin/swapon-s删除多余的Swap空间。1.成为超级用户2.使用Swapoff命令收回Swap空间。#/usr/sbin/swapoff swapfile3.编辑/etc/fstab文件,去掉此Swap文件的实体。4.从文件系统中回收此文件。#rm swapfile2.8 Linux系统分区介绍/根目录根目录/root 超级用户主目录超级用户主目录/bin基本命令基本命令/bootkernel 和和boot配置文件配置文件/etc各种配置文件各种配置文件/usr用户程序用户程序/opt-附加的应用软件包附加的应用软件包/home用户目录用户目录/mnt-设备设备/文件系统挂载点文件系统挂载点/tmp临时文件临时文件/var可变信息区(可变信息区(file spool,logs,requests,mail,etc.)/proc进程信息进程信息/dev设备设备/sbin系统管理员执行程序系统管理员执行程序/lib-基本的共享库和核心模块基本的共享库和核心模块2.9 Linux 操作系统安装简解以光盘介质安装简解若加载软盘驱动,输入linux dd若进入修复模式,输入 linux rescue若进入单用户模式,输入linux single2.9.1 Linux系统安装分区自动分区:默认为自动分区,系统会分三个分区/boot、/swap、/根手工分区:根据应用分区,/boot、/swap为独立分区,可以定义2.9.2 Linux系统手工分区2.9.2 系统安装需关闭的服务配置防火墙及SElinux?选择无防火墙no firwall?Selinux不活跃disable SElinux2.9.3 系统安装完毕后的工作 在系统安装的过程中,按需求选择,无要求的默认即可,根据系统安装提示将系统安装完毕 系统安装完毕重新启动后,进行用户登录2.9.4 系统安装完毕后用户的登录 超级用户root(password 在安装时已设定)root为系统管理员,可以完成任何事情,建议不用root登录login:rootpassword:*rootlocalhost root#普通用户同样需要输入name&passwordxyzlocalhost xyz$2.10 Linux系统基本配置-网络配置 网络的配置#cd/etc/sysconfig/network-scripts#vi ifcfg-eth0 写入网络IP等#vi ifcfg-eth1 写入网络IP等设置完IP后,重启网络系统#/etc/init.d/network restart网关:在ifcfg-eth0、ifcfg-eth1 添加GATEWAY=网关IPDNS:在ifcfg-eth0、ifcfg-eth1 添加NAMESERVER=DNSIP 网络相关配置文件2.10 Linux系统基本配置-网络文件/etc/hosts 如果系统的 IP 不是动态获取,简单的主机名解析文件格式:ip地址 主机名cat/etc/hosts:127.0.0.1 localhost.localdomain localhost/etc/services Internet网络服务文件,将网络服务名转换为端口号协议。由 inetd、telnet、tcpdump 和一些其它程序读取。文件中的每一行对应一种服务,它由4个字段组成,中间用TAB或空格分隔,分别表示“服务名称”、“使用端口”、“协议名称”以及“别名”。文件格式:服务 端口/端口类型 别名/etc/sysconfig/network(redhat linux)、/etc/hostname(suse)主机名配置文件,记录着本机的主机名/root/.rhosts网络名认证2.10 Linux系统基本配置-服务的管理服务的启动chkconfig 服务名称 on服务的关闭chkconfig服务名称 off服务关于运行级别的定义chkconfig-level 35 服务名称 on/off服务的察看chkconfig-list|grep 服务名称2.10 Linux系统基本配置-运行级别的定义 runlevel 运行级别runlevels:定义在/etc/inittab中的不同模式。runlevel 运行级别runlevels:定义在/etc/inittab中的不同模式。Linux Runlevels0Bootstrap or power-down levels1Administration mode2Basic multiuser level(no networking)3Multiuser with DFS and networking4Not used5XII mode:log in and out from X prompts/SSingle-user modeLinux Runlevels0Bootstrap or power-down levels1Administration mode2Basic multiuser level(no networking)3Multiuser with DFS and networking4Not used5XII mode:log in and out from X prompts/SSingle-user mode第三章:Linux系统的文件系统及其结构3.1 文件与目录的基本概念 文件:是用来存储信息的基本结构,它是被命名(文件名)的存储在某种介质(磁盘,光盘,磁带等)上的一组信息的集合。从技术上讲,文件不能存贮任何数据,它只是一个用来指向它们相应的索引节点(inode)的名字,索引节点包含了文件的真正信息。文件名:是文件的标识,由字母,数字,下划线,圆点组成。扩展名:为了便于识别和管理,用扩展名作为文件名的一部分,中间用.隔开 目录文件:用来管理和组织大量的文件,常称为目录3.2 文件系统基本概念文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点;文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如NTFS或FAT;文件系统是文件的数据结构或组织方法。在Linux中,文件系统涉及两个非常独特的事情,目录树或在磁盘或分区上文件的排列;文件系统是基于操作系统的,建立在磁盘媒质上的可见体系结构,例如这种结构对于一个Linux用户来说可以用ls 或其它工具可以看到;文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法;在计算机业,一个文件系统是有组织存储文件或数据的方法,目的是易于查询和存取。文件系统是基于一个存储设备,比如硬盘或光盘,并且包含文件文件物理位置的维护;也可以说文件系统也是虚拟数据或网络数据存储的方法,比如NFS。3.3 Linux文件系统类型ext2 文件系统ext2文件系统应该说是Linux正宗的文件系统,早期的Linux都是用ext2,但随着技术的发展,大多Linux的发行版本目前并不用这个文件系统了;比如Redhat和Fedora 大多都建议用ext3,ext3文件系统是由ext2发展而来的。对于Linux新手,我们还是建议您不要用ext2文件系统;ext2支持undelete(反删除),如果您误删除文件,有时是可以恢复的,但操作上比较麻烦;ext3 文件系统:是由ext2文件系统发展而来ext3 is a Journalizing file system for Linux(ext3是一个用于Linux的日志文件系统),ext3支持大文件;但不支持反删除(undelete)操作;Redhat和Fedora都力挺ext3;reiserfs 文件系统reiserfs 文件系统是一款优秀的文件系统,支持大文件,支持反删除(undelete);操作反删除比较容易;reiserfs 支持大文件;3.4 常用文件系统比较FilesystemFile Size LimitFilesystem Size Limitext2/ext3 with 1 KiB blocksize16448 MiB(16 GiB)2048 GiB(=2 TiB)ext2/3 with 2 KiB blocksize256 GiB8192 GiB(=8 TiB)ext2/3 with 4 KiB blocksize2048 GiB(=2 TiB)8192 GiB(=8 TiB)ext2/3 with 8 KiB blocksize(Systems with 8 KiB pages like Alpha only)65568 GiB(64 TiB)32768 GiB(=32 TiB)ReiserFS 3.52 GiB16384 GiB(=16 TiB)ReiserFS 3.6(as in Linux 2.4)1 EiB16384 GiB(=16 TiB)XFS8 EiB8 EiBJFS with 512 Bytes blocksize8 EiB512 TiBJFS with 4KiB blocksize8 EiB4 PiBNFSv2(client side)2 GiB8 EiBNFSv3(client side)8 EiB8 EiBFilesystemFile Size LimitFilesystem Size Limitext2/ext3 with 1 KiB blocksize16448 MiB(16 GiB)2048 GiB(=2 TiB)ext2/3 with 2 KiB blocksize256 GiB8192 GiB(=8 TiB)ext2/3 with 4 KiB blocksize2048 GiB(=2 TiB)8192 GiB(=8 TiB)ext2/3 with 8 KiB blocksize(Systems with 8 KiB pages like Alpha only)65568 GiB(64 TiB)32768 GiB(=32 TiB)ReiserFS 3.52 GiB16384 GiB(=16 TiB)ReiserFS 3.6(as in Linux 2.4)1 EiB16384 GiB(=16 TiB)XFS8 EiB8 EiBJFS with 512 Bytes blocksize8 EiB512 TiBJFS with 4KiB blocksize8 EiB4 PiBNFSv2(client side)2 GiB8 EiBNFSv3(client side)8 EiB8 EiB1024 Bytes=1 KB;1024 KB=1 MB;1024 MB=1 GB;1024 GB=1 TB;1024 TB=1 PB;1024 PB=1 EiB3.5 文件系统的创建 文件系统的创建这个过程是存储设备建立文件系统的过程,一般也被称为格式化或初始化,通过一些初始化工具来进行。一般的情况下每个类型的操作系统都有这方面的工具。在Linux中有mkfs系列工具 创建方法以系统第二块硬盘为例:/dev/sdb分区:#fdisk/dev/sdb分区完毕后,硬盘识别为/dev/sdb1文件系统创建:#mkfs t 文件系统类型/dev/sdb13.6 Linux系统的文件结构3.6.1 Linux文件类型的定义普通文件?文本文件:ASCII码形式存储开头,如:-rw-r-r-1 root root 39599 Mar 8 12:15 x?二进制文件:以二进制形式存储在计算机中,不可直接读,要通过相应的软件读取开头,如:-rwxrwxrwx 1 root root 46888960 Dec 9 2005 x.sh目录文件:d字母开头如:drwxr-xr-x 2 root root 4096 Aug 2 2006 bin设备文件?块设备文件:b字母开头如:brw-rw-1 root disk 3,1 Jan 30 2003 hda1?字符设备文件:c字母开头如:crw-1 root root4,1 Jul 31 13:49 tty13.6.2 Linux文件属性的定义rootlocalhost#ls-lih总计 104K2408830 drwxr-xr-x 2 root root4.0K 04-21 12:46 mkuml-2004.07.172408260 drwxr-xr-x 2 root root4.0K 04-21 22:15 mydir2408258 lrwxrwxrwx 1 root root7 04-21 22:16 sun001.txt-sun.txt2408263-rw-r-r-2 root root39K 04-20 14:17 sun.txt解释:第一字段:inode;inode:索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘.)被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。第二字段:文件种类和权限;第三字段:硬链接个数;第四字段:属主;第五字段:所归属的组;第六字段:文件或目录的大小;第七字段和第八字段:最后访问或修改时间;第九字段:文件名或目录名3.6.3 Linux文件权限的定义rootzhz home#ls-ltotal 32drwxrwxrwx38 down root 4096 Jul 5 19:09 downdrwx-9 glhglh4096 Mar 26 19:08 glhdrwx-4 lei lei4096 Mar 21 08:40 leidrwxr-xr-x5 root root4096 Apr 12 2006 softwareLinux文件或目录的权限位是由 9 个权限位来控制,每三位为一组,它们分别是:文件属主(Ower)的读r、写w、执行x用户组(Group)的读r、写w、执行x(Other)其它用户的读r、写w、执行x;如果权限位不可读、不可写、不可执行,是用-来表示。3.6.3 系统目录内容介绍/Linux系统根目录,包含所有目录/binBinary的缩写,存放用户的可执行程序,例如ls,cp,也包含其它的SHELL如:bash等/boot包含vmlinuz,initrd.img等启动文件,随便改动可能无法正常开机/dev接口设备文件目录,如你的硬盘:sda/etcPasswd等系统设置与管理的文件/etc/x11X Windows System的设置目录/home一般用户的主目录/lib(/lib64)包含执行/bin和/sbin目录的二进制文件时所需的共享函数库library/mnt各项装置的文件系统加载点,例如:/mnt/cdrom是光驱的加载点/opt提供空间,较大的且固定的应用程序存储文件之用/procPS命令查询的信息与这里的相同,都是系统内核与程序执行的信息/root管理员的主目录3.6.3 系统目录内容介绍/sbin系统启动时所需的二进制程序/tmpTemporary,存放暂存盘的目录/usr存放用户使用系统命令和应用程序等信息/usr/bin存放用户可执行程序,如grep,mdir等/usr/doc存放各式程序文件的目录/usr/include保存提供C语言加载的header文件/usr/include/X11保存提供X Windows程序加载的header文件/usr/infoGNU程序文件目录/usr/lib(/lib64)函数库/usr/lib(/lib64)/X11函数库/usr/local提供自行安装的应用程序位置/usr/man存放在线说明文件目录/usr/sbin存放经常使用的程序,如showmount/usr/src保存系统的源码文件/usr/X11R6/bin存放X Windows System的执行程序/varVariable,具有变动性质的相关程序目录,如log第四章:Linux操作系统的用户管理4.1 Linux系统用户与任务的关系理解Linux的单用户多任务,多用户多任务概念?Linux 的单用户多任务单用户多任务;一个用户,为了完成工作,执行了多个任务;当然其它的人还能以远程登录过来,也能做其它的工作。?Linux 的多用户、多任务有时可能是很多用户同时用同一个系统,但并不所有的用户都一定都要做同一件事,所以这就有多用户多任务之说;举个例子,比如一台服务器,上面有FTP用户、系统管理员、web 用户、常规普通用户等,在同一时刻,有的可能在上传软件包管理子站;在与此同时,可能还会有系统管理员在维护系统;不同用户所具有的权限也不同,要完成不同的任务得需要不同的用户,也可以说不同的用户,可能完成的工作也不一样;值得注意的是:多用户多任务并不是大家同时挤到一起在一台机器的的键盘和显示器前来操作机器,多用户可能通过远程登录来进行,比如对服务器的远程控制,只要有用户权限任何人都是可以上去操作或访问的;4.2 Linux系统用户和组的概念用户(user)的概念Linux 是真正意义上的多用户操作系统,Linux系统中可建若干用户(user),在Linux系统中的一些用户是用来完成特定任务的。用户组(group)的概念;用户组(group)就是具有相同特征的用户(user)的集合体;比如有时要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时需要用户组,把用户都定义到同一用户组,通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是通过定义组和修改文件的权限来实现的;用户和用户组的对应关系是:一对一、多对一、一对多或多对多一对一:某个用户可以是某个组的唯一成员;多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;一对多:某个用户可以是多个用户组的成员;多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解4.3 Linux系统用户和组的配置 与用户(user)和用户组(group)相关的配置文件?与用户(user)相关的配置文件/etc/passwd 注:用户(user)的配置文件;/etc/shadow 注:用户(user)影子口令文件;?与用户组(group)相关的配置文件/etc/group 注:用户组(group)配置文件;/etc/gshadow 注:用户组(group)的影子文件;4.3.1 Linux系统用户管理的命令管理用户(user)的工具或命令useradd 注:添加用户adduser注:添加用户userdel注:删除用户passwd注:为用户设置密码usermod注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等pwconv注:同步用户从/etc/passwd 到/etc/shadowpwck注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和/etc/passwd 创建/etc/passwd,然后会删除/etc/shadow 文件;finger 注:查看用户信息工具id 注:查看用户的UID、GID及所归属的用户组chfn注:更改用户信息工具su注:用户切换工具sudo注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;visudo注:visodo 是编辑/etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑/etc/sudoers 的效果是一样的;sudoedit注:和sudo 功能差不多4.3.2 Linux系统用户组管理的命令 管理用户组(group)的工具或命令groupadd注:添加用户组;groupdel注:删除用户组;groupmod注:修改用户组信息;groups 注:显示用户所属的用户组;grpck/grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow,如果/etc/gshadow 不存在则创建;grpunconv注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group,然后删除gshadow文件。4.3.3 Linux系统用户主目录文件/etc/skel 目录/etc/skel目录一般是存放用户启动文件的目录,这个目录是由root权限控制,当添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下;/etc/skel 目录下的文件都是隐藏文件,也就是类似.file格式的;我们可通过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一、标准的、默认的用户环境。/etc/skel 目录下的文件,一般是用useradd 和adduser 命令添加用户(user)时,系统自动复制到新添加用户(user)的家目录下;如果我们通过修改/etc/passwd 来添加用户时,我们可以自己创建用户的家目录,然后把/etc/skel 下的文件复制到用户的家目录下,然后要用chown来改变新用户家目录的属主。4.3.4 Linux系统用户管理相关文件/etc/default/useradd 文件通过useradd 添加用户时的规则文件内容如下:#useradd defaults fileGROUP=100HOME=/home 注:把用户的家目录建在/home中;INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用;EXPIRE=注:帐号终止日期,不设置表示不启用;SHELL=/bin/bash 注:所用SHELL的类型;SKEL=/etc/skel 注:默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;4.3.5 Linux系统用户管理相关文件/etc/login.defs 配置文件/etc/login.defs 文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的;比如Fedora 的/etc/logins.defs 文件内容(注释删除后的内容)MAIL_DIR/var/spool/mail 注:创建用户时,要在目录/var/spool/mail中创建一个用户mail文件;PASS_MAX_DAYS 99999 注:用户的密码不过期最多的天数;PASS_MIN_DAYS 0 注:密码修改之间最小的天数;PASS_MIN_LEN 5 注:密码最小长度;PASS_WARN_AGE 7 注:UID_MIN 500 注:最小UID为500,也就是说添加用户时,UID 是从500开始的;UID_MAX 60000 注:最大UID为60000;GID_MIN 500 注:GID 是从500开始;GID_MAX 60000CREATE_HOME yes 注:是否创用户家目录,要求创建;4.3.6 Linux系统用户文件权限定义-umask默认权限分配的命令 umaskumask 是通过八进制的数值来定义用户创建文件或目录的默认权限,umask表示的是禁止权限,不过文件和目录有点不同:新创建的文件默认不具有可执行允可权限:-rw-新创建的目录默认具有可执行允可权限:drwx-x-x对于文件来说,umask 的设置是在假定文件拥有八进制666权限上进行,文件的权限就是是666减去umask的掩码数值;对于目录来说,umask 的设置是在假定文件拥有八进制777权限上进行,目录八进制权限777减去umask的掩码数值umask文件目录067156245334423512601700umask文件目录067156245334423512601700系统用户的家目录的权限是通过在配置文件中指定的,比如Fedora 中是用的/etc/login.defs文件;其中有这样一段:CREATE_HOME yesUMASK 077表示的意思是,当我们创