根据RH033课程整理

lecture 14

12月27号整理

用户:获取系统资源权限的集合。

管理员:UID 0

系统用户:UID 1-499

普通用户:UID >500

authentication 认证

authorization 授权

组: GID 容器 权限的集合

私有组:只有一个用户,组名和用户名是一样的,ID号也一样。

公共组:一个组中可能有多个用户。

系统组 :专门存储系统用户

AUTHENTICATION 认证

AUTHORIZATION 授权

/etc/passwd 冒号隔开 七个字段

clip_p_w_picpath002

   1   2  3 4    5            6                   7

1 用户名

2 密码占位符,有密码但是加密的,在/etc/shadow中

3 UID

clip_p_w_picpath004clip_p_w_picpath006

4 GID 与/etc/group 有关

5 使用信息说明栏

6 用户家目录

7 用户默认shell

/etc/shadow 存放用户密码

使用md5,salt加密

单项加密:algo,定长加密,不可逆 ,特征码,雪崩效应

雪崩效应: 在任何时候,输入两段数据,在这两端数据中只要有一个二进制位不一样,则输出的结果中至少有一半都不一样

MD5 定长输出:128位 麻省理工学院 linux中广泛采用

sha1 160位 哈希算法

clip_p_w_picpath008

1 账号名称 必须要与/etc/passwd相同

2 密码 使用函数加密后的密码,如果第一个字符为“*”,“!”表示此账号不能使用

3 最近改动密码的日期,以unix元年为始

4 密码不可被改动的天数

5 密码需要重新设置的天数,默认9999,即不需要重新设置

6 密码变更前的警告期限

7 密码过期后还能再使用的天数

8 账号失效的日期

9 保留位

clip_p_w_picpath010

clip_p_w_picpath012

clip_p_w_picpath014

useradd :添加一个用户

-u UID 直接指定一个特定的UID给这个账号

-g GID 基本组

-G groups 附加组

-s shell 指定shell类型

-M 强制 不为此用户创建家目录

-m 强制 要建立使用者家目录

-c 说明信息

-d 指定某个目录成为用户家目录,而不使用默认家目录

clip_p_w_picpath016

chsh user2 改变用户的shell类型

-l 列出当前系统上可用的shell

-s 设定修改自己的shell

usermod

-u 改UID

–g 改GID

-G 修改使用者支持的附加组 –a 追加进去 二者通常一起用

-s 修改shell

-d 修改账号的家目录 –m 将原家目录的内容一同迁移到新家目录 二者通常一起用

-l 改变用户的login name

-c 改变用户的说明信息

-e 修改过期时间

-f 修改密码过期后还能再使用的天数

-L 将密码锁定

-U 将用户解锁 将/etc/shadow密码栏中的!去掉

passwd

-l 锁定账号

-u 将锁定的账号解锁

--stdin 将一串字符直接设定为密码

-n 密码不可被改动的天数

-x 密码需要重新设置的天数,即最长天数

-w 密码变更前的警告期限

-S 显示目前username的相关信息

clip_p_w_picpath018

/etc/group 文件

clip_p_w_picpath020

1 群组名称

2 群组密码

3 GID

4 支持的账号名称,账号以此组为附加组,多个账号之间用逗号隔开

/etc/gshadow 文件

clip_p_w_picpath022

1 群组名称

2 密码栏,开头为!表示无法登录

3 群组管理员的账号

4 该群组所属的账号 与(/etc/group相同)

groupadd

-g GID 用来直接给于某个GID

-r grp_name 建立系统群组

groupmod

-g 修改既有的GID数字;

-n 修改既有的GID名称

gpasswd 给组设一个密码

newgrp 临时性切换自己的组到另外一个组,给组加一个密码,提示用户输入

clip_p_w_picpath024

userdel 删除一个用户

-r 连同使用者家目录一起删除

使用者身份切换

su

- 如果执行 su - 时,表示该使用者想要变换身份成为root,且使用root的环境设定参数档,如/root/.bash_profile等

-l 后面可以跟使用者

过去一段时间内曾经成功登录系统的用户

/var/log/wtmp<------list –n 最近10次的登录

过去一段时间内尝试登录系统但没有成功的用户

/var/log/btmp <-------lastb –n 最近10次尝试登录但没有登录成功的用户

umask 设置仅对当前shell生效

SUID 任何一个文件置了SUID位,当一个用户去执行这个文件时,默认的执行者身份不是这个用户,而是以文件属主的身份去执行。 chmod u+s file

SGID 当一个用户去执行这个文件时,默认的执行者身份不是这个用户,而是以文件属组的身份去执行。 chmod g+s file

sticky 粘滞位,通常对目录来讲的,尤其是public dir 全局可写,

意思就是这个目录是公共的,任何人都可以写,但只能删除自己写入的内容。

chmod o+t file

chmod (1/2/4)755 file

Lecture 15

文件系统:用于实现有效高效管理文件的机制。

windows 常用文件系统:fat32,NTFS

linux支持类型(靠虚拟文件系统(VFS)来支持):

fat32,NTFS,(windows);

jfs(IBM),xfs(SGI),(UNIX);

reiserfs;

iso9660;

网络文件系统:NFS,SMBFS,

集群文件系统:GFS(全局文件系统),GFS2,OCFS(oracle)

常用类型:ext2,ext3(RHEL5),ext4(RHEL6默认)

VFS:虚拟文件系统,相当于一个接口,将不同文件系统转换成磁盘上真正使用的文件系统。

ext3 比ext2多了一个日志功能和acl(访问控制列表)功能。

格式化的过程就是建立文件系统的过程。

Boot

Block

Block Group 0

Block Group 1

. . . . .

Block Group n

 

 

Super Block

GDT

Block

Bitmap

Inode

Bitmap

Inode

Table

Data blocks

Boot Block:引导块,引导此分区上系统的一些相关信息。

super Block超级块:放的整个文件系统的信息,包括数据块的个数,大小,一共多少个块组,每个块组中包含多少个数据块等等。属于全局描述信息,描述整个分区的信息。

GDT块组描述符:描述这一块组的信息。

Block Bitmap:按位图的方式来存储数据块是否可用。0表示可用,1表示不可用。是实现快速决定一个大容量空间中的文件系统的块是否可用的机制。

inode Bitmap:用来存储当前磁盘分区上一共有多少个inode号,以及使用与否。

clip_p_w_picpath028

混合索引方式(《计算机操作系统223页》)

1) 直接地址

为提高对文件的检索速度,在索引节点中可设置10个直接地址项,即用iaddr(0)~iaddr(9)来存放直接地址。换言之,在这里的每项中所存放的是该文件数据项所在盘快的盘块号。假设每个盘块大小为4KB时,当文件不大于40KB时,便可直接从索引节点中读出该文件的全部盘块号。

2) 一次间接地址

对于大中型文件而言,只采用直接地址是不现实的。为此,可 再利用索引节点中的地址项iaddr(10)来提供一次间接寻址。这种方式的实质就是一级索引分配方式。图中的一次间址块也就是索引块,文件系统分配给文件的多个盘块号计入其中。在一次间址块中可存放1K个盘块号,因为允许文件长达4MB。

3) 多次间接地址

当文件大于4MB+40KB时(一次间址与10个直接地址项),系统还须采用二次间址分配方式。这时,用地址项iaddr(11)提供二次间接地址。该方式的实质是两级索引分配方式。系统此时是在二次间址块中记入所有一次间址块的盘号。在采用二次间址方式时,文件最大长度可达到4GB。同理,地址项iaddr(12)作为三次间接地址,所允许的文件最大长度可达到4TB。

目录仅仅是一种寻址路径而已。是一种特殊的文件,也需要一个inode的号指向一个磁盘块。通常一个目录只占一个磁盘块。大小为4096k。块中的内容如图所示:

clip_p_w_picpath030

块里边存放的是一个表,表里是这个目录下所有的文件的名字及inode号。每一行(条目)用以指定目录中一个文件的属性。每一个目录都有两个特殊文件:“.” 目录自身 ,“ . .”当前目录的父目录。

一个partition(filesystem)所能容许的最大文件数,与inode的数量有关,因为一个文件至少要占用一个inode。

根是一种特殊的文件系统,称之为“rootfs”,是自引用的。通过根的inode号,找到根所存储的磁盘块。在这个块下存放的是根下每个目录下所存储的文件名和inode所对应的关系。

读取一个文件的简单流程(以/etc/crontab为例):——《鸟哥的Linux私房菜》

clip_p_w_picpath032

1.操作系统根据根目录(/)的相关资料取得/etc这个目录所在的inode,并前往读取/etc/这个目录的所有相关属性;

2.根据/etc的inode的资料,可取得/etc这个目录底下所有的文件的相关数据时放置在哪一个Block中,并前往该block读取文件的相关内容;

3.由以上步骤的block可知道crontab这个文件的inode所在地,并前往该inode;

4.由以上步骤的inode当中,可取得crontab这个文件的所有属性,并且可前往由inode所指向的block区域,顺利的取得crontab的文件内容。

链接:通过多条路径找到同一个文件。类似于windows下的“快捷方式”。

硬链接:两个文件名指向同一个inode。但是两个文件必须在同一个磁盘空间。如果其中一条路径被删除,只要还有其他路径能指向这个inode,那么这个文件依然存在。

硬链接文件本身也是普通文件。

clip_p_w_picpath034

ls –l 第一个数字显示的是硬链接的次数。每一个目录都是2,因为每个目录被自身和父目录所引用。

软链接:类型为“l”,也成为符号链接。创建一个软链接就相当于创建了一个新文件。有自己的inode号。在inode所指向的磁盘块上放的是所链接的文件的路径。事实上,在创建一个软链接时,如果路径非常短的话就直接放在inode的内部,如果路径足够长,才从新开辟一个磁盘块去存放路径。(可以跨分区,可以指向目录),一旦源文件被删除,那么链接也就失效了。

使用命令:ln 创建一个硬链接

-f 如果目标文件存在,就主动将目标文件直接移除后再建立

-s 创建一个软链接

创建一个硬链接:

clip_p_w_picpath036

clip_p_w_picpath038

创建一个软链接:

clip_p_w_picpath040

clip_p_w_picpath043

文件大小指的是源文件路径字符的长度。clip_p_w_picpath041

小常识:我们平时删除文件通常只是将文件的inode号给删除了,文件依然存在。

特殊文件:b 块设备 c 字符设备 不占用空间大小

第一个数字表示主设备号:指的是设备类型。第二个数字表示次设备号。

clip_p_w_picpath045

检查磁盘空闲空间 baobab 图形界面查看

du 显示磁盘空间利用情况

-a 列出所有的文件与目录容量,预设仅统计目录下面的文件量而已

-s 显示目录总共占用多大空间

-h 以用户易读的方式做单位换算 默认kb

-k 以KB列出容量显示

-m 以MB列出容量显示

du –sh 经常用

df 显示磁盘空间的空闲情况

-h 以用户易读的方式做单位换算 默认kb

-T 显示磁盘分区文件系统类型

-i 显示inode号一共有多少个

-a 列出所有的文件系统,包括系统特有的/proc等文件系统;

-k 以KB 的容量显示文件系统

磁盘分区:

linux上所有设备都对应一个设备文件放在/dev目录下。

IDE:/dev/hd*

SCSI SATA USB都在/dev目录下以/dev/sd*来表示

硬盘接口类型不同,显示文件名称的表示方式也不一样。

同一块硬盘上的不同分区用/dev/sda[0-3]来表示。一个硬盘上最多有四个主分区,或者三个主分区加一个扩展分区。

clip_p_w_picpath047

挂载:当我们所建立起来的磁盘文件系统想在linux上面启用的时候,一定要将它挂在到文件系统上。而所谓的挂载点则是该分区所在的目录,且该目录下的所有目录都归在该分区所有。挂载的时候得先建立起挂载的目录才行!

如果用来挂载的目录原先不为空,那么挂载了文件系统之后,原目录下的文件就是暂时隐藏起来,这里注意,并不是消失了。等到原partition被umount之后,则该目录的内容就会再次显示。

mount /dev/sdb1(设备) /mnt/usb(目录)

clip_p_w_picpath049

-a 依照/etc/fstab 的内容将所有的相关磁盘都挂上来

卸载:umount /dev/sdb1 或者 umount /mnt/usb 一定要卸载,否则数据读入可能会失败

-f 强制卸载

sync (同步),手动写入,将内存缓冲区中要求写到硬盘的内容依次写入到硬盘中。

压缩、解压缩:

compress/uncompress .Z 过时的命令

gzip/gunzip 后缀:.gz 压缩的时候会删除源文件 还可以指定压缩比1---9, 默认级别为6。 一般来说,数字越大。压缩比越大,压缩越慢。gzip –d === gunzip

bzip2/bunzip2 后缀:.bz2 比gzip更新,压缩比更大 bzip –d ====bunzip2

gzip ,bzip2 只能压缩单个文件,不能对目录进行压缩。

clip_p_w_picpath051

clip_p_w_picpath053

zip/unzip 后缀:.zip 可以压缩目录,需要指定压缩后文件的名字,能够保留原文件

格式:zip 压缩后文件名 原文件1 原文件2 原文件3 ……

clip_p_w_picpath055

归档:把多个零散的文件打包成一个单个文件。不是压缩,只是打包封存起来。

tar –c 建立一个压缩文件(create)

-x 解开一个压缩文件

-t 查看tarfile里面的档案

在参数中 c/x/t仅能存在一个,不能同时存在

-z 用gzip压缩

-j 是否用bzip2压缩

-v 显示整个创建过程或者解压缩过程

-C 指定展开到什么位置

-f 使用文件名 eg :tar –zcvPf tfile sfile 在f之后要立即加上文件名

-p 使用原来文件的属性(permission)

-P 可以使用绝对路径来压缩

tar –cf myfile.tar file1 file2 file3…. 只归档不压缩

gzip myfile.tar 再压缩即可

tar –xf myfile.tar 将内容展开,重新释放

clip_p_w_picpath057

tar -tf 不用展开的情况下看看所归档的文件

tar 可以直接调用压缩工具,即归档,又压缩

tar –zcf 使用gzip进行压缩

clip_p_w_picpath059

tar –jcf 调用bzip2进行压缩

clip_p_w_picpath061

tar –zxf 解压缩以gzip压缩的文件

tar –jxf 解压缩以bzip2压缩的文件

clip_p_w_picpath063