




已阅读5页,还剩303页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SuSeLinuxAdministration 版权声明本电子教案由原作者胡芳正先生授权北京智信博锐信息咨询有限公司供其合作院校教学使用 其他未经原作者授权的任何行为均视为侵权行为 实验环境 第一节使用Linux台式机 Linux小常识 什么是Linux 什么是Linux操作系统 Linux不是一个操作系统 严格来讲 Linux只是一个操作系统中的内核 内核是什么 内核建立了计算机软件与硬件之间通讯的平台 内核提供系统服务 比如文件管理 虚拟内存 设备I O等 采用Linux作为内核的操作系统 Linux小常识 什么是LinuxDistribution 由于Linux的稳定性良好 并且可以在便宜的x86架构下的计算机平台运作 所以吸引了很多的开发商与自由软件的开发团队在Linux内核上开发相关应用软件 apache sendmail 将Linux内核 内核工具与应用软件集合起来 并加入自己公司系统管理模块与工具 yast suse 而打包出一套可以完整安装的操作系统 这个完整的Linux操作系统 我们就称他为distribution Linux的历史和发展 在计算科学的王国里 Stallman是个倍受尊崇的神话式英雄 他令人景仰的职业生涯是从大名鼎鼎的MIT人工智能实验室开始的 七十年代中后期 在那里他开发出了著名的Emacs编辑器 八十年代早期 商业软件公司从人工智能实验室吸引走了绝大多数优秀的程序员 并和他们签署了严格的保密合同 Stallman为此大大不爽 他认为软件和其它产品不同 在复制和修改方面 它不该受到任何限制 只有这样 才可能开发出更好更强的软件 RichardStallman Unix版权 RichardStallman创立GNU项目GNU工程开始於一九八四年 旨在发展一个类似Unix 且为自由软件的完整操作系统 GNU系统 GNU是由 GNU sNotUnix 所递回定义出的首字母缩写语 Stallman宣布GNU应当发音为Guh NOO 与canoe发音相同 以避免与gnu 非洲牛羚 发音与new相同 这个单词混淆现在 各种使用Linux作为内核的GNU操作系统正被广泛地使用著 虽然这些系统通常被简称为 Linux 但是它们应该更精确地被称为GNU Linux系统 Linux的历史和发展 Linus开始行动 到1991年 GNU计划已经开发出了许多工具软件 最受期盼的GnuC编译器已经出现 但还没有开发出免费的GNU操作系统 即使是MINIX也开始有了版权 需要购买才能得到源代码 而GNU的操作系统HURD一直在开发之中 但并不能在几年内完成 对于Linus来说 已经不能等待了 1991年初 Linus开始在一台386sx兼容微机上学习minix操作系统 通过学习 他逐渐不能满足minix系统的现有性能 并开始酝酿开发一个新的免费操作系统 Justahobby Linus开始行动 From torvalds klaava Helsinki FI LinusB Torvalds Newsgroups comp os minixSubject Whatwouldyouliketoseemostinminix Summary smallpollformynewoperatingsystemMessage ID Date 25Aug9120 57 08GMTOrganization UniversityofHelsinkiHelloeverybodyoutthereusingminix I mdoinga free operatingsystem justahobby won tbebigandprofessionallikegnu for386 486 ATclones Thishasbeenbrewingsinceapril andisstartingtogetready I dlikeanyfeedbackonthingspeoplelike dislikeinminix asmyOSresemblesitsomewhat samephysicallayoutofthefile system duetopracticalreasons amongotherthings Linus torvalds kruuna helsinki fi 发布在GPL Linux内核版本 Linux内核版本有两种 稳定版和开发版 稳定的内核具有工业级的强度 可以广泛地应用和部署 新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序 而开发版内核由于要试验各种解决方案 所以变化很快 这两种版本是相互关联 相互循环的 Linux内核的命名机制 num num num第一个数字是主版本号 第二个数字是次版本号 第三个数字是修订版本号 如果次版本号是偶数 那么该内核就是稳定版的 若是奇数 则是开发版的 头两个数字合在一齐可以描述内核系列 如稳定版的2 6 0 它是2 6版内核系列 最新的内核源代码可以在http www kernel org以tar包或者增量补丁的形式下载 SuSELinux版本差异 XWindow Xserver Xclient Tcp Ip sles9 XWindow KDE桌面环境 虚拟终端 Ctrl Alt Fn n 1 6 在linux系统中找到并使用帮助资源 第二节 目标1 访问和使用手册页 Manpages usr share man Manpages组成 Manpage分类 Manpages举例 whatiscommand man1unameman2unameman5hostsman8ifconfig 目标2 使用信息页 Infopages usr share infoInfo提供结构化的文档 层次分明能供从目录级别直接链接到相应的内容支持超级链接 目标3 发行说明和白皮书 发行说明 usr share doc release notes RELEASE NOTES en htmlRELEASE NOTES en rtf 技术白皮书 howto usr share doc howto en htmlhttp www tldp org usr share doc manual 目标4 基于gui的系统帮助 基于gui的系统帮助 Susehelpcenter在konqueror中使用帮助命令man commandinfo command 基于gui的系统帮助 使用Konqueror浏览器 目标5 在线资源 在线中文资源 www linuxsir orgwww linuxfans orghttp Linux vbird 3322 org 管理目录和文件 第三节 目标1 了解文件系统层次标准 文件系统的层次结构 逻辑结构 关于路径 文件系统层次标准 FHS 关于FHS 文件系统层次标准定义了 目录下应该有哪些目录 boot dev proc 它们应该包含什么内容 定义了2层结构 针对 下面第一层目录 比如 bin下面要放用户可执行的程序 etc下面放配置文件等针对 var和 usr下面的目录 比如 usr share放共享的资料 var log下面放系统的日志等 文件系统层次标准 FHS 根目录 文件系统树的最顶层 系统启动的时候第一个被mount的目录 所有开机时要设计的程序必须位于该分区中 etc bin dev lib sbin这5个目录必须和 目录在一个分区 不能单独设置分区 bin 重要的可执行程序 所有用户 包括管理员和普通用户 都可以执行的程序 比如ls mv rm mkdir rmdir gzip tar cat cp mount等 文件系统层次标准 FHS boot 对系统启动非常重要的一个目录 包含了bootloader boot grub 的信息和压缩内核vmlinuz dev 设备目录 所有的设备在linux里都是以文件的形式在该目录里面出现 应用程序通过对这个文件进行读写来访问设备 注意 dev null设备 文件系统层次标准 FHS etc 该目录下包含的系统的配置文件 所有应用程序的配置文件都在里面有相应的文件 etc apache2 etc samba home 非root用户默认的主目录 默认新创建的用户都在该目录下有一个以自己用户名命名的目录 里面有该用户的一些初始配置文件 文件系统层次标准 FHS lib 包含应用程序运行时需要调用的库文件和内核相关的模块 lib modules media 设备的mount点 像cdroom usb floppy等默认mount到该目录 文件系统层次标准 FHS opt 应用程序目录 root 管理员root的主目录 sbin 包含系统管理的重要程序 ifconfig 一般是让管理员用的 文件系统层次标准 FHS srv 服务的数据目录 像 srv www是apache的默认数据存放目录 tmp 临时区域 用来放临时文件 任何人可以读写该目录 了解文件系统层次标准 FHS usr 应用程序 图形界面文件 其他库 本地安装程序 文档 了解文件系统层次标准 FHS var 包含可以在运行时修改的文件 cache或者log 了解文件系统层次标准 FHS proc 保存提供给用户的进程信息 ps top 该目录不包含任何实际文件 sys 系统信息目录 以树形结构提供有关的硬件的总线 设备等信息 mnt 临时mount目录 目标2 识别linux系统中的文件类型 Linux中的文件类型 普通文件 用一个名称表示的一组连续的数据 rw 目录 目录是一种特殊的文件 它包含了一系列的实体 每一个实体包含了该目录下的一个对象的文件名和inode值 记录了目录下的所有对象的关联性 drw 设备文件 每一个在Linux里面的设备都由一个文件来表示 这个文件实际上是表示一个位于应用程序和硬件的连接 如果你要访问硬件 你的应用程序是通过对设备文件的读写来完成的 brw crw dev null是一个非常有用的字符设备文件 送入这个设备的所有东西都被忽略 Linux中的文件类型 链接 对文件系统中其他文件的引用 分softlink和hardlink两种 lrw Socket文件 网络通信用 两台计算机上的本地进程通过socket来交互数据 srw FIFO文件 管道设备文件 数据从一头流入 从另一头流出 单向数据交换 prw 通常用来压缩备份出来的海量数据 Linux中的文件类型 创建softlinkln sfilenamelinkname创建hardlinklnfilenamelinknamesoftlink和hardlink对比实验 Linux中的文件类型 文件名存储在上级目录的数据部分 目录的block中 inode文件的管理信息 权限 时间 所有者 BLOCK文件的内容数据 指向数据的指针 Linux中的文件类型 test file1 inode BLOCK test目录的内容数据 test file2 inode Linux中的文件类型 name1 BLOCK 文件内容数据 inode name2 HARDLINK HARDLINK 没有自己的inode可以理解成员文件的一个别名 lnfilenamelinkname可以用 ls li来查看hardlink文件的inode Linux中的文件类型 filename1 filename2 inode2 inode1 BLOCK1 存放一个文件路径 BLOCK2 SOFTLINK 有自己的inode 有自己的block block中存放的是一个文件的绝对路径 ln sfilenalinkname 目标3 更改目录并列出目录内容 简单目录操作命令 ls 显示目录内容和文件属性 l显示文件详细列表 a显示隐藏的文件 点开头的文件 t以上一次修改时间为排序标准 ls显示的时间为上一次修改时间 u显示的时间为上一次访问时间 F文件名后面会带一个字符表示该文件的类型 代表link 代表管道 i 显示每个文件的inode号 简单目录操作命令 cd 目录转换cd 进入用户主目录cd 进入上次访问的有效目录cd 进入上一级父目录 简单目录操作命令 pwd 显示当前工作目录pwd 显示所在的当前目录pwd p如果你在的位置是一个symbollink p显示当前的物理路径 目标4 创建和查看文件 创建和查看文件 touch 主要是一个修改时间戳的工具touch a修改上一次访问时间为当前时间touch m设置上一次的文件修改时间为当前时间touch m rfilename以该文件的时间为准touchfilename1filename2 新建一个大小为零字节的文件12 创建和查看文件 文件查看less 一页一页的看tail 只能看到该文件的结尾 默认显示最后10行tail f 实时更新文件结尾 如果有新的内容加进来的话 一般用来看实时变化的文件 比如log head 只能看到该文件的开头 默认显示10行cat 一次性显示所有内容 目标5 管理文件和目录 管理文件和目录 cp 复制文件或者目录cpsourcedestination r包括该目录和里面所有内容夹都拷贝cp r path direct1 pathdirect2 会复制目录本身 cp r path direct1 path direct2 不复制目录本身 只复制目录内容 cp r path direct1 path direct2 不复制目录本身 只复制非隐藏内容 管理文件和目录 mv 移动文件或者修改文件名 默认文件名一样就覆盖 i是否覆盖重名的文件 u只有比目标文件新才会覆盖该文件 mvsourcedestination 如果mv要操作成功 需要对上一级目录有可写权限 管理文件和目录 目录操作 目录新建和删除mkdir pdirectory1 directory2 能够创建多级子目录 mkdirdirectorynamermdir path directoryname 只有目录为空才能删 rm r path directoryname 删除整个目录 目标6 在linux上寻找文件 在Linux中寻找文件 寻找文件 kfind 图形工具 集成在konqueror中find findpathnamecriterionaction criterion为目标对象的属性 可以是 type 文件类型f d l name 文件名 等find etc nameapa typef 搜索 etc下apa开头的所有普通文件 find test namehell execgrepkk 在 test目录下搜索hell开头的文件 找到后在该文件内部查找kk字符串 在Linux中寻找文件 locate locatefilename相当于find namefilename 但是locate的搜索方法和find不一样 locate不在文件系统中搜索 而在一个特地为locate创建的数据库 var lib locatedb中搜索 速度更快 但是有一个问题 这个数据库并不是实时更新的 sles9每天定时更新该数据库 管理员也可以手工用updatedb来手工更新该数据库 在Linux中寻找文件 搜索命令路径which 显示某个被执行的命令的完整的路径 基于 PATH which apingtype 查看某个命令属于shell内置命令还是外部的命令 目标7 搜索文件内容 搜索文件的内容 使用grep 搜索指定文件中是否包含指定的字符串 而且打印出含有指定字符串的那一行 grepsearch patternfilename1filename2 search pattern由一个常规表达式组成egrep a z test helloegrep r b B ool test 搜索文件的内容 什么是常规表达式 regularexpression 由元字符 metacharacters 和字面值 literal 组成的字符串 metacharacters 不代表本身 有特殊含义的字符 比如 a z literal 就代表该字符本身 没有别的含义 处理Linuxshell和命令行 目标4 目标1 了解SHELL shell shell是什么 shell是用户和Linux内核之间的接口程序 他负责翻译和执行用户的命令 并且返回系统消息 Shell中执行命令的过程 有一些命令 比如改变工作目录命令cd 是包含在shell内部的 typecd 还有一些命令 例如拷贝命令cp和移动命令rm 是存在于文件系统中某个目录下的单独的程序 对用户而言 不必关心一个命令是建立在shell内部还是一个单独的程序 SHELL shell首先检查命令是否是内部命令 若不是再检查是否是一个应用程序然后shell在搜索路径 PATH里寻找这些应用程序 如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件 将会显示一条错误信息 如果能够成功找到命令 该内部命令或应用程序将被分解为系统调用并传给Linux内核 shell shell的类型 loginshell 顾名思义 是由login产生的shell 本地或者远程telnet ssh登录都会启动loginshell或者su psauxw看到的 bash都是loginshellinteractiveshell 是指能够显示一个提示符让用户输入命令的shell non interactiveshell 不让用户输入命令 比如在shell脚本中 Suse默认用bash bourneagainshell shell shell的文件名限制 文件名中如果包含特殊字符 分号 空格 美元符号 这些字符对shell来讲有特殊含义 需要用 把它们屏蔽成一个普通的字符 shell的文件名补齐功能 只需写出文件的前几个字母 按tab键 shell自动补齐 目标2 在命令行执行命令 在命令行执行命令 历史纪录功能history切换为根用户su 目标3 了解常用的命令行任务 了解常用命令行任务 变量shell变量 shell变量用户控制当前shell自身的行为环境变量 环境变量控制从shell中启动的程序的行为 PATH HOME USER 别名 别名 alias 定义别名可以为命令及其参数创建快捷方式 或者创建完全不同的命令查看alias 设置alias 别名 删除alias 注意 如果是用alias设置的命令别名 只能在当前的shell中可以用 如果要永久有效 那么要写入 alias文件中 每次shell启动时候回去读取该文件 是通过 bashrc文件读取进来的 目标4 了解命令语法和特殊字符 shell命令语法和特殊字符 使用搜索模式的扩展名 一次性操作一组文件 shell命令语法和特殊字符 防止shell解释特殊字符 反斜线只能保护一个特殊字符不被shell解释 双引号能够保护除了 之外的所有字符 屏蔽所有 目标5 使用管道和重定向 管道和重定向 Linux三个标准通道 stdin 标准输入通道 默认是键盘 标识符为0stdout 标准输出通道 默认是显示器 标识符为1sterr 错误输出通道 默认是显示器 标识符为2 管道和重定向 管道和重定向 如何重定向标准通道 不能在两个进程之间用 管道和重定向 管道和重定向 区分以下两种情况 1 ls opt recipe2 11 dirlist2 ls opt recipe1 dirlist2 1 结果只有标准输出被定向到文件dirlist 因为在此之前 标准错误输出2已经被复制到了标准输出1上 标准输出1被定向到文件dirlist 标准错误输出2拷贝了 1 标准输出1 这样实际标准错误输出2也被定向到了dirlist 更多资料在manbash 管道和重定向 管道 管道可以把一个命令的输出用作另一个命令的输入 ls l etc lessLs l etc grepapa 管道和重定向 如何让一个命令的输出既显示在屏幕又写到文件中 tee命令 从标准的输入读取数据 并且写入标准输出和一个文件中ls lteeoutput 输出到屏幕 并且写入output文件 管道和重定向 如何重定向几个连续命令的输出 管道和重定向 命令触发命令 目标6 VI编辑器 vi编辑器 vi是目前最常用的一个命令行文本编辑器 它是一个面向模式的编辑器 启动以后直接进入的是命令模式 这时候所有你的输入都会被认为是命令 如果要用vi对文本进行编辑的话 你需要切换到相应的模式下 i inster 这个模式下 vi接受输入作为文本 按esc回到命令模式del 这个模式下 vi删除光标所在的字符 按esc回到命令模式 Vi编辑器 在命令模式下输入 会直接进入命令行模式 q 强制退出vi 不保存当前修改 wq 保存当前内容 并且退出vidd 命令模式下 把当前光标所在的那一行剪切到缓存中yy 命令模式下 把当前光标所在的那一行拷贝到缓存中p P 命令模式下 把缓存中的内容拷贝到光标所在行的下面 上面一行中 了解Linux用户 组和文件权限 Section5 目标1 访问和使用yast 了解linux用户 组和权限 访问和使用yastYAST yetanothersetuptool yast是suselinux特有的一个配置 安装 管理工具 yast启动方式 yast2yastyast lyastmodule nameSuSeconfig SuSEconfig根据 etc sysconfig目录下的各个文件的变量设置来配置最终的系统 它位于yast的后端 激活用yast修改的配置 目标2 基本linux用户安全功能 了解linux用户 组和权限 文件系统安全性组件 用户 系统访问控制的一个最小单位 在Linux里面用户是私有的帐号组 组是用户的一个集合 当一个用户被创建的时候 他就会被分配个某些预定义的组 一个用户至少要属于一个组 但是它也可以属于很多组 但是只有一个组是primary组 所有权 文件或者文件夹的创建者默认就会成为该文件和文件夹的所有者 只有文件的所有者才能修改文件的属性 权限 所有者等 权限 权限决定了用户对文件访问的程度 了解linux用户 组和权限 用户和组 用户ID和组ID 目标4 管理并保护Linux用户环境 了解linux用户 组和权限 Finger 用户信息察看工具 了解linux用户 组和权限 普通用户VS系统用户 普通用户 是我们为了维护一个安全的系统环境而创建 我们创建他是让该用户通过用户名密码登录到linux系统系统用户 这类用户通常是在安装的过程中产生的 他一般被一些服务 应用程序所使用 让这些服务有权限去访问一些数据 系统用户一般是有rpm包中的脚本来完成的 比如apache2创建的系统用户wwwrun 了解linux用户 组和权限 publicgroupschemaVSprivategroupschema 创建一个用户的时候 该用户会默认被分配到一个primary组 这里有两种方式 1 privategroupschema 每一个创建的用户会同时创建一个和用户名一样的组名 该用户属于改组 每个用户都分配给一个他能控制的组2 publicgroupschema 这种模式下 每一个创建的用户都会被分配到一个通用的公共的组 由系统管理员来管理 了解linux用户 组和权限 用户和组的配置文件 etc passwd 用户帐号相关信息 了解linux用户 组和权限 了解linux用户 组和权限 etc shadow 存储加密的用户密码和密码过期的一些信息 默认用des加密 了解linux用户 组和权限 etc group 组名 密码 如果是空 不需要密码组id 组成员列表 只显示以改组作为secondly组的用户帐号 组的密码有什么用 管理并保护linux用户环境 如何以root用户的身份执行管理任务su 用户id切换命令su user1 切换到user1后 再启动loginshell 不指定username 默认切换到root用户 su user1 c command 切换以后再执行一个command命令 管理并保护linux用户环境 newgrp sg 修改自己的有效组id primarygroup 一个用户可以属于很多个组 但是只有一个组是有效组 primary组 newgrpnewgroupnamesgnewgroupname只有目标组设置了密码 而且需要做primary组切换的用户不属于目标组 切换时才需要输入目标组的密码 注意 如果目标组没有密码 那么只有组成员能够作这个修改 如果有密码 那么知道密码的用户都可以 从KDE切换用户 ALT F2 sudo委托管理任务 有时候 管理员希望分担一些管理任务给普通用户 但是呢 又不想让他们每次执行任务的时候都用我的root帐号 那我还得告诉每个人root的密码 岂不是失去了安全的意义 比如你要休假了 Sudo可以让一个普通用户能够执行一个平时没有权限执行的管理任务 比如sudoshutdown hnow Sudo怎么做到的 那是不是所有的普通用户都能通过sudo为所欲为呢 sudo它是通过读取一个配置文件 etc sudoers来判断当前的用户是否有权限通过sudo来执行这个命令 管理员可以通过visudo命令来编辑这个文件 sudo委托管理任务 sudo委托管理任务 授权普通用户执行部分管理任务 配置文件 etc sudoers sudoers配置文件由两种类型的实体组成 别名 基本变量 和用户说明 userspecification 定义了谁能运行什么 语法规则 基于巴科斯 诺尔范式 ExtendedBackus NaurForm EBNF 每一条规则在ebnf里面都是一个Productionrule 每一个 productionrule 都和其它的 productionrule 有关联 这样就构成了这种语言的语法 用户说明规则语法 用户 组主机 username 命令1 命令2 Listofwhichusersmayexecutewhat sudo委托管理任务 sles9默认sudoers配置 usersALL ALL ALL 允许所有用户可以以任何用户的身份 默认是root 在所有的主机上执行所有的命令Defaultstargetpw 要求输入管理员密码 如果屏蔽则要求输入实际用户的密码 sudo委托管理任务 注意 用户 组主机 username 命令1 命令2 如果命令是一个文件名 那么用户可以随意携带任何参数执行该命令如果命令是一个目录地址 那么用户可以执行该目录下所有的命令 不包括子目录 如果想让用户只能携带某个参数执行命令 那么你需要在命令后面给出具体的参数如果不想让用户执行命令的时候携带参数 那么命令后面接 主机 username NOPASSWD 命令1 命令2 sudo委托管理任务 管理并保护linux用户环境 Sudo实验 新建两个用户user1 111111 user2 222222 user3 333333 su user1passwduser2 看一下是什么结果 sudopasswduser2 会提示输入密码 默认管理员密码 管理并保护linux用户环境 visudo编辑 etc sudoers文件 屏蔽defaultstargetpw屏蔽 usersall 添加user1all usr bin passwduser2添加user2all NOPASSWD usr bin passwduser1添加user3all NOPASSWD usr bin passwd 管理并保护linux用户环境 演示新用户帐号默认值 yast2users或者直接修改 etc default useradd 配置安全性设置口令设置引导设置登陆设置用户创建设置文件权限 目标5 使用权限保护文件和目录 使用权限保护文件和目录 权限和权限值 读 r 读取文件的内容 列出目录里的对象 写 w 允许修改文件 在目录里面新建或者删除文件 执行 x 允许执行文件 允许进入目录里 Root不受限制 使用权限保护文件和目录 数字权限值 除了用字母rwx来表示权限 还可以使用3位数字来表达文件或目录的权限 每个数字是相应对象指派的以下三个值的和 读 4写 2执行 1 使用权限保护文件和目录 如何从命令行设置权限 chmod 修改文件或者目录的权限 符号或者数字 chmod数字权限值filename 使用权限保护文件和目录 chown 修改文件或目录的所有者和组属性chownnewowern newgroupfilename 和 都可以 但是中间不能有空格 同时修改filename的所有者属性和组属性chownnewowernfilename 只修改所有者属性 Chownnewowern filename 修改所有者属性 同时修改组属性为该所有者的primary组 chown newgroupfilename 只修改组属性为该组 使用权限保护文件和目录 如何从gui界面设置权限 使用权限保护文件和目录 特殊权限位 使用权限保护文件和目录 使用权限保护文件和目录 用户新建文件或者目录的系统初始权限是什么 能不能修改这个默认的初始权限呢 系统默认创建文件的权限 mod 是666 默认创建目录的权限 mod 是777 umask 一个掩码实际创建的文件和目录的权限 mod权限 mod和umask共有的权限 使用权限保护文件和目录 目标6 使用ACL进行高级访问控制 ACL高级访问控制 什么是ACL accesscontrollistACL扩展了传统的文件权限概念 他允许向单个用户或者组分配权限 重要的acl术语 访问acl 各种文件系统对象的用户和组的访问权限由访问acl来决定 默认acl 默认acl只能应用于目录 它决定了文件系统对象在创建时从父目录继承的权限 文件继承它作为自己的访问acl 子目录继承它为自己的访问acl和默认acl acl实体 每一个acl都是由一系列的acl实体组成 一条acl实体就是一条记录 ACL需要文件系统的支持 ACL高级访问控制 ACL类型最小ACL 和传统的权限概念一样 该ACL也只含有所有者 所属组和其他用户的权限 扩展ACL 扩展acl比较丰富 它可以包括mask nameduser namedgroup ACL高级访问控制 ACL实体 ACL高级访问控制 MASK的作用 mask会影响nameduser namegroup group实体的权限 实际有效权限为二者逻辑与的结果 ACL高级访问控制 ACL和权限的映射关系 当你设置了acl以后 acl中权限会映射到linux标准的权限位 而且是双向 ACL高级访问控制 ACL高级访问控制 ACL命令行工具getfacl 显示文件或者目录的acl 即使该文件系统不支持acl 也会显示该对象的权限位 setfacl 更改和创建文件或者目录的acl m添加或者修改对象的acl实体 x删除对象的acl实体 d设置defaultacl b删除所有扩展acl实体 ACL高级访问控制 命令行下如何操作acl getfaclfile1file2file3 setfacl mu rwx u username rx g rw g groupname rwx o rwx m rwxfile1file2 能不能在不支持acl的文件系统中执行setfacl 能 但只能对文件的权限位进行修改 mansetfacl ACL高级访问控制 如果是多个命名用户和命名组 能否在一个语句中写完呢 你可以在 m后面加上所有的实体 只要每个实体之间用 号隔开即可 能否一次配置多个对象的acl 只要多个对象以空格符分隔开即可怎么判断一个文件系统是否启用了acl less etc mtab ACL高级访问控制 如何用访问acl配置目录 getfaclmydir 最小acl和权限位之间的映射 ACL高级访问控制 谁设的mask ACL高级访问控制 ls ldmydirmask是自动出现的 1 创建acl时如果涉及到命名用户和命名组但没有指定mask的值 那么它的值会自动成置成group的值2 如果setfacl没有带 n参数 那么mask的值还会进行一次recaculate 最后mask的值为该acl内受mask影响的所有对象的权限值的集合 Acl有效性规则 mansetfacl ACL高级访问控制 双向映射 ACL高级访问控制 ACL高级访问控制 如何使用默认acl配置目录默认acl对文件和子目录的影响 子目录继承父目录的默认acl作为自己的默认acl和访问acl文件只继承父目录的默认acl作为自己的访问acl默认acl对权限位设置的影响 注意 是权限位的影响 如果父目录没有defaultacl 该目录下对象的权限为mode umask mod如果父目录存在defaultacl 该目录下对象的权限位不考虑umask 而是设置成为mode和defaultacl的重叠部分 ACL高级访问控制 如何使用默认acl配置目录 ACL高级访问控制 defaultacl完整性规则 如果创建的defaultacl中没有指定owner group others实体 系统会自动从当前访问acl中拷贝过来mask自动计算方法和accessacl的一样 ACL高级访问控制 defaultacl对子目录的影响 ACL高级访问控制 defaultacl对文件的影响 ACL高级访问控制 ACL检查算法 manacl 1 所有者2 命名用户3 组 用户任何组id 4 其他 ACL高级访问控制 应用程序对acl的处理 支持acl 操作以后acl记录不变cpmv 不支持acl 操作以后acl记录会丢失konqueror 目标7 了解Linux用户鉴定 了解linux用户鉴定 应用程序如何去鉴定一个用户的合法性 早先时期 需要对用户进行验证的应用程序 必须把代码和某种验证机制编译到一起 例如 ftp服务器使用密码对用户进行校验 就要在程序中编译进这种认证机制 鉴定手法越来越多 应用程序怎么办 智能卡 指纹 密钥 了解linux用户鉴定 什么是pam Linux PAM PluggableAuthenticationModulesforLinux 基于Linux的插入式验证模块 是一组共享库 使用这些模块 系统管理者可以自由选择应用程序使用的验证机制 也就是说 勿需重新编译应用程序就可以切换应用程序使用的验证机制 了解linux用户鉴定 pam是怎么工作的 了解linux用户鉴定 一个有趣的故事 为了描述Linux PAM的灵活性 我们可以假想一种情况 一个系统管理者 父母 希望提高用户 他们的子女 的数学能力 他 她就可以通过一个孩子们非常喜欢的游戏 Shoot emupgame 达成上述目的 当然前提是这个游戏能够使用PAM提供的验证机制 验证可以设置 每次孩子们要玩游戏时 都需要回答出一组小于12的随机数的乘积 这样孩子们每次玩游戏之前都可以练习乘法运算 随着他们的成长 可以增加数字的大小 了解linux用户鉴定 是否可以把PAM用户于任何需要验证的程序 要看程序是否支持pam我怎样才能区分程序是否使用了PAM验证 使用ldd命令 打印出每个应用程序用到的共享库 如果这个程序的使用的动态连接库没有libpam和libpam misc 那它肯定不使用PAM验证 了解linux用户鉴定 系统管理员通过PAM配置文件来制定认证策略 即指定什么服务该采用什么样的认证方法 应用程序开发者通过在服务程序中使用PAMAPI而实现对认证方法的调用 而PAM服务模块 servicemodule 的开发者则利用PAMSPI ServiceModuleAPI 来编写认证模块 主要是引出一些函数pam sm xxxx 供libpam调用 将不同的认证机制 比如传统的UNIX认证方法 Kerberos等 加入到系统中 PAM核心库 libpam 则读取配置文件 以此为根据将服务程序和相应的认证方法联系起来 了解linux用户鉴定 PAM支持的四种管理界面 1 认证管理 authenticationmanagement 主要是接受用户名和密码 进而对该用户的密码进行认证 并负责设置用户的一些信息 2 帐户管理 accountmanagement 主要是检查帐户是否被允许登录系统 帐号是否已经过期 帐号的登录是否有时间段的限制等等 3 密码管理 passwordmanagement 主要是用来修改用户的密码 4 会话管理 sessionmanagement 主要是提供对会话的管理和记账 accounting 这类模块是处理为用户提供服务之前 后需要做的一些事情 包括 记录打开 关闭交换数据的信息 监视目录等 了解linux用户鉴定 PAM的文件 usr lib libpam so PAM核心库 etc pam conf或者 etc pam d 目录下面包含了使用pam认证的应用程序的配置文件 etc pam d other 默认的配置文件 usr lib security pam so 可动态加载的PAMservicemodule etc pam confservice namemodule typecontrol flagmodule pathargumentsservice 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表明本模块是可选的 它的成功与否一般不会对身份认证起关键作用 了解linux用户鉴定 下面是ftpd服务利用PAM模块进行用户认证的三个步骤 首先用pam ftp模块检查当前用户是否为匿名用户 如果是匿名用户 则sufficient控制标志表明无需再进行后面的认证步骤 直接通过认证 否则继续使用pam unix auth模块来进行标准的unix认证 即用 etc passwd和 etc shadow进行认证 通过了pam unix auth模块的认证之后 还要继续用pam listfile模块来检查该用户是否出现在文件 etc ftpusers中 ftpdauthsufficient usr lib security pam ftp softpdauthrequired usr lib security pam unix auth souse first passftpdauthrequired usr lib security pam listfile so 管理Linux文件系统 Section6 目标1 选择Linux文件系统 管理Linux文件系统 什么是文件系统 文件系统是在一个磁盘 包括光盘 软盘 闪盘及其它存储设备 或分区组织文件的方法 比如ntfs fat32 ext2 ext3文件系统的创建 这个过程是存储设备建立文件系统的过程 一般也被称为格式化或初始化 通过一些初始化工具来进行 一般的情况下每个类型的操作系统都有这方面的工具 linux下有mkfs 挂载 mount 文件系统只有挂载才能使用 Unix类的操作系统如此 Windows也是一样 在Windows更直观一些 具体内部机制我们不太了解 但Unix类的操作系统是通过mount进行的 挂载文件系统时要有挂载点 管理Linux文件系统 选择Linux文件系统 linux操作系统一个主要任务就是通过创建和管理文件系统来提供存储服务 传统的文件系统 不记录数据和元数据到日志 ext2minixMS DOS VFAT FAT32 HPFS日志文件系统 ext3ReiserFsNTFSJFSXFSVeritas sVxfs 管理Linux文件系统 VFS 管理Linux文件系统 linux文件系统格式 数据和管理信息分开 什么是inode indexnode informatinnode 存储出文件内容以外有关该文件的所有信息 权限 修改和访问时间 文件类型 block指针等 的节点 每个节点128字节 什么是block 文件和目录的实际数据内容是存储在block里面 Block是文件系统中最小的数据存储单位 物理磁盘的最小存储单位是sector 管理Linux文件系统 文件名保存在哪里 目录 目录的数据部分 存储在block 包含了一个列表 这个列表表达该目录下的文件 子目录的inode号和名称的关联 管理Linux文件系统 读取 目录的block 获取 home的的inode 访问 home test文件的流程 根据 home的inode 得到 home的block指针 读取 home的block 得到test文件的inode 根据test的inode 得到test的block指针 最后从test的block中读取test文件的内容 管理Linux文件系统 管理Linux文件系统 ext2fs文件系统格式ext2在建立时候就定死了inode数目和block数目ext2允许的block大小为1024 2048 4096byte一个文件系统所能容纳的最大文件数 取决与inode的数量 一个inode占128个字节block的空间占用 不足一个算一个 超出一点算2个 inode数量超出block数量有没有意义 多出的Inode没有用 當block大小越小 而inode數量越多 則可利用的空間越多 但是大檔案寫入的效率較差 這種情況適合檔案數量多 但是檔案容量小的系統 例如BBS或者是新聞群組 News 這方面服務的系統 當Block大小越大 而inode數量越少時 大檔案寫入的效率較佳 但是可能浪費的硬碟空間較多 這種狀況則比較適合檔案容量較大的系統 管理Linux文件系统 管理Linux文件系统 Reiserfs Block固定为4096byteInode只在实际需要时才生成采用平衡的二进制树算法 速度更快文件存储更有效 只保留实际需要空间 不是整个block 多个小文件可能在一个block中 目标2 配置linux文件系统分区 配置Linux分区 分区类型 mbr mainbootrecorder 位于硬盘的零磁轨上 开始时需要读取 一共512字节 包括系统引导程序和硬盘分区表两部分 分区表只有64字节 最多可以有4条分区记录 主分区 指派给特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度储藏室出售及仓储配送与售后服务合同
- 2025版企业合规风险防范法律顾问聘用合同
- 2025年度文化产业融资租赁担保合同范本
- 红酒知识与健康培训课件
- 2025水利管道工程合同条款及格式
- 红酒白酒香槟知识培训课件
- 2025保温材料采购协议
- 会议纪要标准化撰写模板清晰明了
- 专业咨询公司与房产开发商合作开发办公区协议
- 人工智能助手产品合作协议
- 实验室设备管理员培训
- 2025年四川省成都市中考生物真题(解析版)
- 保险执业登记管理制度
- 2025-2030中国电子墨水屏幕行业市场发展趋势与前景展望战略分析研究报告
- 口腔数字化技术课件
- 2025年安徽省农业职业技能大赛(动物检疫检验员)备赛试题库(含答案)
- 2024年重庆市中考英语试卷(A卷)(含答案与解析)
- 种子购买协议合同书
- 《小学美术开学第一课》课件
- 汽车行业售后
- 直播电商数据分析教学计划
评论
0/150
提交评论