除了用户登录名和口令外,每个用户还有一些其他属性,如用户ID、用户组ID(groupID,GUID)、主目录(homedirectory)、登录shell(10ginshell)等。系统上所有用户信息都存在系统文件/etc/passwd和/etc/group中。1)用户管理用户管理包括增加、修改和删除用户账号。这些工作可以通过手工编辑有关文件完成但是最好使用用户管理工具。这里介绍一组简单的基于命令的用户管理工具:useradd,usermod和serdel。基于图形的用户管理工具有control-panel等。(1)增加用户名如果需要增加一个用户,可以使用useradd或adduser命令,例如,以下命令增加一个名为john的用户。除了用户名外,其他参数均为默认。#adduser john通过此操作,得到的效果如下:●在口令文件/etc/passwd中,增加了一个用户john的条目:john:x:506:506:/home/iohn:/bin/bash●如果使用了影子口令,还会在影子口令文件~tc/shadow中,增加一个用户john的条目:John.!!l:10772:0:99999:7...●在用户组文件/etc/group中,增加了一个用户组john的条目:john::506:●为用户john创建了主目录,并将/etc/skel下的模板文件复制到/home/john下。如果需要修改useradd命令的默认配置,可以通过修改目录/etc/default/和/etc/skel中的文件来完成。(2)设置口令为了让新增用户可以登录,还需要为他设置一个口令。这可以用passwd命令来完成。例如:#passwd johnChanging password for user johnNew password:Retype new password:passwd: all authentication tokens updated successfully#(3)修改与账号有关的信息如果需要修改与用户账号有关的信息,可以使用usermod命令。例如,以下命令使用户john的账号在2003年6月18日之后为无效:#usermod-e6/1803iohn命令chfn也可以用来修改用户的一些个人信息,例如:$chfnChanging finger information for john.Password:NameO:JohnZhengOffice:95 Product Development CenterOfficePhone:823162日8Home Phone :63821235.Fingerinformationchanged$19
19 除了用户登录名和口令外,每个用户还有一些其他属性,如用户 ID、用户组 ID(groupID,GUID)、主目录(homedirectory)、登录 shell(10ginshell)等。系统上所有用户信 息都存在系统文件/etc/passwd 和/etc/group 中。 1)用户管理 用户管理包括增加、修改和删除用户账号。这些工作可以通过手工编辑有关文件完成, 但是最好使用用户管理工具。这里介绍一组简单的基于命令的用户管理工具:useradd, usermod 和 serdel。基于图形的用户管理工具有 control-panel 等。 (1)增加用户名 如果需要增加一个用户,可以使用 useradd 或 adduser 命令,例如,以下命令增加一个 名为 john 的用户。除了用户名外,其他参数均为默认。 #adduser john 通过此操作,得到的效果如下: ● 在口令文件/etc/passwd 中,增加了一个用户 john 的条目: john:x:506:506::/home/iohn:/bin/bash ● 如果使用了影子口令,还会在影子口令文件~tc/shadow 中,增加一个用户 john 的 条目: John:!!:10772:0:99999:7::: ● 在用户组文件/etc/group 中,增加了一个用户组 john 的条目: john::506: ● 为用户 john 创建了主目录,并将/etc/skel 下的模板文件复制到/home/john 下。 如果需要修改 useradd 命令的默认配置,可以通过修改目录/etc/default/和/etc/skel 中的 文件来完成。 (2)设置口令 为了让新增用户可以登录,还需要为他设置一个口令。这可以用 passwd 命令来完成。 例如: #passwd john Changing password for user john New password: Retype new password: passwd:all authentication tokens updated successfully # (3)修改与账号有关的信息 如果需要修改与用户账号有关的信息,可以使用 usermod 命令。例如,以下命令使用 户 john 的账号在 2003 年 6 月 18 日之后为无效: #usermod -e 6/1803 iohn 命令 chfn 也可以用来修改用户的一些个人信息,例如: $chfn Changing finger information for john. Password: Name ():John Zheng Office []: 95 Product Development Center Office Phone []: 823162 日 8 Home Phone []: 63821235 Finger information changed. $
命令chsh还可以用来改变登录shell,例如:Schsh—s/bin/csh johnChanging shell for john.Password:Shell changed.$(4)删除一个用户当要删除一个用户时,可以使用userdel命令。例如:#userdel john以上userdel的用法只删除用户账号,并不删除主目录。如果在删除用户时还要删除其主目录,则可以加上选项“.-T。2)用户组管理对Linux,每个用户都属于一个或多个用户组。如果用户属于一个用户组,则享受该用户组的权限。这样,只需配置用户组的权限,就能配置各个用户的权限了。(1)增加一个用户组当要增加一个用户组时,可以使用groupadd命令。例如,下面增加了一个名为teachers的用户组:#groupaddteachers结果是在用户组文件/etc/group中增加了如下一行:teachers: X: 507:(2)修改一个用户组当要修改一个用户组时,可以使用groupmod命令。用法如下:groupmod[-g dig[O] [n name]group例如,下面将用户组teachers改为名为staff的用户组:#groupmod-nstaffteachers结果是用户组文件/etc/group中teachers行改成了如下内容:staff: x:507:(3)删除一个用户组当要删除一个用户组时,可以使用groupdel命令。命令groupdel很简单,只要加上用户组名就可以了。例如,如下命令删除名为staff的用户组:#groupdel staff3.文件系统管理数据和程序文件都存储在块设备上,例如硬盘、光盘、软盘等。设备上的文件并不是无序的,而是按一定方法组织起来的。不同组织方法也就形成了不同的文件系统,例如ext2、ext3、FAT32、FAT16等。Linux操作系统的一个重要特点是它通过VFS(VirtualFileSystem,虚拟文件系统)支持多种不同的文件系统。Linux使用最多的文件系统是ext2,这是专门为Linux而设计的文件系统,效率高。ext3支是在ext2的基础上增加了日志管理。Linux也支持许多其他文件系统如Minix、FAT32、FATI6等。另外,Linux还支持NFS(NetworkFileSystem,网络文件系统)。若想了解Linux所支持的文件系统,可以显示文件/proc/filesystems。如果需要增加或删除对某个文件系统的支持,可以重新编译内核。对Linux而言,所有设备(如硬盘、光盘、软盘等)的文件系统都有机无缝地组成了一个树状文件系统。这与MS-DOS/Windows9x/NT/2000/XP等不一样,不是每个分区都有独20
20 命令 chsh 还可以用来改变登录 shell,例如: $chsh—s/bin/csh john Changing shell for john. Password: Shell changed. $ (4)删除一个用户 当要删除一个用户时,可以使用 userdel 命令。例如: #userdel john 以上 userdel 的用法只删除用户账号,并不删除主目录。如果在删除用户时还要删除其 主目录,则可以加上选项“-T'。 2)用户组管理 对 Linux,每个用户都属于一个或多个用户组。如果用户属于一个用户组,则享受该 用户组的权限。这样,只需配置用户组的权限,就能配置各个用户的权限了。 (1)增加一个用户组 当要增加一个用户组时,可以使用 groupadd 命令。例如,下面增加了一个名为 teachers 的用户组: #groupadd teachers 结果是在用户组文件/etc/group 中增加了如下一行: teachers:X:507: (2)修改一个用户组 当要修改一个用户组时,可以使用 groupmod 命令。用法如下: groupmod[-g dig[O]] [—n name]group 例如,下面将用户组 teachers 改为名为 staff 的用户组: #groupmod-n staff teachers 结果是用户组文件/etc/group 中 teachers 行改成了如下内容: staff:x:507: (3)删除一个用户组 当要删除一个用户组时,可以使用 groupdel 命令。命令 groupdel 很简单,只要加上用 户组名就可以了。例如,如下命令删除名为 staff 的用户组: #groupdel staff 3.文件系统管理 数据和程序文件都存储在块设备上,例如硬盘、光盘、软盘等。设备上的文件并不是 无序的,而是按一定方法组织起来的。不同组织方法也就形成了不同的文件系统,例如 ext2、 ext3、FAT32、FATl6 等。 Linux 操作系统的一个重要特点是它通过 VFS(VirtualFileSystem,虚拟文件系统)支持 多种不同的文件系统。Linux 使用最多的文件系统是 ext2,这是专门为 Linux 而设计的文件 系统,效率高。ext3 支是在 ext2 的基础上增加了日志管理。Linux 也支持许多其他文件系 统如 Minix、FAT32、FATl6 等。另外,Linux 还支持 NFS(NetworkFileSystem,网络文件系 统)。 若想了解 Linux 所支持的文件系统,可以显示文件/proc/filesystems。如果需要增加或 删除对某个文件系统的支持,可以重新编译内核。 对 Linux 而言,所有设备(如硬盘、光盘、软盘等)的文件系统都有机无缝地组成了一 个树状文件系统。这与 MS-DOS/Windows 9x/NT/2000/XP 等不一样,不是每个分区都有独
立的驱动盘符。由于数据和文件都位于文件系统上,如果文件系统出了问题,则后果不堪设想。因此文件系统的管理尤为重要。本节主要介绍如下几个有关文件系统方面的知识:如何安装和卸载文件系统。··如何监视文件系统。·如何创建文件系统。如何维护文件系统。1)手工安装和卸载文件系统在访问一个文件系统之前,必须首先将文件系统安装到一个目录上(除了根文件系统之外,根文件系统在启动时自动安装到根目录/上)。安装方法有两种:一种是启动时系统自动根据文件/etc/fstab来安装:另一种是用mount命令或相关工具宋手工安装。这里简单介绍一下mount命令。(1)用mount命令安装命令mount的基本用途是将一个设备上的文件系统安装到某个目录上。格式mount-ttypedevicedir参数说明device:待安装文件系统的块设备名:type:文件系统类型(关于系统所支持的文件系统类型的信息,可参阅文件/proc/file.systems);dir:安装点。例如,下面将第一硬盘第一分区的FAT32文件系统安装到/dosc上,这样就可以从/dosc处访问该文件系统了:命令mount还可以用来列出所有安装的文件系#mount-tvfat/dev/hdal/dosc统:#mount/dev/hda3on/type ext2(rw)none on/proc type proc(rw)/dev/hda2 on/dosd type vfat(rw)none on/dev/ptstype devpts(rw,mode=0622)hawk:(pid470)on/nettypenfs(intr,rw,port=1023,timeo=8,retrans=110,indirect,)/dev/hdal on/dosctypevfat(rw)#(2)用umount命令卸载文件系统的卸载很容易,只要使用命令umount即可。格式umount[-nrv][device][dir[.J]例如,如果要卸载以上刚刚安装的文件系统,可以如下:#umount/dosc也可以如下:#umount/dev/hdal2)自动安装和卸载文件系统除了用手工方式安装文件系统外,系统还可以自动安装和卸载文件系统,只要在文件letc/fstab中列出了要安装的文件系统。除了注释行外,每行描述一个文件系统。每行包括21
21 立的驱动盘符。 由于数据和文件都位于文件系统上,如果文件系统出了问题,则后果不堪设想。因此 文件系统的管理尤为重要。本节主要介绍如下几个有关文件系统方面的知识: ● 如何安装和卸载文件系统。 ● 如何监视文件系统。 ● 如何创建文件系统。 ● 如何维护文件系统。 1)手工安装和卸载文件系统 在访问一个文件系统之前,必须首先将文件系统安装到一个目录上(除了根文件系统之 外,根文件系统在启动时自动安装到根目录/上)。安装方法有两种:一种是启动时系统自 动根据文件/etc/fstab 来安装:另一种是用 mount 命令或相关工具宋手工安装。这里简单介 绍一下 mount 命令。 (1)用 mount 命令安装 命令 mount 的基本用途是将一个设备上的文件系统安装到某个目录上。 格式 mount -t type device dir 参数说明 device:待安装文件系统的块设备名: type:文件系统类型 (关于系统所支持的文件系统类型的信息,可参阅文件 /proc/file.systems); dir:安装点。 例如,下面将第一硬盘第一分区的 FAT32 文件系统安装到/dosc 上,这样就可以从/dosc 处访问该文件系统了: #mount -t vfat /dev/hdal /dosc 命令 mount 还可以用来列出所有安装的文件系 统: #mount /dev/hda3 on/type ext2(rw) none on/proc type proc(rw) /dev/hda2 on/dosd type vfat(rw) none on /dev/pts type devpts (rw, mode=0622) hawk:(pid470)on/net type nfs(intr,rw,port=1023,timeo=8,retrans=110,indirect,) /dev/hdal on/dosc type vfat (rw) # (2)用 umount 命令卸载 文件系统的卸载很容易,只要使用命令 umount 即可。 格式 umount [-nrv] [device][dir[ ...]] 例如,如果要卸载以上刚刚安装的文件系统,可以如下: #umount /dosc 也可以如下: #umount /dev/hdal , 2)自动安装和卸载文件系统 除了用手工方式安装文件系统外,系统还可以自动安装和卸载文件系统,只要在文件 /etc/fstab 中列出了要安装的文件系统。除了注释行外,每行描述一个文件系统。每行包括
如下一些由空格或制表符分隔的字段。设备点:指定要安装的块设备或远程文件系统。安装点:指定文件系统的安装点。●文件系统类型:Linux支持许多文件系统,如ext2、ext3、ext、minix、sysV、swap、xiafs、msdos、vfat、hpfs、NFS等。●安装选项:这是一组以逗号隔开的安装选项。关于本地文件系统的安装选项,请参阅mount(8):而关于远程文件系统的安装选项,请参阅nfs(5)。备份选项:指定是否使用dump命令备份文件系统。如果数值为0,表示不备份。检查选项:指定在系统引导时fsck命令按什么顺序检查文件系统。根文件系统的值为1,即最先检查。所有其他需要检查的文件系统的值为2。如果没有指定数值或数值为0时,表示引导时不做一致性检查。下面是一个/etc/fstab的示例:/11/dev/hda3ext2defaults00/dev/hdal/doscvfatdefaults/doscdefaults00/dev/hda2vfat/dev/hda400defaultsswapswap/dev/fdo/mnt/floppy00ext2noauto,user00/dev/cdromdefaultsnone/procproc/dev/ptsdevptsmode=062200none在大多数情况下,Linux系统所使用的文件系统不经常发生变化。因此,如果将这些经常使用的文件系统存放在文件/etc/fatab之中,则系统启动时会自动安装这些文件系统,而在系统关机时能自动卸载它们。3)监视文件系统状态(1)用命令df显示文件系统的使用情况当要显示文件系统的使用情况时,可以使用命令df,例如:#dfUsedFilesystemIk-blocksAvailableUse%Mounted on/dev/hda325632441344202108650655%/0%/dev/hdal16142729281613344Idosc75%/dev/hda220041921509268494924/dosd(2)用命令du显示目录所占空间当要显示某一个目录及其所有子目录所占空间时,可以使用命令du,例如:#du-s/home310984/home#4)维护文件系统对文件系统要定期检查。如果出现损坏或破坏的文件,则需要修补。最常用的方法是在文件/etc/fstab中将检查选项数值(passnumber)设置为大于0的正整数,如1或2,这样系统在启动时会自动检查文件系统的完整性。另一种方法是直接使用fsck命令来检查文件系统,如果需要,还可强制该命令修改错误。这是一个前端命令,根据不同的文件系统类型,fsck将调用不同的检查程序如fsckext2等。命令fsck的格式fsck[-AVRTNP][-si[-t文件系统类型][-ar]文件系统[...]22
22 如下一些由空格或制表符分隔的字段。 ● 设备点:指定要安装的块设备或远程文件系统。 ● 安装点:指定文件系统的安装点。 ● 文件系统类型:Linux 支持许多文件系统,如 ext2、ext3、ext、minix、sysv、swap、 xiafs、msdos、vfat、hpfs、NFS 等。 ● 安装选项:这是一组以逗号隔开的安装选项。关于本地文件系统的安装选项,请 参阅 mount(8):而关于远程文件系统的安装选项,请参阅 nfs(5)。 ● 备份选项:指定是否使用 dump 命令备份文件系统。如果数值为 0,表示不备份。 ● 检查选项:指定在系统引导时 fsck 命令按什么顺序检查文件系统。根文件系统的 值为 1,即最先检查。所有其他需要检查的文件系统的值为 2。如果没有指定数值或数值为 0 时,表示引导时不做一致性检查。 下面是一个/etc/fstab 的示例: /dev/hda3 / ext2 defaults 1 1 /dev/hdal /dosc vfat defaults 0 0 /dev/hda2 /dosc vfat defaults 0 0 /dev/hda4 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 noauto,user 0 0 /dev/cdrom none /proc proc defaults 0 0 none /dev/pts devpts mode=0622 0 0 在大多数情况下,Linux 系统所使用的文件系统不经常发生变化。因此,如果将这些 经常使用的文件系统存放在文件/etc/fatab 之中,则系统启动时会自动安装这些文件系统, 而在系统关机时能自动卸载它们。 3)监视文件系统状态 (1)用命令 df 显示文件系统的使用情况 当要显示文件系统的使用情况时,可以使用命令 df,例如: #df Filesystem lk-blocks Used Available Use% Mounted on /dev/hda3 2563244 1344202 1086506 55% / /dev/hdal 1614272 928 1613344 0% /dosc /dev/hda2 2004192 1509268 494924 75% /dosd (2)用命令 du 显示目录所占空间 当要显示某一个目录及其所有子目录所占空间时,可以使用命令 du,例如: #du -s /home 310984/home # 4)维护文件系统 对文件系统要定期检查。如果出现损坏或破坏的文件,则需要修补。 最常用的方法是在文件/etc/fstab 中将检查选项数值(pass number)设置为大于 0 的正整 数,如 1 或 2,这样系统在启动时会自动检查文件系统的完整性。 另一种方法是直接使用 fsck 命令来检查文件系统,如果需要,还可强制该命令修改错 误。这是一个前端命令,根据不同的文件系统类型,fsck 将调用不同的检查程序如 fsckext2 等。 命令 fsck 的格式 fsck [-AVRTNP] [-—s i [-t 文件系统类型] [-ar]文件系统[...]
参数说明其中命令行选项和参数的用法如下:-A对/etc/fstab中的文件系统逐个检查。通常在系统启动时使用。-V详细模式。列出有关fsck检查时的附加信息。-R当和-A一起使用时,不检查根文件系统。-T开始时不显示标题。-N不执行,只显示要做什么。-P当和-A一起使用时,·并行处理所有文件系统。串行处理文件系统。-s-t文件系统类型:指定要检查文件系统的类型。-a不询问而自动地修复所发现的问题。在修复之前,请求确认。-r文件系统指定要检查的文件系统。可以是块设备名/dev/hda2,也可以是安装点,如/usr。在fsck检查一文件系统时,最好先卸下这个文件系统。这可以保证在检查该文件系统时,没有其他程序同时对它进行操作。5)建立文件系统当增加一个新硬盘或需要改变硬盘上原来分区时,在Linux能使用之前,需要对盘进行分区和创建文件系统。创建磁盘分区可以用fdisk命令,而利用mkfs命令可以建立或初始化文件系统。实际上,每个文件系统类型都对应有自己单独的初始化命令,mkfs只是最常用的一个前台的程序,它根据要建立的文件系统类型调用相应的命令。mkfs的格式:mkfs [-V] [-t fstype] [fs-option]filesys[blocks]常用的mkfs命令参数如下:指定系统的类型。-t-c检查坏块并建立相应的坏块清单。-1文件名从指定的文件名中读取初始坏块。4.Linux源代码文件安放结构Linux系统模块的源程序文件主要由如下几部分构成:arch针对不同的硬件体系结构设置的模块fs文件系统init初始化模块进程间通信ipc内核kernelinclude.h头文件lib库函数存储管理mmnet网络管理驱动程序drivers脚本文件scripts系统文档documentation23
23 参数说明 其中命令行选项和参数的用法如下: -A 对/etc/fstab 中的文件系统逐个检查。通常在系统启动时使用。 -V 详细模式。列出有关 fsck 检查时的附加信息。 -R 当和-A 一起使用时,不检查根文件系统。 -T 开始时不显示标题。 -N 不执行,只显示要做什么。 -P 当和-A 一起使用时,·并行处理所有文件系统。 -s 串行处理文件系统。 -t 文件系统类型 指定要检查文件系统的类型。 -a 不询问而自动地修复所发现的问题。 -r 在修复之前,请求确认。 文件系统指定要检查的文件系统。可以是块设备名/dev/hda2,也可以是安装点,如/usr。 在 fsck 检查一文件系统时,最好先卸下这个文件系统。这可以保证在检查该文件系统时, 没有其他程序同时对它进行操作。 5)建立文件系统 当增加一个新硬盘或需要改变硬盘上原来分区时,在 Linux 能使用之前,需要对磁盘 进 行分区和创建文件系统。创建磁盘分区可以用 fdisk 命令,而利用 mkfs 命令可以建立 或初始化文件系统。实际上,每个文件系统类型都对应有自己单独的初始化命令,mkfs 只 是最常用的一个前台的程序,它根据要建立的文件系统类型调用相应的命令。 mkfs 的格式: mkfs [-V] [-t fstype] [fs-option]filesys[blocks] 常用的 mkfs 命令参数如下: -t 指定系统的类型。 -c 检查坏块并建立相应的坏块清单。 -l 文件名 从指定的文件名中读取初始坏块。 4.Linux 源代码文件安放结构 Linux 系统模块的源程序文件主要由如下几部分构成: arch 针对不同的硬件体系结构设置的模块 fs 文件系统 init 初始化模块 ipc 进程间通信 kernel 内核 include .h 头文件 lib 库函数 mm 存储管理 net 网络管理 drivers 驱动程序 scripts 脚本文件 documentation 系统文档