鸟哥的Linux私房菜学习笔记——文件权限与目录配置

Linux的文件权限和目录配置

在linux中的每个用户必需属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
(1)所有者
一般为文件的创建者,谁创建了该文件,就是天然的成为该文件的所有者。
(2)所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
(3)其它组
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。

Linux文件属性

image
image
ls时list的意思,重点显示文件的文件民和相关属性, 而选项[-al]则表示列出所有文件的详细权限和属性(包括隐藏文件)
第一栏表示文件的类型和权限
image
其中第一个字符表示文件的目录,文件或者链接文件等等:
:d表示目录
:-表示文件
:l表示连结档(link file)
就是类似Windows系统底下的快捷方式.第一个属性为l,例如[lrwxwxrwx] ;
:b表示装置文件中的可供存储的接口设备
区块(block)设备档:就是一些储存数据,以提供系统随机存取的接口设备,举例来说,硬盘与软盘等就是。可以随机的在硬盘的不同区块读写,这种装置就是成组设备.可以自行查一下/dev/sda看看,会发现第一个属性为[b].
:c表示装置文件中的串行端口,如键盘等
字符(character)设备文件:亦即是一些串行端口的接口设备,例如键盘、鼠标等等!这些设备的特色就是「一次性读取」的,不能够截断输出。举例来说, 你不可能让鼠标「跳到」另一个画面,而是「连续性滑动」到另一个地方。第一个属性为[c]。

接下来的字符中,以三个为一组,且均为「rwxJ的三 个参数的组合。其中,[r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(execute)。要注意的是, 这三个权限的位置不会改变,如果没有权限,就会出现减号[-]。
第一组为「文件拥有者可具备的权限」,以「DesktopJ 那个目录为例,该文件的拥有者可以读写可以执行;
第二组为「加入此群组之账号的权限」;
第三组为「非本人且没有加入本群组之其他账号的权限」。
第二栏表示有多少档名连结到此节点(i-node)
每个文件都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件
名来记录,因此每个档名就会连结到一个i-node哕!这个属性记录的,就是有多少不同的档名连结
到相同的一一个i-node号码去就是了。关于i-node的相关资料我们会在第七章谈到文件系统时再加强,
介绍的。
第三栏表示这个文件(或目录)的[拥有者账号]
第四栏表示这个文件的所属群组
第五栏为这个文件的容量大小,默认单位为bytes;
第六栏为这个文件的建档日期或者是最近的修改日期:
第七栏为这个文件的档名

Linux中加入群组的概念让数据的安全性提高很多

改变文件属性和权限

chgrp :改变文件所属群组
chgrp的用法是 chgrp 组名 文件名

chown :改变文件拥有者
chown的用法是 chown 用户名 文件名
一般当我们copy给别人时,本来这分文件只有我们可以读写,那么copy的文件也只有可以我们读写,所以一般用这条指令把拥有者改成接收方。

chmod :改变文件的权限,SUID, SGID, SBIT 等等的特性

数字类型改变文件权限

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限,例如:文件的权限字符为:「-rwxrwxrwxJ,这九个权限是三个三个一组的。其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r :4 w: 2 x: 1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others=---=0+0+0=0
所以它的权限分数就是770.
chmod用法 : chmod 权限分数 文件名

符号类型改变文件权限

九个权限分别是(1 )user (2)group(3)others三种身份。那么我们就可以藉由u,g,o来代表三种身份的权限!此外,a则代表all 亦即全部的身份!那么读写的权限就可以写成r,w,x哕!也就是可以使用底下的方式来看:
image
用法如下:
chmod u=rwx,g=r,o=x [文件名]

权限对文件的重要性

r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
w(write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x (execute):该文件具有可以被系统执行的权限。

Windows底下一个文件是否具有执行的能力是藉由「扩展名」来判断的,例如: .exe, .bat,.com等
等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有「x」这个权限来决定的!跟
档名是没有绝对的关系的!
当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限!对于文件的rwx来说,主要都是针对「文件的内容」而言,与文件档名的存在与否没有关系喔!因为文件记录的是实际的数据嘛!

权限对目录的重要性

r (read contents in directory):
表示具有读取目录结构列表的权限,所以当你具有读取(r)-一个目录的权限时,表示你可以查询该目录下的文件名数据。所以你就可以利用ls这个指令将该目录的内容列表显示出来!
w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的!因为他表示你具有异动该目录结构列表的权限,也就是底
下这些权限:
1、建立新的文件与目录;
2、删除已经存在的文件与目录(不论该文件的权限为何! )
3、将已存在的文件或目录进行更名;
4、搬移该目录内的文件、目录位置。
x (access directory):
目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途!所谓的工作 目录(work directory)就是你目前所在的目录。举例来说,当你登入Linux时,你所 在的家目录就是你当下的工作目录。而变换目录的指令是[cd] (change directory)

总结:
image

posted @ 2021-12-17 20:06  OLK~BW  阅读(96)  评论(0)    收藏  举报