欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > [Linux]重生之我是权限U•ェ•U

[Linux]重生之我是权限U•ェ•U

2025/5/22 0:51:31 来源:https://blog.csdn.net/jk23728/article/details/148027261  浏览:    关键词:[Linux]重生之我是权限U•ェ•U

一、普通用户与超级用户

1.权限

超级用户(root)可以在Linux系统中做任何事情,不受限制,命令提示符是 #

普通用户在Linux系统中只能做有限的事,命令提示符是 $

2.切换

普通用户切换为超级用户:su root  /  su -  ,需要输入 root 账户密码

用 logout 指令登出超级用户,返回到普通用户

超级用户切换为普通用户:su <用户名>  ,不需要输入密码

普通用户切换为普通用户,需要输入密码

3.提权 sudo

允许白名单中的普通用户拥有超级用户的权限

sudo [指令]

二、文件权限

1.文件访问者的分类

文件和文件目录的所有者:u        ——(user)

文件和文件目录所有者所在的组的用户:g        ——(group)

其他用户:o        ——(others)

2.文件类型和访问权限

(1)文件类型

d 目录

- 普通文件

(2)文件权限 chmod

r   可读        w 可写        x  可执行

chmod o+w hello.c  给其他用户添加 hello.c 文件的写权限

chmod u-rx hello.c  给所有者移除 hello.c 文件的读权限和执行权限

chmod g+w,o+w hello.c  给所属组和其他用户添加 hello.c 文件的写权限

chmod a+r hello.c  给所有人添加 hello.c 文件的读权限

只有文件所有者和超级用户可以更改文件的权限

表示 rwx,可以使用三个比特位 1 / 0,1 表示有相应权限,0 表示没有相应权限,那么可以用 3 个八进制数来表示三类文件访问者的权限:

chmod 000 hello.c 把所有人对 hello.c 的权限移除

chmod 777 hello.c 赋予所有人对 hello.c 的所有权限

chmod 640 hello.c  更方便些

用户身份的匹配从左往右只进行一次

所以所有者无写权限,无法写入 file.c ,尽管所有者也在所属组,所属组有写权限

root 用户不受权限限制,也就是说,即使文件属性显示没有读、写、执行权限,但是 root 用户仍然可以读、写、执行,无视文件属性的权限设置。

(3)文件所属 chown

chown <用户名> <文件>  改变文件所有者

chown <用户名:组名> <文件>  改变文件 所有者 :所属组        chown abc:abc file.c

想要执行 chown 指令,身份必须是文件所有者或 root 用户

文件所有者想把文件给别人,也需要用 sudo 提权,不能直接给别人

chgrp <组名> <文件>  更改文件所属组

(4)目录权限

对于目录 AAA:

有 x 权限,可以进入 AAA

有 r 权限,可以读取 AAA 的内容(目录内的文件或目录的权限,由其本身权限属性限制)

有 w 权限,可以新建、删除、修改文件名(能否修改文件内容,由文件本身权限属性限制)

没有 x 权限但有 r 权限,仍然可以读取到目录里的内容:

没有 x 权限但有 w 权限,无法改变目录里的内容:

新建一个目录,目录的默认权限属性是 775

新建一个普通文件,普通文件的默认权限属性是 664

其实系统中目录的起始权限为 777,普通文件的起始权限为 666

之所以新建出的目录和文件的权限与起始权限不同,是因为会受权限掩码修正

umask 查看权限掩码        umask 000  修改权限掩码为 0000

后三位对应三类访问者的 rwx 权限,修正公式:最终权限 = 起始权限 & (~权限掩码)

也就是说,最终权限 是 起始权限 和 权限掩码按位取反后 再按位与 的结果

以目录权限属性为例:

起始权限                  111 111 111     ->    7 7 7

权限掩码             &   111 111 101    ->    0 0 2  (~)

最终权限                  111 111 101    ->    7 7 5

位操作是因为,操作系统是按照三个比特位赋予的三类访问者权限,为便于用户操作,进行了简化,不需要用户输入总共九位的二进制数,只需要输入三位的八进制数来代表。

其实对二进制数的位操作,对用户而言就等价于对八进制数进行 起始权限 - 权限掩码 的操作。

三、粘滞位

chmod +t <目录名>  把目录设置为粘滞位

被设为粘滞位的目录,目录里的内容只能由 root 用户、目录所有者、内容所有者删除,其他人即使具有目录的 w 权限,也不能删除该内容。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词