夜间模式暗黑模式
字体
阴影
滤镜
圆角

Category: DevOps

2 篇文章

thumbnail
Linux学习日记 Day_2
[toc] 今天大概来整理一下Linux的文件属性相关。 Linux中使用者、群组和其他人 非常重要的一点是,应该吧Linux系统看成是多用户多任务同时在线的一个组织。人一多起来了非常自然的就会想着去分组,就像社会现实中我们分小组活动一样。 使用者(User) 谁能被称作使用者呢?在Linux里面使用者和群组可以看成是一个很好的安全权限机制。如果我自己写了一篇文章不想被别人修改,那我可以对我自己的文件(我就是使用者,创造了这个文件)设置一些权限,让其他群组和其他人没有权限来修改我的文章。 群组(Group) 群组就是用来集体活动的啦!当然不同群组之间也不一定能够互通。使用者和群组可以将其抽象成一个树状图。许多的使用者构成了群组,而每一个独立群组也可以看成一个使用者一般。群组中的每一个人都有互相查看修改对方文件的权限。就像你和爸妈在一个客厅里看电视,电视是家庭所共用的。 其他人(Others) 其他人就可以想象成陌生人来敲门啦。一般其他人是没有权限进入你家房门来看电视的。这时候通过适当的权限设置让其他人进到家里来,这样其他人就有可以访问该群组文件的权力。当然对于群组中的每一个人还有各自的权限设置,那就得具体问题具体分析了。 上帝(Root) 当然我们有一个掌握规则的上帝,叫做Root。Root是所有黑客梦寐以求的东西,原因就是Root可以干任何事情。对,就是干任何事情,字面意思。 Linux的文件属性 察看文件的指令,相当于把文件属性给列举出来(List)。缩写ls就是一个查看文件的指令。在Terminal切换成root身份之后,执行ls -al列举出文件信息。举个例子: endcat@endcat:~$ ls -al total 84 drwxr-xr-x 15 endcat endcat 4096 1月 5 10:24 . drwxr-xr-x 3 root root 4096 12月 15 10:38 .. -rw------- 1 endcat endcat 263 1月 2 23:20 .bash_history -rw-r--r-- 1 endcat endcat 220 12月 15 10:38 .bash_logout -rw-r--r-- 1 endcat endcat 3771 12月 15 10:38 .bashrc drwx------ 16 endcat endcat 4096 12月 29 08:04 .cache drwx------ 13 endcat endcat 4096 12月 27 21:55 .config drwxr-xr-x 2 endcat endcat 4096 12月 27 21:46 Desktop drwxr-xr-x 2 endcat endcat 4096 1月 2 23:03 Documents …… 我们以其中一行进行拆分分析。 drwxr-xr-x 2 endcat endcat 4096 12月 27 21:46 Desktop 第一块-档案类型权限 第一段是记录是由短横线和字母组成的,把它叫做“档案类型权限”。细心数一下的话会发现有10个字符,每一个字符都代表了不同的意思。 第一个字符代表了文件类型。 [d] 表示文件夹(Directory)[-] 表示文件(File)[l] 表示链接文件(Link File)[b] 表示为设备文件里面可供储存的周边设备(可随机存取设备)[c] 表示为设备文件里面的序列埠设备,例如键盘鼠标(一次性读取设备)[s]表示数据接口文件(Socket),通常被用在网络上的数据承接。[p]表示数据输送档(FIFO,pipe),是一种特殊的文件类型,主要目的是解决多个程序同时存取一个文件所造成的错误问题。 在上面举的例子中, drwxr-xr-x的第一个字符是d,那么说明Desktop是一个文件夹(Directory)。 接下来的字符中,以三个为一组,且均为“rwx”的三个参数组合。其中 [r]表示可读(Read)[w]表示可写(Write)[x]表示可执行(Execute) 这三个权限的位置不会改变,如果没有权限就是以[-]短横线代替。 以三个为一组,共有三组,分别是 第一组为“文件拥有者可具备的权限”第二组为“加入此群组的账号的权限”、第三组为“非本人且没有加入本群组的其他账号的权限” 再回到我们之前的那个例子drwxr-xr-x,Desktop这个文件夹对于文件拥有者来说具有所有权限rwx,而对于同群组的人来说这个文件夹不可写,对于其他人(Others)来说也是一样的。 第二块-链接节点(i-node) 分析完了第一块的文件权限,看一下第二块的数字代表了什么意思。 drwxr-xr-x 2 endcat endcat 4096 12月 27 21:46 Desktop (还是这个例子) Linux中每个文件都会将它的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录,因此每个文件名就会链接到一个i-node。这个属性记录的就是有多少不同的文件名链接到相同的一个i-node号码去就是了。i-node相关内容以后会详细整理一下。 第三块-拥有者 显然,Desktop这个文件夹是endcat的。 第四块-群组 第四块表示这个文件的所属群组。 第五块-文件容量大小 默认单位为Bytes。 第六块-文件创建日期或修改日期 这一栏的内容分别为日期(月/日)及时间。如果这个文件被修改的时间距离太久了,那么时间部只会显示年份而已。 如果想要显示完整的时间格式,可以利用ls的参数即“ls -l --full-time” 第七块-文件名 第七块为这个文件的文件名。 比较特殊的是,如果文件名前多了一个小点点“.”,表示这个文件为隐藏文件。可以使用“ls”,“ls -a”来体会一下什么是隐藏文件。 参考图片 如何修改权限设置 几个常用于群组、拥有者、各种身份的权限之修改的指令: chgrp:改变文件所属群组(change group)chown:改变文件拥有者(change owner)chmod:改变文件的权限,SUID,SGID,SBIT等等特性 chgrp-改变所属群组 请务必记得要被改变的群组名称必须要在/etc/group文件内存在才行,否则报错 chgrp:invaild group:'xxxxx' //发生错误,找不到该群组名 chown-改变文件拥有者 同样的,使用者必须是已经存在系统中的账号,也就是在/etc/passwd这个文件中有记录的使用者名称才能改变。对了chown也可以顺便修改所属群组。 语法范例: chown [-R] [Accounts(:group)/(.group)]…
thumbnail
Linux学习日记 Day_1
目前为止个人很推荐鸟哥写的Linux入门指南,有繁体中文版全文可供检索。 http://linux.vbird.org/new_linux.php 在序章详细讲述了很多关于Linux的历史,在使用Ubuntu的过程中一些看不懂的缩写词,在其中也得到答案(看看以往的历史发展也是一件很有趣的事情) 开机流程的检测程序 这更多是计算机概论的知识。我们都知道BIOS是写入到主板上的一个固件(固件就是写入到硬件上的一个软件程序),BIOS在开机的时候是计算机系统会主动执行的一个程序。这还不是我们熟知的操作系统阶段。接下来BIOS会去分析计算机里有哪些存储设备。以硬盘为例,BIOS会根据使用者的设置去取得能够开机的硬盘,并且到硬盘里读取第一个扇区中的MBR位置。 什么是MBR呢? 主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS - Disk Operation System)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由DOS在对硬盘进行初始化时产生的。 MBR这个仅有446Bytes的硬盘容量里会放置最基本的开机管理程序,此时BIOS做完了它该做的事情,接下来就是MBR内的开机管理程序的工作了。 开机管理程序目的是在载入核心文件,这是在安装操作系统时候提供的,所以它会认识硬盘里面的文件系统格式,因此就能够读取系统核心文件。此时Loader的工作也做完,接下来就是我们熟知的操作系统的工作啦。 总结一下开机到操作系统的流程: BIOS:开机主动执行的固件,识别第一个可开机的设备;MBR:第一个可开机设备中第一个扇区内主要开机记录块,内置Loader;Loader:一个可读取核心文件来执行的软件;核心文件:开始使用操作系统; 我们可以在一个电脑里实现多系统,在开机时可以选择系统进入。这是因为MBR也可以有将开机管理功能转交给其他Loader负责,开机管理程序除了可以安装在MBR之外,还可以安装在每个分区的开机扇区(Boot sector)中。这个特色造就了“多重开机”的功能。 如果要在个人电脑里安装Linux和Windows双系统,建议是先安装Windows再安装Linux,这是为什么呢?Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在分区的开机扇区,安装过程中它是没有供我们选择的选项。而Linux则不同,Linux的Loader可以手动设置菜单,所以可以在Linux的Boot Loader里面加入Windows的开机选项。 UEFI BIOS搭配GPT的开机流程 解释一下名词,看不懂缩写不应该成为阻碍学习进程的障碍。 什么是GPT? GUID磁盘分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一个扇区来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。对于那些扇区为512字节的磁盘,MBR分区表不支持容量大于1TB(1 × 10^12字节)的分区,然而,一些硬盘制造商(诸如希捷和西部数据)注意到了这个局限性,并且将他们的容量较大的磁盘升级到了4KB的扇区,这意味着MBR的有效容量上限提升到了16 TB。 这个看似“正确的”解决方案,在临时地降低了人们对改进磁盘分配表的需求的同时,也给市场带来了关于在有较大的块(block)的设备上从BIOS启动时,如何最佳的划分磁盘分区的困惑。GPT分配64bits给逻辑块地址,因而使得最大分区大小在2^64-1个扇区成为了可能。对于每个扇区大小为512字节的磁盘,那意味着可以有9.4ZB(9.4 x 10^21字节)或18 E 个512字节(9,444,732,965,739,290,426,880字节 或 18,446,744,073,709,551,615(2^64-1)个扇区 x 512(=2^9)字节每扇区)。https://baike.baidu.com/item/GPT/15413476 前面讲到的MBR也是一种磁盘分区表格式,GPT和MBR之间的简单差别就是MBR“太小了”,GPT“能提供更大的”。因为一开始BIOS和MBR是一对好兄弟,但是BIOS不认识GPT了,所以为了要认识GPT,就有了UEFI。 什么是UEFI呢? 新型UEFI,全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。可扩展固件接口(Extensible Firmware Interface,EFI)是 Intel 为 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近20多年历史的 BIOS 的继任者。 https://baike.baidu.com/item/UEFI/3556240 简而言之,UEFI要取代BIOS。而UEFI甚至可以被看成是一个小型的操作系统。为什么呢?UEFI使用C语言编程,比起使用组合语言的传统BIOS更容易开发。只要开发者够厉害,可以在UEFI阶段就可以实现上网,从而根本不用进入操作系统!