- A+
Linux权限
Linux系统上对文件的权限有着严格的控制,如果想对某个文件执行某种操作,必须具有对应的权限才可执行成功。
Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。Linux下权限的粒度有 拥有者 、所属组 、其它人 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
我们先来了解文件的类型
在Linux下输入ll 即可查看文件类型
Linux系统下,不是以文件后缀区分文件类型的,而是以ll显示的第一个字符区分文件类型。
Linux系统下,文件类型有:
- .- 普通文件、文本、源代码、可执行程序、第三方动静库
- .d 目录文件
- .c 字符设备文件
- l 链接文件
- p 管道文件
- .b 块设备文件,磁盘
权限=人+事物
Linux系统中,人分三类
- 文件的拥有者 owner
- 文件的所属组 grouper
- 文件的其他用户 other
个人觉得者三者可以换种说法更好理解
拥有者:我 所属组:我的团队 其他用户:其他人
Linux系统中,文件的权限属性
- r(读)
- w(写)
- x(可执行)
这里需要注意 人与root和普通用户是不冲突的,并且是相互补充的。
root可是拥有者、所属组、其他用户
普通用户也可以是拥有者、所属组、其他用户
文件权限的修改
一:更改文件属性权限
chmod 修改文件属性权限 (两种方法)
chmod u+rwx,g+rwx,o+rwx Linux.text
(u代表拥有者的权限,g代表所属的权限,o代表其他人的权限)
这段代码代表 讲拥有者,所属组,其他人的权限全改为可读,可写,可执行
原来的权限
修改
修改后(这里之所以变颜色,是因为权限改为了可执行,所以会变绿色)
当然 也有更方便的方法
这里我们先讲此文件所有的权限,全部去掉
这里我再将它的所有权限启用
第二种修改文件权限方法
用八进制(理解上可以当作二进制)
chmod 777 Linux.txt 一个7代表拥有者,以此类推
7为 3种权限均开 0为三种权限均关 3为开启w,x(写,执行) 4代表开始r(读) 5代表r,x(读,执行)
以这些数组组合 我这里举个栗子 : 745 代表:拥有者:三种权限均开 rwx 所属组代表开启 r 其他人代表开启r,x 合起来就为 -rwxr----x
附加:如果我想进入一个目录,需要什么权限?
答:x(可执行权限) (易错,常考)
总结:两种方法 第一种较麻烦,但更直观,第二种方法较方便,但不易于观察 (两种方法各有优缺点,适合自己的才最重要)root可以直接无视所有权限!!!
修改文件拥有者/所属组
因为修改这种权限是需要提高权限的,要用到sudo 但使用这个代码是需要配置文件,添加亲近用户的,较麻烦
当然,那可以直接进入root,修改这些
在root用户下
修改拥有者 chown(注意不是chmod)
将此文件的拥有者修改为 xxx (其他的普通用户)
修改所属组
将此文件的所属组修改为 xxx
两个也可以连起来
将拥有者修改给xxx1,所属组修改给xxx2
附加:文件的床架你这和拥有者一定是同一个人吗?
答:不一定,可以创建后给其他人(常考!)
附加:一个文件的拥有者,不一定能用上这个文件对吗?
答:对,我在一个目录下的一个文件的拥有者给你,但目录的访问权限(x)不给你 ,你照样访问不了这个文件
比方说:有一个房间内的电脑是你的,但房间的锁住的,钥匙不给你, 你进不去这个房间,照样用不上这台电脑
如果目录没有r权限,允许进入,允许在该目录下创建(写入)一个文件,不允许查看。
如果目录没有w权限,允许进入,允许在该目录下查看文件列表,但是不允许创建文件。
如果同时没有rw权限,允许进入,但不允许创建和查看目录下的文件的列表(不是文件内容!文件内容是否可以查看,文件自己的权限决定)
权限掩码的认识
权限掩码的作用是根据用户的需求屏蔽掉不希望给别人的权限,比如普通文件的权限是“-rw-rw-rw-”,所有用户对文件都享有读写权限,而这带来的问题就是文件可以被任何人修改从而导致文件数据被篡改导致数据丢失。 这个时候用户可以通过设置文件掩码来屏蔽到本需要赋予其他用户的特定权限。 权限掩码在每个Linux系统里都有默认值,多数为0022或0002,当然用户也可以自己修改权限掩码的值。
比方说,我们先随便创建一个文件,查看它初始的权限是什么
这个可以叫做初始权限或者最终权限
一般普通文件默认权限为666 (rw-rw-rw-)目录文件默认权限为 777 (rwxrwxrwx)
那为什么不同呢?因为 最终权限=默认权限 & (~umask) 公式
比如权限掩码为0002 普通权限为 666
先按位取反权限掩码 000 000 010 取反 111 111 101 再与默认权限按位与 (&)(两个二进位都为1时,结果位才为1)
110 110 110 默认权限
111 111 101 权限掩码
------------------ 按位与 & (两个二进位都为1时,结果位才为1)
110 110 100 即 664 即 rw-rw-r--
粘滞位
粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,
也只能针对⽬录设置,对于⽂件⽆效。则设置了粘滞位后,只有目录内文件的所有者或者root才可以删除或移动
该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应
用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
在Linux系统中⽐较典型的例⼦就是“/tmp”、 “/var/tmp”⽬录。这两个⽬录作为Linux系统的临时⽂件
夹,权限为“rwxrwxrwx”,即允许任意⽤户、任意程序在该⽬录中进⾏创建、删除、移动⽂件或⼦⽬录等操作
简单来说 给一个目录附上粘滞位 可以防止普通用户删除文件
这个目录的文件只能由:超级管理员删除,该鲁莽的所有这,该文件的所有者
那怎么给目录附上粘滞位呢?
只需要在其他人加上t即可
可以看出,权限就多了一个t
file指令
功能:查看更详细的文件类型
- -b 列出辨识结果时,不显示文件名称。
- -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
- -f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
- -L 直接显示符号连接所指向的文件的类别。
- -m<魔法数字文件> 指定魔法数字文件。
- -v 显示版本信息。
- -z 尝试去解读压缩文件的内容。
- [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
这就本篇的全部内容,如果对您有所帮助,希望能获得您的点赞,您的点赞就是对我的最大支持!