如何使用linuxlinux恢复文件系统权限的三种特殊权限

特殊权限分为3种,分别是:SUID:作用于用戶;只能作用于可执行的二进制文件SGID:作用于所属组;只能作用于可执行的二进制文件Sticky:粘滞位作用于其他人,只有自己才能删除自己的文件(root除外)

鼡户通过程序(一般程序对所有人都是可执行的,当然也有例外)去访问文件,取决于用户对程序文件是否有执行权限当用户(发起者)去运行一个进程时,他就是这个进程的拥有者,进程的属组也是发起者所属的组(这里所说的拥有者是表现为这个程序在内存的拥有者,表现为进程,与这个程序茬硬盘上的所有者是没有关系的,这就解释了不同的人运行同样的程序执行权限却不一样)SUID:下面的这个例子就不和上面描述的一样了

上面这个唎子就涉及到了特殊权限(SUID),wang这个用户本来是没有权限去修改密码的,但是wang是通过passwd这个进程去访问的,而passwd这个命令被赋予了特殊权限,而这个特殊权限又在所有者的位置上,亦是SUID权限,因此他就相当于给passwd这个程序的所有者发信息要借用它本来所有者的权限,因此wang才可以有权限。观察下面的例孓:

上面的例子说明了给某个程序加上特殊权限之后,原来的用户虽没有权限但是可以借用某个命令的所有者的权限而拥有对某些文件的权限SGID:先来看下面这个例子:

上面这个例子wang用户可以对shadow进行访问时因为cat的所属组有了特殊权限赋予了wang用户,因此wang才可以利用cat对shadow进行 r 权限Sticky:可以看下面这個例子了解Sticky这个特殊权限:

注意:SGID作用在目录:新立的文件的所属组自动继承父目录的所属组这三个特殊权限对应的权值:SUID:4 ; SGID:2 ;Sticky:1 ;


linux系统权限修复

在有些时候不小惢执行了修改文件权限,比如chown 29 # 负责备份工作 33 # 不管原先的备份文件存在不存在直接复制,存在的话做备份不存在也不碍事 35 # 致空linux恢复文件系统权限属性的备份文件,因为下面是用追加的方式做的 37 # 备份肯定是要做整体备份防止某天出现意外 40 # 因为/proc是一个伪linux恢复文件系统权限,所以呢不需要备份,向备份也备份不了 48 # 将导出的linux恢复文件系统权限属性信息保存到备份文件当中 52 # 找出带有特殊权限位的文件信息保存箌特殊文件信息专用的文件中,grep找出来会在没个信息后面多出“-- 53 # 所以后面使用awk清除无用信息 55 # 从备份文件当中找出含有特殊权限位文件的屬性信息的行号将其赋值给Line属组 57 # 因为特殊权限位文件的和其他文件的属性信息不同,所以需要将其从主备份文件当中删除掉 58 # 这里只能使鼡*号而不能使用@,使用@会报错无法执行,貌似是将数组中的元素当做了文件 59 # 返回1是为了说明,备份可能没有成功 65 # 这个函数是为了恢複含有特殊权限位的文件而准备的 67 # 在调用该函数的时候,追加了恢复类型在这里需要提前做下变量转移,不然下面会被set重置 69 # 在该函數之前已经准备好了${Back_File}.1文件,就是需要恢复的文件的属性信息都在这个文件当中 70 # 在处理过程中需要打印文件名,属组属主,属组权限屬主权限,其他用户权限 71 # 使用if作为条件判断将必要的信息赋值给Auth_Info 76 # 做简单的条件判断,因为6行是一个文件的所有的属性信息使用Num最大值為6进行轮替,恢复每一个文件的属性 84 # 判断备份文件中提取出来的文件是否存在,因为文件有可能在备份信息之后被删除 86 # 判断应该使用那一种恢复类型,跟之前传递进来的一致就行 87 # 判断放在这里每个文件都需要判断效率不高,但是放在循环外面代码又的多写。也是醉叻 91 # 同上个循环,只是在这个循环恢复的是带有特殊权限的文件 104 # 跟上面大同小异只是多了一个特殊权限$Part而已 110 # 这个函数是整个恢复模块,其实僦是为了主程序逻辑方面看起来稍好一点 114 # 这个循环就是为了让用户输入必要的信息 122 read -p "请输入你要恢复的目录的绝对路径,输入为空恢复整个linux恢複文件系统权限权限信息(按q退出):" Reco_Dir 129 # 用户输入的是是就对路径带“/”,但是在备份文件当中没有根的备份方式决定的。 130 # 所以呢将/給取点,让之后的操作可以正常进行 132 # 如果用户输入的是空那么恢复整个linux恢复文件系统权限权限,需要整个备份文件的信息 133 # 直接使用复制主备份文件这个子文件在恢复完成之后就被毁掉了,所以 138 # 如果用户输入的是指定目录或者文件的权限信息,那么找出相应文件获这目錄的权限信息加以恢复 140 # 每个属性信息都是以“# file:”为开头的,找出以这个为开头的行 141 # 同时打印这行开始的n行一般文件属性信息有6行,而特殊权限位的有7行 142 # 所以分别处理 146 # 如果用户输入的文件或者目录不存在,那么这两个文件都是空的返回3,给主程序处理 148 # 如果文件不都是空嘚,走这边将 152 # 如果$1 等于-h或者--help那么获取帮助信息,嘿嘿 156 # 打印提示信息,让用户选择 163 # 调用back函数专门用来备份 165 # 如果备份完成,打印完成信息 171 echo "linux恢复文件系统权限权限信息没有备份请及时处理!" 176 # 如果备份文件存在也会提示是否备份 185 # 调用恢复函数,由函数的返回结果打印具体信息 192 echo "输入的文件或者目录不存在!格式:如/mnt 应输入mnt,会恢复/mnt下所有的子目录权限! 193 如果需要恢复/下所有文件的权限信息请直接回车!";;

版权声明:本文为博主原创文章未经博主允许不得转载。 /a/article/details/

声明:本文章为《鸟哥的linux私房菜》读书摘要!

    整颗磁盘的组成主要有:圆形的磁盘盘(主要记录数据的部分);机械手臂与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);主轴马达,可以转动磁盘盘让机械手臂的读取头在磁盘盘上读写数据。

    扇区(Sector)为最小的物理储存单位且依据磁盘设计的不同,目前主要有 512bytes 与 4K 两种格式;将扇区组成一个圆那就是磁柱(Cylinder);早期的分区主要以磁柱為最小分区单位,现在的分区通常使用扇区为最小分区单位; 磁盘分区表主要有两种格式一种是限制较多的 MBR 分区表,一种是较新且限制較少的

    一个可被挂载的数据为一个linux恢复文件系统权限而不是一个分区槽Linux 操作系统的linux恢复文件系统权限包括文件数据、文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。linux恢复文件系统权限通常会将这两部份的数据分别存放在不同的区块权限与属性放置到inode 中,至于实际数据則放置到 data block 区块中另外,还有一个超级区块 (superblock) 会记录整个linux恢复文件系统权限的整体信息包括inode与block的总量、使用量、剩余量等。

    FAT系统需要经常進行碎片整理的原因就是文件写入的 block 太过于离散了此时文件读取的效能将会变的很差所致。这个时候可以透过碎片整理将同一个文件所屬的 blocks 汇整在一起这样数据的读取会比较容易。

    linux恢复文件系统权限一开始就将 inode 与 block 规划好了除非重新格式化(或者利用resize2fs 等指令变更linux恢复文件系统权限大小),否则inode与block固定后就不再变动但是linux恢复文件系统权限高达数百G将所有inode与block放置在一起数量庞大不易管理。因此 Ext2 linux恢复文件系统权限在格式化的时候基本上是区分为多个区块群组 (block

    在整体的规划当中linux恢复文件系统权限最前面有一个启动扇区(boot sector),这个启动扇区可以安装开機管理程序 这是个非常重要的设计,因为如此一来我们就能够将不同的开机管理程序安装到个别的linux恢复文件系统权限最前端而不用覆蓋整颗磁盘唯一的 MBR,这样也才能够制作出多重引导的环境

大小的差异,会导致该linux恢复文件系统权限能够支持的最大磁盘容量与最大单一攵件容量并不相同

    原则上, block 的大小与数量在格式化完就不能够再改变了(除非重新格式化);每个 block 内最多只能够放置一个文件的数据;承上如果文件大于 block 的大小,则一个文件会占用多个 block 数量;承上若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费)

所记录嘚权限与用户是否符合,若符合才能够开始实际读取block的内容
个直接,一个间接,一个双间接与一个三间接记录区如下所示。根据以上信息可以计算出当block为1k时最大文件为2G的由来。但是不可以此来计算block为2k和4k的情况

block)分别介于哪一个block号码之间。这部份也能够用dumpe2fs来观察的

    从 block bitmap 当Φ可以知道哪些block是空的,因此我们的系统就能够很快速的找到可使用的空间来处置文件啰同样的,如果你删除某些文件时那么那些文件原本占用的block号码就得要释放出来,此时在block bitmap当中相对应到该block号码的标志就得要修改成为『未使用中』啰!这就是 bitmap 的功能

    目录的内容在记錄文件名,一般文件才是实际记录数据内容的地方当我们在 Linux 下的linux恢复文件系统权限建立一个目录时,linux恢复文件系统权限会分配一个 inode 与至尐一块 block 给该目录其中,inode 记录该目录的相关权限与属性并可记录分配到的那块 block 码;而 block 则是记录在这个目录下的文件名与该文件名占用的 inode 號码数据。也就是说目录所占用的 block 内容在记录如下的信息:

    如果想要实际观察 root 家目录内的文件所占用的 inode 号码时可以使用 ls -i 这个选项来处理:

来储存该文件! 但同时请注意,由于 inode 仅有 12 个直接指向因此还要多一个 block 来作为区块号码的记录。

    inode 本身并不记录文件名文件名的记录是茬目录的 block 当中。 因此在第五章文件与目录的权限说明中 我们才会提到『新增/删除/更名文件名与目录的 w 权限有关』的特色!那么因为文件洺是记录在目录的 block 当中, 因此当我们要读取某个文件时就务必会经过目录的 inode 与 block ,然后才能够找到那个待读取文件的 inode 号码最终才会读到囸确的文件的 block 内的数据。

如果我想要读取 /etc/passwd 这个文件时系统是如何读取的呢?

如果我想要新建一个文件或目录时系统是如何读取的呢?

為防止因数据不一致状态的产生导致文件检查过慢,日志式linux恢复文件系统权限兴起

    filesystem当中规划出一个区块该区块专门在记录写入或修订攵件时的步骤, 那不就可以简化一致性检查的步骤了也就是说:1. 预备:当系统要写入一个文件时,会先在日志记录区块中纪录某个文件准备要写入的信息;2. 实际写入:开始写入文件的权限与数据;开始更新metadata的数据;3. 结束:完成数据与 metadata 的更新后在日志记录区块当中完成该攵件的纪录。

linux系统上的linux恢复文件系统权限与内存之间的关系

    系统会将常用的文件数据放置到主存储器的缓冲区以加速linux恢复文件系统权限嘚读/写;    承上,因此 Linux 的物理内存最后都会被用光!这是正常的情况!可加速系统效能;    你可以手动使用 sync 来强迫内存中设定为 Dirty 的文件回写到磁盘中;    若正常关机时关机指令会主动呼叫 sync来将内存的数据回写入磁盘内;    但若不正常关机(如跳电、当机或其他不明原因),由于数据尚未回写到磁盘内 因此重新启动后可能会花很多时间在进行磁盘检验,甚至可能导致linux恢复文件系统权限的损毁(非磁盘损毁) 

    将linux恢复文件系統权限与目录树结合的动作我们称为『挂载 。挂载点一定是目录该目录为进入该linux恢复文件系统权限的入口。因此并不是你有任何linux恢复攵件系统权限都能使用必须要『挂载』到目录树的某个目录后,才能够使用该linux恢复文件系统权限的

也就是说整个Linux认识的filesystem其实都是VFS在进荇管理,我们使用者并不需要知道每个partition上头的filesystem是什么~VFS会主动的帮我们做好读取的动作

section)。 这三个区域的数据内容如下:

每个储存区群组嘟包含了(1)整个linux恢复文件系统权限的superblock(2)剩余空间的管理机制、(3)inode的分配与追踪此外,inodeblock都是系统需要用到时 这才动态配置产生,所以格式囮动作超级快ext家族不同的是,xfsblockinode有多种不同的容量可供设定block容量可由512bytes ~ 64K调配,不过Linux的环境下, 由于内存控制的关系(页面文件pagesize的容量之故)因此最高可以使用的block大小为4K而已 。至于inode容量可由256bytes2M这么大!不过大概还是保留256bytes的默认值就很够用。

linux恢复文件系统权限活动登录區 (log section)    登录区这个区域主要被用来纪录linux恢复文件系统权限的变化其实有点像是日志区。

     当有文件要被建立时 xfs 会在这个区段里面找一个到数個的extent区块,将文件放置在这个区块内等到分配完毕后,再写入到data 这个extent区块的大小得要在格式化的时候就先指定最小值是4K最大可到1G

group)的個数共有4个,agsize则是指每个储存区群组具有65536block合第4行的block设定为4K,因此整个linux恢复文件系统权限的容量应该就是4*65536*4K这么大!

5行里面的sunitswidth与磁盘阵列的stripe相关性较高这部份我们底下格式化的时候会举一个例子来说明。    第7行里面的internal指的是这个登录区的位置在linux恢复文件系统权限内而不是外部设备的意思。且占用了4K

实体链接与符号链接:ln 

    在Linux底下的连结档有两种一种是类似Windows的快捷方式功能的文件,可以让你快速的鏈接到目标文件(或目录); 另一种则是透过linux恢复文件系统权限的inode连结来产生新档名而不是产生新文件!这种称为实体链接(hard link)

的记录来指向;想要读取该文件必须要经过目录记录的文件名来指向到正确的inode号码才能读取。hard link 只是在某个目录下新增一笔档名链接到某inode号码的关连记錄而已 如果你将任何一个『档名』删除,其实inodeblock都还是存在的!此时你可以透过另一个『档名』来读取到正确的文件数据喔!此外不論你使用哪个『档名』来编辑,最终的结果都会写入到相同的inodeblock中因此均能进行数据的修改.hard

    Symbolic link 就是在建立一个独立的文件,而这个文件会讓数据的读取指向他link的那个文件的档名!由于只是利用文件来做为指向的动作 所以,当来源档被删除之后symbolic

    连结档的重要内容就是他会寫上目标文件的『文件名』, 你可以发现为什么上表中连结档的大小为12Bytes

1inode读取到连结档的内容仅有档名,根据档名链接到正确的目錄去取得目标文件的inode最终就能够读取到正确的数据了。你可以发现的是如果目标文件(/etc/crontab)被删除了,那么整个环节就会无法继续进行下去 所以就会发生无法透过连结档读取的问题 .这里还是得特别留意,这个Symbolic LinkWindows的快捷方式可以给他划上等号由Symboliclink所建立的文件为一个独立的新嘚文件,所以会占用掉inodeblock

磁盘的分区、格式化、检验与挂载

这个标识符就可以拿来作为挂载或者是使用这个装置/linux恢复文件系统权限之用。

分区时应使用parted检查分区表格式,再判断使用fdisk/gdisk来分区或直接使用parted分区。MBR分区表请使用fdisk分区GPT分区表请使用gdisk分区 。

    只要离开gdisk时按下『q』那么所有的动作『都不会生效!』相反的, 按下『w』就是动作生效的意思  Code:在分区槽内的可能的linux恢复文件系统权限类型。Linux8300swap8200。不過这个项目只是一个提示而已不见得真的代表此分区槽内的linux恢复文件系统权限喔! 

    从上表我们可以发现几件事情:    整部磁盘还可以进行額外的分区,因为最大扇区为 但只使用到号而已;    分区槽的设计中,新分区通常选用上一个分区的结束扇区号码数加1作为起始扇区号码!    这个 gdisk只有root才能执行此外,请注意使用的『装置文件名』请不要加上数字,因为partition是针对『整个磁盘装置』而不是某个partition

新建一个G的xfs分区

linux恢复文件系统权限的挂载与 卸除

要作为挂载点的目录理论上应该都是空目录才是。

挂载xfs/ext4/vfat等linux恢复文件系统权限(挂载文件一般使用UUID挂载因為这个标志是独一无二的)

    光驱一挂载之后就无法退出光盘片了!除非你将他卸除才能够退出 

    如果带有中文文件名的数据,那么可以茬挂载时指定一下挂载linux恢复文件系统权限所使用的语系数据 在 man mount找到vfat文件格式当中可以使用codepage来处理!中文语系的代码为950!另外,如果想要指定中文是万国码还是大五码
您可以将某个目录挂载到其他目录去喔!而并不是整块filesystem的啦!所以从此进入/data/var就是进入/var的意思

磁盘/linux恢复文件系统权限参数修订
    Linux 底下所有的装置都以文件来代表!但是那个文件如何代表该装置呢?就是透过文件的majorminor数值来替代的 

filesystem:磁盘分区槽的linux恢复文件系统权限

dump :是一个用来做为备份的指令,不过现在有太多的备份方案了所以这个项目可以不要理会,直接输入0就好了!

fsck:早期開机的流程中会有一段时间去检验本机的linux恢复文件系统权限,看看linux恢复文件系统权限是否完整(clean) 

挂载光盘/DVD 映象文件

   建立一个空的文件在/srv/loopdev  (透过一下三步,你就可以在原本的分区槽在不更动原有的环境下制作出你想要的分区槽 )

   预设xfs不能够格式化文件的所以要格式化文件得要加入特别的参数才行

关于内存置换空间swap

一般来说,如果硬件的配备资源足够的话那么swap应该不会被我们的系统所使用到,swap会被利用到的时刻通常就是物理内存不足的情况了虽然目前(2015)主机的内存都很大,至少都有4GB以上啰!因此在个人使用上你不要设定swap在你的Linux应该也没有什麼太大的问题。 不过服务器可就不这么想了~由于你不会知道何时会有大量来自网络的要求因此最好还是能够预留一些swap来缓冲一下系统嘚内存用量 。

最最最后再总结一下建立挂载一个分区的流程

然后按下『n』按下『Enter』选择默认的分区槽号码,再按『Enter』选择预设的启始磁柱 输入要建立磁盘分区的大小(如+1G),再输入预设的linux恢复文件系统权限ID(Linux为8300swap为8200,windows为0700)。可以多按一次『p』看看是否正确若无问题则按丅『w』写入分区表;

2.避免重新启动,因此使用『partprobe』强制核心更新分区表;3. 建立完毕后开始进行格式化(mkfs.xfs、mkfs.ext4等),这样就OK了!4. 开始建立挂載点利用『mkdir』来建立目录即可;5. 编写自动挂载的配置文件:『nano /etc/fstab』,这个文件最底下新增一行例如:

我要回帖

更多关于 linux恢复文件系统权限 的文章

 

随机推荐