• 1. SuSe Linux Administration
  • 2. 第一节 Linux简介
  • 3. Linux小常识什么是Linux? 什么是Linux操作系统? Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核! 内核是什么?内核建立了计算机软件与硬件之间通讯的平台, 内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。 采用Linux作为内核的操作系统
  • 4. Linux小常识什么是Linux Distribution? 由于 Linux 的稳定性良好,并且可以在便宜的 x86 架构下的计算机平台运作,所以吸引了很多的开发商与自由软件的开发团队在 Linux 内核上开发相关应用软件(apache,sendmail…)。将 Linux 内核,内核工具与应用软件集合起来,并加入自己公司系统管理模块与工具(yast/suse),而打包出一套可以完整安装的操作系统,这个完整的 Linux 操作系统,我们就称他为 distribution
  • 5. Linux的历史和发展在计算科学的王国里, Stallman是个倍受尊崇的神话式英雄。他令人景仰的职业生涯是从大名鼎鼎的MIT人工智能实验室开始的。七十年代中后期,在那里他开发出了著名的Emacs编辑器。八十年代早期,商业软件公司从人工智能实验室吸引走了绝大多数优秀的程序员,并和他们签署了严格的保密合同。Stallman为此大大不爽。他认为软件和其它产品不同,在复制和修改方面,它不该受到任何限制。只有这样,才可能开发出更好更强的软件Richard StallmanUnix版权?
  • 6. Richard Stallman创立GNU项目 GNU 工程 开始於一九八四年,旨在发展一个类似 Unix ,且为 自由软件 的完整操作系统: GNU 系统。(GNU 是由“GNU‘s Not Unix”所递回定义出的首字母缩写语;Stallman宣布GNU应当发音为Guh-NOO,与canoe发音 相同,以避免与gnu(非洲牛羚,发音与new相同)这个单词混淆 现在,各种使用 Linux 作为内核的 GNU 操作系统正被广泛地使用著;虽然这些系统通常被简称为“Linux”,但是它们应该更精确地被称为 GNU/Linux 系统 。 Linux的历史和发展
  • 7. Linus 开始行动Linus Torvalds 登场 到1991 年,GNU 计划已经开发出了许多工具软件。最受期盼的Gnu C 编译器已经出现,但还没有开发出免费的GNU 操作系统。即使是MINIX 也开始有了版权,需要购买才能得到源代码。而GNU 的操作系统HURD 一直在开发之中,但并不能在几年内完成。 对于Linus 来说,已经不能等待了。1991 年初,Linus 开始在一台386sx 兼容微机上学习minix 操作系统。通过学习,他逐渐不能满足minix 系统的现有性能,并开始酝酿开发一个新的免费操作系统 . Just a hobby?
  • 8. Linus 开始行动From: torvalds@klaava.Helsinki.FI(Linus B. Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). Linus (torvalds@kruuna.helsinki.fi) 发布在GPL!
  • 9. Linux内核版本Linux内核版本有两种:稳定版和开发版.稳定的内核具有工业级的强度,可以广泛地应用和部署.新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序.而开发版内核由于要试验各种解决方案,所以变化很快.这两种版本是相互关联,相互循环的. Linux内核的命名机制:     num.num.num 第一个数字是主版本号,第二个数字是次版本号,第三个数字是修订版本号.如果次版本号是偶数,那么该内核就是稳定版的;若是奇数,则是开发版的.头两个数字合在一齐可以描述内核系列.如稳定版的2.6.0,它是2.6版内核系列. 最新的内核源代码可以在http://www.kernel.org以tar包或者增量补丁的形式下载.
  • 10. SuSE Linux版本差异
  • 11. X WindowX serverX clientTcp/Ipsles9
  • 12. X Window
  • 13. KDE桌面环境
  • 14. 虚拟终端Ctrl+Alt+Fn (n=1-6)
  • 15. 在linux系统中找到并使用帮助资源 第二节
  • 16. 目标1访问和使用手册页
  • 17. Man pages/usr/share/man
  • 18. Man pages组成
  • 19. Man page 分类
  • 20. Man pages 举例 whatis command man 1 uname man 2 uname man 5 hosts man 8 ifconfig
  • 21. 目标2使用信息页
  • 22. Info pages/usr/share/info Info提供结构化的文档,层次分明 能供从目录级别直接链接到相应的内容 支持超级链接
  • 23. 目标3发行说明和白皮书
  • 24. 发行说明 /usr/share/doc/release-notes/ RELEASE-NOTES.en.html RELEASE-NOTES.en.rtf
  • 25. 技术白皮书(how to) /usr/share/doc/howto/en/html http://www.tldp.org /usr/share/doc/manual
  • 26. 管理目录和文件第三节
  • 27. 目标1了解文件系统层次标准
  • 28. 文件系统的层次结构逻辑结构
  • 29. 关于路径
  • 30. 文件系统层次标准(FHS)关于FHS:文件系统层次标准 定义了/目录下应该有哪些目录(/boot,/dev,/proc….),它们应该包含什么内容? 定义了2层结构: 针对/下面第一层目录:比如/bin下面要放用户可执行的程序,/etc下面放配置文件等 针对/var和/usr下面的目录:比如/usr/share放共享的资料,/var/log下面放系统的日志等
  • 31. 文件系统层次标准(FHS)根目录/: 文件系统树的最顶层,系统启动的时候第一个被mount的目录,所有开机时要设计的程序必须位于该分区中。/etc, /bin, /dev, /lib, /sbin 这5个目录必须和/目录在一个分区,不能单独设置分区 /bin:重要的可执行程序,所有用户(包括管理员和普通用户)都可以执行的程序.比如ls, mv, rm, mkdir, rmdir, gzip, tar, cat, cp, mount等
  • 32. 文件系统层次标准(FHS)/boot:对系统启动非常重要的一个目录,包含了boot loader(/boot/grub)的信息和压缩内核vmlinuz。 /dev:设备目录,所有的设备在linux里都是以文件的形式在该目录里面出现。应用程序通过对这个文件进行读写来访问设备。 注意:/dev/null设备
  • 33. 文件系统层次标准(FHS)/etc:该目录下包含的系统的配置文件,所有应用程序的配置文件都在里面有相应的文件。/etc/apache2,/etc/samba /home:非root用户默认的主目录,默认新创建的用户都在该目录下有一个以自己用户名命名的目录,里面有该用户的一些初始配置文件
  • 34. 文件系统层次标准(FHS) /lib:包含应用程序运行时需要调用的库文件和内核相关的模块/lib/modules. /media:设备的mount点,像cdroom,usb,floppy 等默认mount到该目录
  • 35. 文件系统层次标准(FHS)/opt:应用程序目录 /root:管理员root的主目录 /sbin:包含系统管理的重要程序(ifconfig) 一般是让管理员用的
  • 36. 文件系统层次标准(FHS)/srv:服务的数据目录,像/srv/www是apache的默认数据存放目录。 /tmp:临时区域,用来放临时文件,任何人可以读写该目录。
  • 37. 了解文件系统层次标准(FHS)/usr/:应用程序,图形界面文件,其他库,本地安装程序,文档…
  • 38. 了解文件系统层次标准(FHS)/var:包含可以在运行时修改的文件(cache或者log)
  • 39. 了解文件系统层次标准(FHS) /proc:保存提供给用户的进程信息(ps,top),该目录不包含任何实际文件. /sys:系统信息目录,以树形结构提供有关的硬件的总线,设备等信息。 /mnt:临时mount目录
  • 40. 目标2识别linux系统中的文件类型
  • 41. Linux中的文件类型普通文件:用一个名称表示的一组连续的数据 -rw- 目录:目录是一种特殊的文件,它包含了一系列的实体,每一个实体包含了该目录下的一个对象的文件名和inode值。(记录了目录下的所有对象的关联性) drw- 设备文件:每一个在Linux里面的设备都由一个文件来表示,这个文件实际上是表示一个位于应用程序和硬件的连接,如果你要访问硬件,你的应用程序是通过对设备文件的读写来完成的。(brw- / crw-) /dev/null是一个非常有用的字符设备文件,送入这个设备的所有东西都被忽略
  • 42. Linux中的文件类型链接:对文件系统中其他文件的引用,分soft link和hard link两种(lrw-) Socket文件:网络通信用,两台计算机上的本地进程通过 socket来交互数据。 (srw-) FIFO文件:管道设备文件;数据从一头流入,从另一头流出,单向数据交换(prw- ).通常用来压缩备份出来的海量数据。
  • 43. Linux中的文件类型创建soft link ln –s filename linkname 创建hard link ln filename linkname softlink 和 hardlink对比实验
  • 44. Linux中的文件类型文件名存储在上级目录的数据部分(目录的block中)inode文件的管理信息(权限,时间,所有者…)BLOCK文件的内容数据)指向数据的指针
  • 45. Linux中的文件类型/test/file1inodeBLOCK(/test目录的内容数据)/test/file2inode
  • 46. Linux中的文件类型name1BLOCK(文件内容数据)inodename2 HARDLINKHARDLINK: 没有自己的inode 可以理解成员文件 的一个别名。 ln filename linkname 可以用: ls –li来查看hardlink 文件的inode
  • 47. Linux中的文件类型filename1filename2inode2inode1BLOCK1(存放一个文件路径)BLOCK2SOFTLINK: 有自己的inode,有 自己的block. block中存放的是一个 文件的绝对路径。 ln –s filena linkname
  • 48. 目标3更改目录并列出目录内容
  • 49. 简单目录操作命令ls:显示目录内容和文件属性 -l 显示文件详细列表 -a 显示隐藏的文件(点开头的文件) -t 以上一次修改时间为排序标准(ls显示的时间为上一次修改时间) -u 显示的时间为上一次访问时间 -F 文件名后面会带一个字符表示该文件的类型(@代表link |代表管道) -i:显示每个文件的inode号
  • 50. 简单目录操作命令cd: 目录转换 cd ~进入用户主目录 cd - 进入上次访问的有效目录 cd .. 进入上一级父目录
  • 51. 简单目录操作命令pwd:显示当前工作目录 pwd:显示所在的当前目录 pwd -p 如果你在的位置是一个symbol link,-p显示当前的物理路径。
  • 52. 目标4创建和查看文件
  • 53. 创建和查看文件touch:主要是一个修改时间戳的工具 touch -a 修改上一次访问时间为当前时间 touch -m 设置上一次的文件修改时间为当前时间 touch -m -r filename 以该文件的时间为准 touch filename1 filename2 ….:新建一个大小为零字节的文件1 2 。。。。
  • 54. 创建和查看文件文件查看 less:一页一页的看 tail:只能看到该文件的结尾,默认显示最后10行 tail -f:实时更新文件结尾,如果有新的内容加进来的话(一般用来看实时变化的文件,比如log) head:只能看到该文件的开头,默认显示10行 cat: 一次性显示所有内容 more
  • 55. 目标5管理文件和目录
  • 56. 管理文件和目录cp:复制文件或者目录 cp source destination -r 包括该目录和里面所有内容夹都拷贝 cp –r /path/direct1/ /pathdirect2 (会复制目录本身) cp -r /path/direct1/. /path/direct2 (不复制目录本身,只复制目录内容) cp -r /path/direct1/* /path/direct2 (不复制目录本身,只复制非隐藏内容)
  • 57. 管理文件和目录mv: 移动文件或者修改文件名,默认文件名一样就覆盖(-i 是否覆盖重名的文件 -u只有比目标文件新才会覆盖该文件) mv source destination (如果mv要操作成功,需要对上一级目录有可写权限)
  • 58. 管理文件和目录目录操作:目录新建和删除 mkdir -p directory1/directory2/… (能够创建多级子目录) mkdir directoryname rmdir /path/directoryname (只有目录为空才能删) rm -r /path/directoryname(删除整个目录)
  • 59. 目标6在linux上寻找文件
  • 60. 在Linux中寻找文件寻找文件: kfind: 图形工具,集成在konqueror中 find: find pathname criterion action: criterion为目标对象的属性,可以是-type(文件类型f,d,l),-name(文件名)等 find /etc -name apa* -type f (搜索/etc下 apa开头的所有普通文件) find /test -name hell* -exec grep kk {} \; (在/test目录下搜索hell开头的文件,找到后在该文件内部查找kk字符串)
  • 61. 在Linux中寻找文件locate: locate filename 相当于find -name filename,但是 locate的搜索方法和find不一样,locate不在文件系统中搜索,而在一个特地为locate创建的数据库/var/lib/locatedb中搜索,速度更快,但是有一个问题,这个数据库并不是实时更新的。 sles9每天定时更新该数据库,管理员也可以手工用updatedb来手工更新该数据库
  • 62. 在Linux中寻找文件搜索命令路径 which:显示某个被执行的命令的完整的路径(基于$PATH)which –a ping type:查看某个命令属于shell内置命令还是外部的命令
  • 63. 目标7搜索文件内容
  • 64. 搜索文件的内容使用grep:搜索指定文件中是否包含指定的字符串。而且打印出含有指定字符串的那一行。 grep search_pattern filename1 filename2 …. search_pattern由一个常规表达式组成 egrep [a-z]+ /test/hello egrep –r (b|B)ool /test
  • 65. 搜索文件的内容什么是常规表达式(regular expression): 由元字符(metacharacters)和字面值(literal)组成的字符串。 metacharacters:不代表本身,有特殊含义的字符.比如? ,\ ,+, [a-z]…. literal:就代表该字符本身,没有别的含义
  • 66. 处理Linux shell和命令行第四节
  • 67. 目标1了解SHELL
  • 68. shellshell是什么? shell是用户和Linux内核之间的接口程序,他负责翻译和执行用户的命令 ,并且返回系统消息。 Shell中执行命令的过程? 有一些命令,比如改变工作目录命令cd,是包含在shell内部的。(type cd) 还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。 对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。
  • 69. SHELLshell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序然后shell在搜索路径$PATH里寻找这些应用程序。 如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。 如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。
  • 70. shellshell 的类型: login shell: 顾名思义,是由 login 产生的 shell(本地或者远程telnet/ssh登录都会启动login shell或者su -) ps auxw 看到的 –bash都是login shell interactive shell: 是指能够显示一个提示符让用户输入命 令的 shell。 non-interactive shell :不让用户输入命令,比如在 shell 脚本中。 Suse默认用bash(bourne again shell)
  • 71. shellshell的文件名限制: 文件名中如果包含特殊字符(分号,空格,美元符号),这些字符对shell来讲有特殊含义。需要用“\”把它们屏蔽成一个普通的字符。 shell的文件名补齐功能: 只需写出文件的前几个字母,按tab键,shell自动补齐
  • 72. 目标2在命令行执行命令
  • 73. 在命令行执行命令历史纪录功能 history 切换为根用户 su -
  • 74. QUESTION 70 To preserve the command history even when the shell is closed, the history is written to a file in the user's home directory. Which file holds the history information of the bash shell? A. bash_history B. .bash_history C. ?bash_history D. $bash_history Answer: B
  • 75. 目标3了解常用的命令行任务
  • 76. 了解常用命令行任务变量 shell 变量:shell变量用户控制当前shell自身的行为 环境变量:环境变量控制从shell中启动的程序的行为 $PATH $HOME $USER 当前用户的环境变量在.bash_profile里
  • 77. 别名别名(alias):定义别名可以为命令及其参数创建快捷方式,或者创建完全不同的命令 查看alias: 设置alias:
  • 78. 别名删除alias: 注意: 如果是用alias设置的命令别名,只能在当前的 shell中可以用,如果要永久有效,那么要写入 ~/.alias文件中,每次shell启动时候回去读取 该文件(是通过~/.bashrc文件读取进来的)
  • 79. 目标4了解命令语法和特殊字符
  • 80. shell命令语法和特殊字符使用搜索模式的扩展名 一次性操作一组文件
  • 81. shell命令语法和特殊字符 防止shell 解释特殊字符 \: 反斜线只能保护一个特殊字符不被shell 解释 “”:双引号能够保护除了$,\,`之外的所有字符 ‘’:屏蔽所有。
  • 82. 目标5使用管道和重定向
  • 83. 管道和重定向Linux三个标准通道: stdin:标准输入通道(默认是键盘),标识符为0 stdout:标准输出通道(默认是显示器),标识符为1 sterr:错误输出通道(默认是显示器),标识符为2
  • 84. 管道和重定向
  • 85. 管道和重定向如何重定向标准通道
  • 86. 管道和重定向
  • 87. 管道和重定向区分以下两种情况: 1:ls  /opt /recipe 2 > &1  1>dirlist  2:ls  /opt /recipe 1 > dirlist  2>&1 结果只有标准输出被定向到文件dirlist,因为在此之前,标准错误输出2已经被复制到了标准输出1上 标准输出1被定向到文件dirlist,标准错误输出2拷贝了&1(标准输出1),这样实际标准错误输出2也被定向到了dirlist
  • 88. 管道和重定向管道“|”:管道可以把一个命令的输出用作另一个命令的输入。 ls -l /etc | less Ls -l /etc | grep apa*
  • 89. 管道和重定向 如何让一个命令的输出既显示在屏幕又写到文件中? tee命令:从标准的输入读取数据,并且写入标准输出和一个文件中 ls -l tee output (输出到屏幕,并且写入output文件)
  • 90. 管道和重定向如何重定向几个连续命令的输出?
  • 91. 管道和重定向命令触发命令
  • 92. 目标6VI编辑器
  • 93. vi编辑器 vi是目前最常用的一个命令行文本编辑器。它是一个面向模式的编辑器,启动以后直接进入的是命令模式。 这时候所有你的输入都会被认为是命令。如果要用vi对文本进行编辑的话,你需要切换到相应的模式下。 i/inster :这个模式下,vi接受输入作为文本,按esc回到命令模式 del :这个模式下,vi删除光标所在的字符,按esc回到命令模式
  • 94. Vi编辑器 在命令模式下输入“:”会直接进入命令行模式 :q!: 强制退出vi,不保存当前修改 :wq:保存当前内容,并且退出vi dd:命令模式下,把当前光标所在的那一行剪切到缓存中 yy: 命令模式下,把当前光标所在的那一行拷贝到缓存中 p/P:命令模式下,把缓存中的内容拷贝到光标所在行的下面/上面一行中
  • 95. 了解Linux用户/组和文件权限Section 5
  • 96. 目标1访问和使用yast
  • 97. 了解linux用户,组和权限访问和使用yast YAST(yet another setup tool):yast 是suse linux 特有的一个配置,安装,管理工具。 yast 启动方式: yast2 yast yast -l yast module_name SuSeconfig: SuSEconfig根据/etc/sysconfig目录下的各个文件的变量设置来配置最终的系统,它位于yast的后端,激活用yast修改的配置。
  • 98. 目标2基本linux用户安全功能
  • 99. 了解linux用户,组和权限 文件系统安全性组件: 用户:系统访问控制的一个最小单位,在Linux里面用户是私有的帐号 组:组是用户的一个集合,当一个用户被创建的时候,他就会被分配个某些预定义的组,一个用户至少要属于一个组,但是它也可以属于很多组,但是只有一个组是primary组. 所有权:文件或者文件夹的创建者默认就会成为该文件和文件夹的所有者,只有文件的所有者才能修改文件的属性(权限,所有者等)。 权限:权限决定了用户对文件访问的程度
  • 100. 了解linux用户,组和权限用户和组: 用户ID和组ID:
  • 101. 目标4管理并保护Linux用户环境
  • 102. 用户管理Finger:用户信息察看工具
  • 103. 用户管理普通用户VS系统用户: 普通用户:是我们为了维护一个安全的系统环境而创建,我们创建他是让该用户通过用户名密码登录到linux系统 系统用户:这类用户通常是在安装的过程中产生的,他一般被一些服务,应用程序所使用,让这些服务有权限去访问一些数据,系统用户一般是有rpm包中的脚本来完成的.比如apache2创建的系统用户wwwrun
  • 104. 用户管理public group schema VS private group schema: 创建一个用户的时候,该用户会默认被分配到一个primary组,这里有两种方式: 1.private group schema: 每一个创建的用户会同时创建一个和用户名一样的组名,该用户属于改组.每个用户都分配给一个他能控制的组 2.public group schema : 这种模式下,每一个创建的用户都会被分配到一个通用的公共的组,由系统管理员来管理
  • 105. 用户管理用户和组的配置文件: /etc/passwd: 用户帐号相关信息
  • 106. 用户管理
  • 107. 密码管理 /etc/shadow:存储加密的用户密码和密码过期的一些信息.默认用des加密
  • 108. 组管理/etc/group: 组名: 密码:如果是空,不需要密码 组id: 组成员列表:只显示以改组作为secondly组的用户帐号!
  • 109. 管理并保护linux 用户环境如何以root用户的身份执行管理任务 su: 用户id切换命令 su - user1:切换到user1后,再启动loginshell(不指定username,默认切换到root用户) su – user1 –c “command”:切换以后再执行一个command命令。
  • 110. 管理并保护linux 用户环境newgrp/sg:修改自己的有效组id(primary group) 一个用户可以属于很多个组,但是只有一个组是有效组(primary 组) newgrp newgroupname sg newgroupname 只有目标组设置了密码,而且需要做primary组切换的用户不属于目标组,切换时才需要输入目标组的密码。 注意: 如果目标组没有密码,那么只有组成员能够作这个修改,如果有密码,那么知道密码的用户都可以。
  • 111. sudo委托管理任务有时候,管理员希望分担一些管理任务给普通用户,但是呢,又不想让他们每次执行任务的时候都用我的root帐号,那我还得告诉每个人root的密码,岂不是失去了安全的意义(比如你要休假了)Sudo可以让一个普通用户能够执行一个平时没有权限执行的管理任务。比如 sudo shutdown -h now Sudo怎么做到的?那是不是所有的普通用户都能通过sudo为所欲为呢? sudo它是通过读取一个配置文件/etc/sudoers来判断当前的用户是否有权限通过sudo来执行这个命令。 管理员可以通过visudo命令来编辑这个文件。
  • 112. sudo委托管理任务sudo委托管理任务:授权普通用户执行部分管理任务。 配置文件:/etc/sudoers。 sudoers 配置文件由两种类型的实体组成:别名(基本变量)和用户说明(user specification)(定义了谁能运行什么). 语法规则: 基于巴科斯-诺尔范式(Extended Backus-Naur Form,EBNF),每一条规则在ebnf里面都是一个Production rule. 每一个“production rule”都和其它的“production rule”有关联,这样就构成了这种语言的语法。 用户说明规则语法: 用户/组 主机=(username)命令1,命令2……. List of which users may execute what
  • 113. sudo委托管理任务 sles9默认sudoers配置: %users ALL= (ALL) ALL:允许所有用户可以以任何用户的身份(默认是root)在所有的主机上执行所有的命令 Defaults targetpw: 要求输入管理员密码,如果屏蔽则要求输入实际用户的密码
  • 114. sudo委托管理任务注意:用户/组 主机=(username)命令1,命令2……. 如果命令是一个文件名,那么用户可以随意携带任何参数执行该命令 如果命令是一个目录地址,那么用户可以执行该目录下所有的命令(不包括子目录) 如果想让用户只能携带某个参数执行命令,那么你需要在命令后面给出具体的参数 如果不想让用户执行命令的时候携带参数,那么命令后面接” ” 主机=(username) NOPASSWD:命令1,命令2…….
  • 115. sudo委托管理任务
  • 116. sudo委托管理任务Sudo实验: 新建两个用户user1(111111),user2(222222),user3(333333) su - user1 passwd user2 (看一下是什么结果) sudo passwd user2 (会提示输入密码,默认管理员密码)
  • 117. sudo委托管理任务visudo 编辑/etc/sudoers文件: 屏蔽 defaults targetpw 屏蔽 %users ALL = …….. 添加 user1 ALL = /usr/bin/passwd user2 添加user2 ALL= NOPASSWD: /usr/bin/passwd user1 添加user3 ALL= NOPASSWD: /usr/bin/passwd
  • 118. 目标5使用权限保护文件和目录
  • 119. 使用权限保护文件和目录权限和权限值: 读(r):读取文件的内容;列出目录里的对象。 写(w):允许修改文件;在目录里面新建或者删除文件。 执行(x):允许执行文件;允许进入目录里。Root不受限制
  • 120. 使用权限保护文件和目录数字权限值:除了用字母rwx来表示权限,还可以使用3位数字来表达文件或目录的权限。 每个数字是相应对象指派的以下三个值的和: 读:4 写:2 执行:1
  • 121. 使用权限保护文件和目录如何从命令行设置权限: chmod:修改文件或者目录的权限(符号或者数字) chmod 数字权限值 filename
  • 122. 使用权限保护文件和目录chown:修改文件或目录的所有者和组属性 chown newowern:newgroup filename (:和.都可以,但是中间不能有空格)同时修改filename的所有者属性和组属性 chown newowern filename (只修改所有者属性) Chown newowern: filename (修改所有者属性,同时修改组属性为该所有者的primary组) chown :newgroup filename (只修改组属性 为该组)
  • 123. 使用权限保护文件和目录特殊权限位:
  • 124. 使用权限保护文件和目录
  • 125. 使用权限保护文件和目录用户新建文件或者目录的系统初始权限是什么?能不能修改这个默认的初始权限呢? 系统默认创建文件的权限(mod)是666,默认创建目录的权限(mod)是777。 umask: 一个掩码 实际创建的文件和目录的权限=mod权限-mod和umask共有的权限
  • 126. 使用权限保护文件和目录
  • 127. 目标7了解Linux用户鉴定
  • 128. 了解linux用户鉴定应用程序如何去鉴定一个用户的合法性? 早先时期,需要对用户进行验证的应用程序,必须把代码和某种验证机制编译到一起。例如,ftp服务器使用密码对用户进行校验,就要在程序中编译进这种认证机制。 鉴定手法越来越多,应用程序怎么办? 智能卡,指纹,密钥。。。。。
  • 129. 了解linux用户鉴定什么是pam? Linux-PAM(Pluggable Authentication Modules for Linux.基于Linux的插入式验证模块)是一组共享库,使用这些模块,系统管理者可以自由选择应用程序使用的验证机制。也就是说,勿需重新编译应用程序就可以切换应用程序使用的验证机制。
  • 130. 了解linux用户鉴定pam是怎么工作的?
  • 131. 了解linux用户鉴定一个有趣的故事: 为了描述Linux-PAM的灵活性,我们可以假想一种情况:一个系统管理者(父母)希望提高用户(他们的子女)的数学能力。他/她就可以通过一个孩子们非常喜欢的游戏“Shoot 'em up game”达成上述目的,当然前提是这个游戏能够使用PAM提供的验证机制。验证可以设置:每次孩子们要玩游戏时,都需要回答出一组小于12的随机数的乘积。这样孩子们每次玩游戏之前都可以练习乘法运算。随着他们的成长,可以增加数字的大小。
  • 132. 了解linux用户鉴定是否可以把PAM用户于任何需要验证的程序? 要看程序是否支持pam 我怎样才能区分程序是否使用了PAM验证? 使用ldd命令(打印出每个应用程序用到的共享库),如果这个程序的使用的动态连接库没有libpam和libpam_misc,那它肯定不使用PAM验证。
  • 133. 了解linux用户鉴定系统管理员通过PAM配置文件来制定认证策略,即指定什么服务该采用什么样的认证方法; 应用程序开发者通过在服务程序中使用PAM API而实现对认证方法的调用; 而PAM服务模块(service module)的开发者则利用PAM SPI(Service Module API)来编写认证模块(主要是引出一些函数pam_sm_xxxx( )供libpam调用),将不同的认证机制(比如传统的UNIX认证方法、Kerberos等)加入到系统中; PAM核心库(libpam)则读取配置文件,以此为根据将服务程序和相应的认证方法联系起来。
  • 134. 了解linux用户鉴定PAM支持的四种管理界面: 1、认证管理(authentication management)     主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些信息。 2、帐户管理(account management)     主要是检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。 3、密码管理(password management)     主要是用来修改用户的密码。 4、会话管理(session management)     主要是提供对会话的管理和记账(accounting)。这类模块是处理为用户提供服务之前/后需要做的一些事情,包括:记录打开/关闭交换数据的信息,监视目录等。 。
  • 135. 了解linux用户鉴定PAM的文件: /usr/lib/libpam.so.* PAM核心库 /etc/pam.conf或者/etc/pam.d/:目录下面包含了使用pam认证的应用程序的配置文件. /etc/pam.d/other:默认的配置文件 /usr/lib/security/pam_*.so : 可动态加载的PAM service module
  • 136. 了解linux用户鉴定/etc/pam.conf service-name   module-type   control-flag   module-path   arguments service-name 服务的名字,比如telnet、login、ftp等 module-type  模块类型有四种:auth、account、session、password,即对应PAM所支持的四种管理方式。同一个服务可以调用多个PAM模块进行认证,这些模块构成一个stack。 control-flag 用来告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况。它有四种可能的值:required,requisite,sufficient,optional。     required 表示本模块必须返回成功才能通过认证,但是如果该模块返回失败的话,失败结果也不会立即通知用户,而是要等到同一stack中的所有模块全部执行完毕再将失败结果返回给应用程序。     requisite 与required类似,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一stack内的任何模块,而是直接将控制权返回给应用程序。   sufficient 表明本模块返回成功已经足以通过身份认证的要求,不必再执行同一stack内的其它模块,但是如果本模块返回失败的话可以忽略。     optional表明本模块是可选的,它的成功与否一般不会对身份认证起关键作用
  • 137. 了解linux用户鉴定下面是ftpd服务利用PAM模块进行用户认证的三个步骤: 首先用pam_ftp模块检查当前用户是否为匿名用户,如果是匿名用户,则sufficient控制标志表明无需再进行后面的认证步骤,直接通过认证;否则继续使用pam_unix_auth模块来进行标准的unix认证,即用/etc/passwd和/etc/shadow进行认证;通过了pam_unix_auth模块的认证之后,还要继续用pam_listfile模块来检查该用户是否出现在文件/etc/ftpusers中。 ftpd auth sufficient /usr/lib/security/pam_ftp.so ftpd auth required /usr/lib/security/pam_unix_auth.so use_first_pass ftpd auth required /usr/lib/security/pam_listfile.so
  • 138. 管理Linux文件系统Section 6
  • 139. 目标1选择Linux文件系统
  • 140. 管理Linux文件系统什么是文件系统? 文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,比如ntfs,fat32,ext2,ext3 文件系统的创建: 这个过程是存储设备建立文件系统的过程,一般也被称为格式化或初始化,通过一些初始化工具来进行。一般的情况下每个类型的操作系统都有这方面的工具,linux下有mkfs. 挂载(mount): 文件系统只有挂载才能使用,Unix类的操作系统如此,Windows也是一样;在Windows更直观一些,具体内部机制我们不太了解。但Unix类的操作系统是通过mount进行的,挂载文件系统时要有挂载点.
  • 141. 管理Linux文件系统选择Linux文件系统: linux操作系统一个主要任务就是通过创建和管理文件系统来提供存储服务。 传统的文件系统(不记录数据和元数据到日志): ext2 minix MS-DOS/VFAT(FAT32) HPFS 日志文件系统: ext3 ReiserFs NTFS JFS XFS Veritas’s Vxfs
  • 142. 管理Linux文件系统VFS
  • 143. 管理Linux文件系统linux文件系统格式:数据和管理信息分开。 什么是inode(index node/informatin node):存储出文件内容以外有关该文件的所有信息(权限,修改和访问时间,文件类型,block指针等)的节点,每个节点128字节。 什么是block? 文件和目录的实际数据内容是存储在block里面。Block是文件系统中最小的数据存储单位。(物理磁盘的最小存储单位是sector)
  • 144. 管理Linux文件系统文件名保存在哪里? 目录:目录的数据部分(存储在block)包含了一个列表,这个列表表达该目录下的文件,子目录的inode号和名称的关联。
  • 145. 管理Linux文件系统读取/目录的block,获取/home的的inode访问/home/test文件的流程根据/home的inode,得 到/home的block指针读取/home的block, 得到test文件的inode 根据test的inode,得 到test的block指针最后从test的block中读取test文件的内容
  • 146. 管理Linux文件系统
  • 147. 管理Linux文件系统ext2fs文件系统格式 ext2在建立时候就定死了inode数目和block数目 ext2允许的block大小为1024,2048,4096byte 一个文件系统所能容纳的最大文件数,取决与inode的数量。 一个inode占128个字节 block的空间占用(不足一个算一个,超出一点算2个) inode数量超出block数量有没有意义?(多出的Inode没有用) 當 block 大小越小,而 inode 數量越多,則可利用的空間越多,但是大檔案寫入的效率較差; 這種情況適合檔案數量多,但是檔案容量小的系統,例如 BBS 或者是新聞群組( News )這方面服務的系統; 當 Block 大小越大,而 inode 數量越少時,大檔案寫入的效率較佳,但是可能浪費的硬碟空間較多; 這種狀況則比較適合檔案容量較大的系統
  • 148. 管理Linux文件系统
  • 149. 管理Linux文件系统Reiserfs: Block 固定为4096byte Inode 只在实际需要时才生成 采用平衡的二进制树算法,速度更快 文件存储更有效:只保留实际需要空间,不是整个block(多个小文件可能在一个block中)
  • 150. 目标2配置linux 文件系统分区
  • 151. 配置Linux分区分区类型: mbr(main boot recorder ):位于硬盘的零磁轨上,开始时需要读取,一共512字节。包括系统引导程序和硬盘分区表两部分。分区表只有64字节,最多可以有4条分区记录。 主分区:指派给特定操作系统的一系列连续的柱面。 扩展分区:扩展分区还可以继续划分逻辑分区 逻辑分区
  • 152. 配置Linux分区linux 设备名和分区名对应关系:
  • 153. 配置Linux分区分区的设备名逻辑分区从5开始
  • 154. 目标3使用逻辑卷管理来配置文件系统
  • 155. 配置Linux分区硬盘空间还有,但磁盘某个分区空间快用完了,有没有办法可以让这个分区空间变大一点呢? 转移数据,然后重新分区,在把数据拷贝回来? 用类似于pqmagic之类的智能分区软件来做? 能不能不影响现有系统和数据访问,以一种透明的方式实现?
  • 156. 配置Linux分区LVM(逻辑卷管理)
  • 157. 配置Linux分区Lvm的功能: 将多个硬盘和分区从逻辑上组成一个卷组(volume group) 通过lvm你可以很方便的扩展空间 如果硬件支持,可以添加一个硬盘到一个正在运行中的卷组 最多可以添加256个逻辑卷 …………
  • 158. 配置Linux分区使用yast来配置lvm
  • 159. 磁盘阵列mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{1,2} -C /dev/md1 表示的是创建raid设备md1 -a yes 表示若没有md1设备文件的时候创建一个md1 -l 1 表示创建的raid几 -n 2 表示的是有几个设备加入raid阵列
  • 160. 磁盘阵列raid类型 0 最安全 1 最快 5 安全性最好,奇偶校验 6 5+1
  • 161. 目标4配置和管理Linux文件系统
  • 162. 配置和管理Linux文件系统通过命令行创建文件系统 Mkfs:可以创建ext2,etc3,MS-DOS,MINIX,XFS,JFS等文件系统。 Mkfs –t typename –b xx –i xx /devicename 比如:mkfs –t ext2 /dev/hda1 Mkreiserfs:可以创建reisers
  • 163. 配置和管理Linux文件系统mount一个文件系统: 1。硬盘分区并且格式化成某种文件系统格式 2。在文件系统中创建要挂载的目录 3。用mount命令把格式化后的分区挂载到该目录下 mount -t ext2 /dev/hda2 /my_doc umount /dev/hda2 或者umount /my_doc
  • 164. 配置和管理Linux文件系统/etc/fstab文件: 文件系统静态配置文件,系统启动时会去读这个文件来加载各种文件系统。
  • 165. 配置和管理Linux文件系统 如何查看当前mount 的文件系统? /etc/mtab:mount 和unmount命令实际上修改的就是这个文件。 直接在shell中输入mount /proc/mounts: 来自内核的实时数据 注意: 如果mtab和mounts数据上有不一致,那么以mounts为标准
  • 166. 配置和管理Linux文件系统监视和检查文件系统 检查分区和文件的使用: df:查看硬盘和分区,mount的位置,空间使用情况(默认以block的形式显示分区的情况) -i: 用inode来表示空间使用情况 -h: 用户易读形式 如果不指定参数,df会显示所有已经mount的文件系统的空间使用情况
  • 167. 配置和管理Linux文件系统du:显示关于文件和目录的空间使用情况(默认只显示目录的情况) -a:显示目录下所有对象 的空间是用情况,如果不 带-a则显示该目录以及其 下所有目录的空间使用情况
  • 168. 配置和管理Linux文件系统-c: 最后会显示 一个总数(total)
  • 169. 配置和管理Linux文件系统-h:用户可读形式 -s:只显示一个总的使用情况
  • 170. 配置和管理Linux文件系统查看打开的文件 lsof(list openfile):该命令列出被打开的文件,默认显示所有活动进程打开的文件。它可以显示谁在访问某个目录和文件。 -s: 显示文件的大小 -u:显示某个用户打开的文件 lsof -s -u root,geeko
  • 171. 配置和管理Linux文件系统检查pid的使用 fuser:显示使用指定文件的进程PID,默认情况下,显示的每个文件名后面会带有一个描述访问类型的字母: c:表示在当前目录的进程 e: 表示正在运行的可执行文件 f: 打开文件(默认不显示) r: 访问根目录 m:访问映射文件或共享库
  • 172. 配置和管理Linux文件系统Fuser –k:kill所有在访问目标文件的进程(SIGKILL) Fuser –u: 显示该进程的用户id fuser -v: 详细信息模式 Fuser –uv:常用
  • 173. 配置和管理Linux文件系统
  • 174. 目标5设置并配置disk quota
  • 175. 设置并配置disk quota 服务器磁盘空间管理问题!DVD电影BT疯狂下载临时文件MP3 数码照片软件安装包 系统镜像
  • 176. 设置并配置磁盘quotadisk quota:磁盘限额,允许管理员为每个用户或者组指定一量的存储空间,也可以指定用户和或组创建的文件数量。
  • 177. 设置并配置磁盘quota如何配置disk quota: 1.修改/etc/fstab文件:usrquota,grpquota 2.mount -o remount /dev/hda3
  • 178. 设置并配置磁盘quota2.初始化quota系统 quotacheck -avug 检查所有启用quota的文件系统的状况 然后建立一个使用状况表,成功的话会在启用quota的文件 系统的的顶级目录下生成aquota.user或者aquota.group quotacheck –mavug: quotacheck在检查文件系统的使用状 况时,可能还有进程在写数据。为了保证检查的准确性, quotacheck会默认把要检查的文件系统remount到只读的状 态,检查完以后再remount到可写状态。指定-m参数后会直 接检查。
  • 179. 设置并配置磁盘quota
  • 180. 设置并配置磁盘quota3.配置用户限额: edquota -u username 4.配置组限额 : edquota -g groupname
  • 181. 设置并配置磁盘quota5.配置grace periods edquota -t
  • 182. 设置并配置磁盘quota6.启动并且激活quota rcquota start(注意rc+服务名这种写法) cd /etc/init.d/ ./quota start innserv quota (系统启动时会自动激活quota)
  • 183. 设置并配置磁盘quota生成quota报告: repquota -aug
  • 184. 设置并配置磁盘quota察看自己的quota限制 quota –uv username quota –gv groupname
  • 185. quota实验设置user1在/test文件系统下的的磁盘限额: 新建一个文件系统,挂载到/test Block (soft = 20,hard =25) Inode (soft =10,hard =15) grace periods : 3天 把/test的quota报告输出到/home/quotareport文件中 注意:配置完文件以后要启动quota服务(rcquota start),检查quota配置效果时要su到user1. 可以touch filename1,filename2 …..来一次新建多个文件.
  • 186. 在SLES中管理软件Section 7
  • 187. 目标1管理rpm软件包
  • 188. 管理Sles 的软件linux下软件是怎么安装的? Tarball包: 软件源代码打包后再经过压缩的安装包,一般是*.tar.gz或者*.tar.这种形式的软件包,需要解开包后,需要编译源代码,最后才能生成可执行文件。 rpm(RedHat Package Manager)包:rpm是一种资料记录库的方式来将你所需要的软件安装到linux主机的一套管理程序,用rpm包的形式在Linux下安装软件,非常方便,安全。 Rpm安装方式最大的特点是它所提供的软件包是预先编译过的;而且rpm包里面记录了需要安装该软件的一些依赖性关系,如果你的系统不满足这个条件,不予安装;装好以后,这个软件的信息同样也要记录到rpm数据库中,供以后查询用。
  • 189. 管理Sles 的软件rpm组件和功能: rpm 包管理器:处理rpm包安装和卸载的程序 rpm数据库: rpm数据在包管理器的后台工作,它包含一个列表,列出了所有已安装的rpm包的所有信息 rpm软件包:rpm包,最终给用户的安装包. 包标签:包含软件名,版本和包发行号的信息
  • 190. 管理Sles 的软件如何用rpm管理软件包 安装rpm软件包: rpm -ivh xxxx.rpm 更新rpm软件包: rpm -Fvh xxxx.rpm vs rpm -Uvh xxxx.rpm -F:FRESHEN 只是更新以前安装过的包(先删除后安装) -U: UPDATE  如果这个包以前装过,更新到最新的版本;如果没有装过,就装当前的包; 卸载rpm软件包:
  • 191. 管理Sles 的软件查询rpm:rpm -q software
  • 192. 管理进程和监视linux系统Section 8
  • 193. 目标1管理进程
  • 194. 管理进程和监视linux系统进程定义: 程序:一个静态的指令集合,可执行文件,不占系统的运行资源,一个程序可以启动多个进程。 进程:进程是一个正在运行的程序。也就是说在Linux系统上运行的所有东西都是进程 用户进程:由用户从终端运行的进程。 守护(daemon)进程:独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。(ps –auxw显示的TT域为?的)
  • 195. 管理进程和监视linux系统守护进程和用户进程的关系
  • 196. 管理进程和监视linux系统 进程Id(pid):指派给启动进程的唯一标识符 子进程:由其他进程所启动的进程 父进程:启动其他进程的进程 父进程id(ppid):创建了当前进程的父进程的pid
  • 197. 管理进程和监视linux系统
  • 198. 管理进程和监视linux系统作业和进程 作业(job):你可以使用jobid来唯一标识当前shell中运行的进程,shell为每一个从它启动的进程分配jobid Pid:进程的id在整个系统里是唯一定义的。 当更改进程的优先级时,使用pid 当需要对进程进行前后台切换时,使用jobid 可以用jobs命令来查看当前shell里运行的job
  • 199. 管理进程和监视linux系统管理前台和后台进程 linux允许在前台或者后台运行进程 bg:切换job到后台 fg:切换job到前台 直接加 &: command & 该进程就会直接从后台启动 演示xeyes如何从前后台切换
  • 200. 管理进程和监视linux系统如何指定进程的优先级 ps:察看当前所有运行中的所有进程的情况,它给出的是某一时刻静态的信息 ps a :显示所有终端上的进程,包括其他用户的 ps x :显示所有程序,不以终端机来区分 ps w:输出内容更详细 ps u:以面向用户的格式显示输出结果 ps f:可以显示进程之间的父子关系 ps aux 比较常用
  • 201. 管理进程和监视linux系统pstree:能够显示一个树形结构显示的进程列表 pstree –u:如果子进程和父进程的uid不一样,那么在子进程的后面显示用户名 pstree –p:显示进程pid pstree –up |less
  • 202. 管理进程和监视linux系统 nice值:nice值会影响进程的优先级别,nice值越低,该进程的优先级别就越高。 nice:让一个进程以指定的nice值运行(-20~19) nice -n value command renice:修改运行中的进程的Nice值 renice value pid
  • 203. 管理进程和监视linux系统top:ps和renice命令的功能组合,动态实时的提供系统信息 输入h查看帮助
  • 204. 管理进程和监视linux系统如何终止进程 kill:停止指定的进程 kill pid kill -9 pid :发送sigkill信号给内核,强制结束该进程 killall:停止由一个程序启动的所有进程 killall ping Killall -9 command:发送sigkill信号给内核,强制结束该程序的所有进程
  • 205. 管理进程和监视linux系统SYSTEM GUARD: 类似于windos任务管理器
  • 206. 管理进程和监视linux系统daemon和服务 什么是daemon: 工作在后台,负责系统的某种服务,接受并处理客户端请求的进程.比如 apache ,ldap server. daemon的工作方式: 监听在本地的一个tcp或者udp端口,接收并且处理来自客户端的请求,返回处理结果。
  • 207. 管理进程和监视linux系统分类 Signal-controlled daemons: 由事件激活Interval-controlled daemons:定时激活(cron)daemon分类
  • 208. 管理进程和监视linux系统管理daemon 脚本位置:etc/init.d目录,每个daemon在该目录下都存在一个脚本,直接在目录下即可执行。./quota start
  • 209. 管理进程和监视linux系统 还记得rcquota start? 在哪里都可以执行,不像/etc/init.d/quota start 要给出 完整路径 软链接位置:/usr/sbin/或者/sbin/目录下有很多rc开头的soft link直接指向/etc/init.d/下的daemon脚本,这两个路径都在 PATH变量中,所以shell会自动去搜索,不需要给出绝对路 径。
  • 210. 目标2管理内核
  • 211. 管理内核内核基础 内核(kernel):内核是整个操作系统的最底层,他负责了整个硬件的驱动,以及各种核心工具的提供,所有你想让操作系统作的事情,都必须要有kernel的支持。 内核模块(lib/modules):以模块(外挂)形式存在的驱动,可以在系统启动以后加载到内核中,以提供广泛的支持(新硬件,新功能),你也可以自己写一个支持某种功能的内核模块。 内核编译:Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,通过通读源代码,我们就可以了解系统的工作原理,同时根据自身对系统的需求,来定制自己的内核。
  • 212. 管理内核内核相关的文件和目录: /boot/vmlinuz:到内核的一个链接 /proc/sys/kernel:有关内核信息的目录 /proc/version:展示当前内核的版本 /usr/src/linux:内核源文件的目录
  • 213. 管理内核如何管理内核 模块: 查找内核模块:lsmod 列出内核中当前已经加载的模块。
  • 214. 查看模块信息:modinfo mouduls 装载内核模块: Insmod module modprobe module(自动考虑模块之间的依赖性关系) 卸载内核模块:rmmod module modprobe -r module
  • 215. 管理内核内核模块之间的依赖关系 /lib/modules/version/modules.dep:包含单个模块之间的依赖关系,在系统启动时自动创建;modprobe加载模块时会去查询该文件。 modprobe配置文件 /etc/modprobe.conf: install fred /sbin/modprobe barney alias my-mod really_long_modulename options ne irq=5
  • 216. 目标3修改系统设置
  • 217. 修改系统设置查看和更改系统设置/proc/sys
  • 218. 修改系统设置 使用powertweak修改内核和硬件参数 图形界面配置
  • 219. 目标4监视sles9系统
  • 220. 监视SLES 9系统 系统引导是否正常? 察看启动日志/var/log//boot.msg: dmesg|less 或者从yast->misc->view stat-up log来查看 内核版本是什么? uname -a 正在运行那些服务? netstat 查看系统端口和服务的运行情况(netstat -anp) 硬件信息: suseplugger 系统状况: xosview Kde system guard
  • 221. 目标5使用系统日志服务
  • 222. 使用系统日志服务 系统内部有很多服务,这些服务有自己的日志模块来记录自己的工作状态和一些信息,它们的日志记在各自指定的位置。 syslog daemon:提供日志服务的daemon,他接受来自各种服务的日志消息(需要他们支持syslog),根据syslog-ng.conf中的配置把相应的日志写在相应的位置。 集中管理各种服务产生的日志,统一写入磁盘空间。
  • 223. 使用系统日志服务
  • 224. 使用系统日志服务
  • 225. 使用系统日志服务客户端配置 1. 安装syslog-ng软件包 2. 修改配置文件 /etc/sysconfig/syslog /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.in 本例仅将messages日志同步到日志服务器如果想将其他的日志也同步到日志服务器仿照上三行更改红色部分即可。 3. 重启日志服务 rcsyslog restart
  • 226. 使用系统日志服务重要的日志文件 /etc/log目录 /etc/log/messages:大部分系统日志都在 如果实在没有任何日志产生,syslog进程20分钟会自动写一次-----mark-----。 (一般用tail –nf /var/log/messages来动态查看) N为你想看的记录条数
  • 227. 配置实验建议先备份原来的syslog配置文件(mv /etc/syslog /etc/syslogback) 把所有系统所有的news信息写到 /var/log/mynewslog 内核类高于Info的日志(包括Info)写到/var/log/mykernellog mail类除了debug级别日至,其他都记录到/var/log/mydebug 除了kern类和news类的所有日至,都写到/var/log/myalllog 日志测试工具:logger -p 类型.级别 “消息内容”
  • 228. 使用系统日志服务日志存在的问题各个服务和应用都会产生日志,日志文件日积月累, 日志文件太大,日志内容太多,而且管理员可能 并不需要从系统开始运行第一天起的所有日志, 难道要定时人工去清理过时或者过大的旧日志文件么? 怎么办?
  • 229. 使用系统日志服务logrotate可以周期性的对日志文件做轮换和一些处理什么是rotate
  • 230. 使用系统日志服务配置logrotate /etc/logrotate.conf:通用配置文件,带有一些预设参数。 /etc/logrotate.d/:目录下的所有文件都会加载进logrotate文件中,作为配置文件的一部分。你可以在该目录下面建立你自己的logrotate配置文件。
  • 231. 使用系统日志服务
  • 232. 使用系统日志服务/etc/logrotate.conf文件有一 些默认的配置
  • 233. 实验Demo:对/var/log/mylog作rotate 在logrotate.d目录下创建自己的logrotate配置文件my_logrotate 大小超过1K byte的时候会rotate一次 保存4个旧的日志文件 创建的旧日志文件的权限为rwx-r-x-r( root,root) 压缩旧文件
  • 234. 目标6计划作业
  • 235. 计划作业croncron:一个周期性自动执行计划任务的daemon 包含cron任务的文件叫做crontab,整个系统有一个crontab,每个用户也有一个crontab cron启动以后每分钟检查一次配置文件,察看是否在当前时间有被安排的任务需要被执行
  • 236. schedule jobs系统任务:按周期间隔分四类 四个目录可以放一些需要定时执行的任务
  • 237. schedule jobs/etc/crontab run-parts表示运行该目录下所有的命令 由/etc/crontab调用的脚本,如果在指定的时候内某任务无法执行(关机),将会在以后的时间内执行
  • 238. schedule jobs配置文件语法规则: */10 8-17 * * 1-6 ping 10.0.0.1 分钟,小时,某天,某月,星期几 0-59 0-23 1-31 1-12 0-7 *代表垓域为所有时间 ,代表或者:1 3,6 * * * command -代表时间段:20 8-12 * * * command /n代表每隔多久:*/5 * * * * command
  • 239. schedule jobs用户任务 是否有权限创建按自己的crontab? /var/spool/cron/deny /var/spool/cron/allow 默认只有deny文件存在,如果allow也存在,那么系统只 考虑allow;如果两个文件都没有,只有root能定义自己的任务。
  • 240. cron如何创建自己的crontab? crontab -e :开始编辑自己的crontab文件(和系统任务不同的是不需要指定用户) 察看自己的cron任务: crontab –l 删除自己的cron 任务: crontab –r 用户的cron任务文件存储在哪里? /var/spool/cron/tabs
  • 241. atat:定时运行一次任务 执行权限问题和cron一致 如何设置at任务? 如果你设置的时间小于当前时间,自动变成明天的任务 At的没有输出结果!任何的标准输出和错误输出都会发邮件给 执行用户
  • 242. 了解Linux系统的初始化Section 9
  • 243. 目标1介绍Linux装载过程
  • 244. sles启动过程linux启动过程
  • 245. 目标2GRUB引导装载程序
  • 246. grub引导管理器什么是引导管理器? 位于mbr中的用来引导文件系统中的操作系统的软件,它支持一系列的文件系统,所以在操作系统加载之前它能识别物理硬盘上的数据。 引导管理器的设计形式 第一阶段:安装在mbr里面,程序代码包含下一阶段的装载信息 第二阶段:通常包含是实际的引导管理软件,linux中位于/boot目录
  • 247. grub引导管理器什么是grub? grub 是一个多重启动管理器。grub是GRand Unified Bootloader的缩写,它支持多个文件系统,能够在启动的时候引导多种操作系统。Grub 是Sles默认的boot loader Grub 有自己的shell,可以启用启动那个管理器的交互控制: 在shell中直接输入grub 启动时选择界面中按ESC键,然后按c进入grub shell
  • 248. grub引导管理器Grub相关的文件: /etc/grub.conf:文件包含了grub shell 正确安装引导程序所需的参数和选项 /boot/grub/menu.lst:菜单文件,包含有关通过grub引导的操作系统的所有信息,grub启动的时候要去读这个文件。 /boot/grub/device.map:将grub的设备名影射为Linux的设备名 (hd0) /dev/hda
  • 249. 目标3管理运行级别
  • 250. 管理运行级别运行级别: 在Linux里面,我们用运行级别来定义系统当前的状态,系统启动时的运行级别由/etc/inittab文件中的initdefault值来决定。 init n
  • 251. 管理运行级别init配置文件(/etc/inittab):init进程会去读去Inittab来确定各个运行级别上的动作,应该做什么,应该启动哪些服务等。 inittab语法:id:runlevels:action:process id: 唯一的标识符,最长4个字节 runlevels:列出了需要执行action的运行级别列表 action: 描述init要执行的动作(respawn,wait,boot,bootwait,initdefault…..) process: 在这些运行级别下需要执行的进程。
  • 252. 管理运行级别init脚本:所有init用来启动和停止服务的脚本都在/etc/init.d目录下 比较重要的脚本 boot:由Init启动,它检查/etc/init.d/boot.d/目录中的所有脚本,启动所有以S开头的脚本链接。 boot.local:启动的时候执行,可以看作是boot的扩展,可以放一些自定义的脚本在boot.local 里面。 boot.setup:当从runlevel 1切换到任何其他的runlevel时会自动执行的脚本。 rc:当从一个runlevel切换到另一个runlevel时会执行的脚本,保证新runlevel下的初始化。
  • 253. 管理运行级别脚本参数
  • 254. 每一个runlevel在/etc/init.d下面都有一个相应的的rcx.d的子目录,里面放了该runlevel下的服务的“脚本”
  • 255. 管理运行级别Runlevel symbolic links!
  • 256. 管理运行级别每一个服务有2个symbolic link,形式为: Sxxservices KyyservicesK和S?还有xx?yy?
  • 257. 管理运行级别init 怎么决定启动和停止哪些进程?(切换到某一个runlevel时) init通过检查当前runlevel和新的runlevel对应的rc子目录里的脚本来决定到底应该怎么做 如果某一个服务在rccurrentrl.d目录下存在Kxx链接,在rcnewrl.d下面有Sxx链接,那么该服务保持原有状态不变 如果某一个服务在rccurrentrl.d目录下存在Kxx链接,在rcnewrl.d下面没有有Sxx链接,那么该服务要被停止 如果某一个服务在rccurrentrl.d目录下不存在Kxx链接,在rcnewrl.d下面有Sxx链接,那么该服务要被启动 其他:xx数字的大小,xx决定了启动和停止的先后关系(越小优先级越高)。
  • 258. 管理运行级别如何激活和反激活某个runlevel下的的服务? insserv servicesname ; insserv -r servicesname 用yast runlevel editor修改。 直接在相应runlevel的rc子目录下添加或删除相应服务的symbolic link. 修改脚本的头部内容
  • 259. 管理运行级别Runlevel相关命令: 察看自己当前的runlevel: runlevel 切换到其他的runlevel: init x 关机命令: Halt: poweroff: Rebooot: Shutdown – h time Shutdown –r time
  • 260. 目标4介绍启动shell脚本和服务
  • 261. 介绍启动shell脚本和服务启动脚本
  • 262. 介绍启动shell脚本和服务启动脚本目录结构 /etc/init.d:所有启动脚本所在目录 /etc/init.d/rcn.d:运行级别N的脚本(链接)目录
  • 263. 介绍启动shell脚本和服务启动脚本结构 常规部分 启动部分 停止部分 重启动部分 强制重新装载部分 重装载部分 状态部分
  • 264. 管理备份和恢复Section 10
  • 265. 目标1压缩
  • 266. 压缩tar : 最常用的一个存档命令,它可以创建一个存档文件或者直接把存档文件写到设备上。存档并不压缩,存档后绝对路径丢失,之剩下相对路径。 他会把你选择的目录下的所有内容都存档,该目录下所有的内容,保持该目录的结构。 查看存档内容:tar -tvf /etc/filename.tar tar -cvf /etc/filename.tar /home/kelvin (打包成tar文件) tar -xvf /etc/filename.tar -C /home (默认释放到当前目录) tar -czvf /etc/filename.tar.gz /home/kelvin(打包成tar.gz) tar –xzvf xx.tar.gz -C /home
  • 267. 压缩gzip:只能压缩文件,不能压缩目录。 gzip -c hello > hello.gz 源文件还在 gzip hello 源文件直接被压缩 gzip -d hello.gz 解压缩 gzip -r 目录名: 压缩该目录下的所有文件,包括子目录内的文件