【linux】linux权限的详细讲解
小编个人主页详情<—请点击
小编个人gitee代码仓库<—请点击
linux系列专栏<—请点击
倘若命中无此运,孤身亦可登昆仑,送给屏幕面前的读者朋友们和小编自己!
目录
- 前言
- 一、linux下的两种用户及切换
- su指令
- 1. 普通用户切换root用户的两种方法
- 2. root用户切换普通用户的两种方法
- 3. 对命令进行短暂提权
- 二、linux权限管理
- 1. 权限认证和身份(人)与属性有关
- 2. 文件的类型和权限和访问者和后缀
- 3. 权限的简单使用
- 三、权限的修改
- chmod指令
- 1. 指定修改的具体权限进行修改
- 2. 使用八进制方式进行权限修改
- 3. 修改文件拥有者和所属组
- chown指令
- chgrp指令
- 四、umask指令
- 五、目录的权限
- 六、粘滞位
- 总结
前言
【linux】linux的基本指令之date 时间戳 cal find grep zip/unzip tar bc unname 常用热键 shutdown 指令运行的原理书接上文 详情请点击
本文由小编为大家讲解linux权限
一、linux下的两种用户及切换
linux下有两种用户:超级用户(root),普通用户
- 超级用户(root):可在linux系统中做任何事情,不受权限限制
- 普通用户:在linux系统中做部分事情,受到权限限制
- root用户的命令提示符为’#‘,普通用户的命令提示符为’$’
su指令
1. 普通用户切换root用户的两种方法
- su 输入完后在下一行password输入root用户的密码即可完成普通用户切换为root用户,这种方式进行切换root用户的时候只改变用户,不改变当前路径
- 退出root用户,返回普通用户的方式是输入exit或按下ctrl+d键
- su - 输入完后在下一行password输入root用户的密码即可完成root用户的登录,这种方式进行登录root改变用户,并且改变当前路径至root用户的家目录
- 退出root用户登录,返回普通用户的方式是输入exit或按下ctrl+d键
2. root用户切换普通用户的两种方法
root用户没有权限限制,所以由root用户切换为普通用户的时候不需要输入密码
- su 你想要切换的普通用户名 输入完后直接进行登录普通用户,不需要输入普通用户密码,这种方式进行切换普通用户的时候只改变用户,不改变当前路径
- 退出普通用户登录,返回root用户的方式是输入exit或按下ctrl+d键
- su - 你想要登录的普通用户名,直接进行登录普通用户,不需要输入普通用户密码,进行登录普通用户,并且改变当前路径至普通用户的家目录
- 退出普通用户登录,返回root用户的方式是输入exit或按下ctrl+d键
3. 对命令进行短暂提权
- 当我们是普通用户的时候,需要受到权限约束,又不想切换成root用户进行操作,那么这时候就要使用到 sudo 指令 进行对命令进行短暂提权
- 由于我们新建的用户没有被添加到信任白名单中,所以不被系统信任,对于如何进行操作才能被系统信任,请期待小编后期讲解
二、linux权限管理
1. 权限认证和身份(人)与属性有关
权限即你是否可以做这件事情,比如:听网易云vip歌曲的时候,只有vip身份的用户才可以听,普通身份用户无法听
- 权限的认证跟身份有关(权限也和人也有关)。比如:网易云vip音乐关心的你是否是vip,这跟你的身份有关。linux文件访问者分为三种:u(user)拥有者,g(group)所属组,o(other)其他人。人分为:root用户和普通用户,root用户无视权限,普通用户受到权限的约束。由人去扮演不同的身份(拥有者,所属组,其他人)去认证权限做事情
- 权限的认证还跟事物的属性有关。例如:你想在网易云上听周杰伦的《反方向的钟》,尽管你有vip可以听网易云音乐上所有的歌曲,可是网易云上买不到周杰伦的《反方向的钟》的版权,网易云上不能满足你的要求,那么你在网易云上就没有听周杰伦的《反方向的钟》的权限。这个事物的属性要满足你想要做的事情你才能有对应的权限。文件的属性包括:可读r,可写w,可执行x,-对应权限的位置没有权限
2. 文件的类型和权限和访问者和后缀
- 文件的类型包括很多:
- - 普通文件:文本,可执行程序,库等
- d 目录文件
- b 块设备文件:磁盘文件
- c 字符设备文件:显示器、键盘文件
- p 管道文件:用来进行通信
- l 软链接:类似于windows中的中的快捷方式
- 不同于windows,在linux中识别文件类型不看文件的后缀名,比如test和test.txt都是普通文件,但是它们的后缀名都不同,linux操作系统就无法识别了吗?不是,linux操作系统一样可以进行识别它看的是文件的类型 - 进行的区分
- 在linux中文件的后缀名主要是给用户看的,关于后缀名的定义是看用户需求进行定义
- 对于文件来讲,你去访问这个文件,那么你就是一个访问者的身份,这个访问者可以被细分为拥有者,所属组,其他人,其中文件的拥有者和所属组被显示出来,关于其他人的判断,是当你访问这个文件,如果你不是拥有者或所属组,那么你就被判别为其他人
- 身份权限认证为拥有者,所属组,其他人其中之一,一旦认证不能更改
- 使用 ll 指令查看文件属性,拥有者,所属组,其他人依次对应权限,前三个为拥有者权限,中间三个为所属组权限,后三个为其他人权限,并且访问者(拥有者,所属组,其他人)的文件权限只有三种且权限位置不变
3. 权限的简单使用
- 对于root用户来说它的存在对于普通用户关于权限这方面就像开挂一样,任何权限在它面前都形同虚设,下图中root被识别为其他人,但是它的机制就是无视权限,即使root被识别为其他人,但是它仍然可以进行文件的读写执行
- 对于wzx用户来说,它是一个普通用户,它被识别为拥有者,那么拥有者可以读写执行
- 对于wzx1用户来说,它是一个普通用户,它被识别为其他人,那么它没有root用户般开挂的机制,那么它就只能受到权限约束不能读,不能写,不能执行
三、权限的修改
chmod指令
使用chmod指令可以完成对指定身份(拥有者u,所属组g,其他人o)的权限(读r,写w,执行x)的修改
1. 指定修改的具体权限进行修改
- chmod u+x 要修改权限的文件 使用chmod指令对拥有者的权限加上可执行,所属组或其他人的权限修改操作将u换成对应的g或o,其它相同
- chmod u-x 要修改权限的文件 使用chmod指令对拥有者的权限减去可执行,所属组或其他人的权限修改操作将u换成对应的g或o,其它相同
- chmod u-rw 要修改权限的文件 使用chmod指令对拥有者的权限减去可读可写,所属组或其他人的权限修改操作将u换成对应的g或o,其它相同
- chmod u+rw 要修改权限的文件 使用chmod指令对拥有者的权限加上可读可写,所属组或其他人的权限修改操作将u换成对应的g或o,其它相同
- chmod a-rw 要修改权限的文件 使用chmod指令对所有身份减去可读可写,所属组或其他人的权限修改操作将u换成对应的g或o,其它相同
- chmod a+rw 要修改权限的文件 使用chmod指令对所有身份加上可读可写,所属组或其他人的权限修改操作将u换成对应的g或o,其它相同
2. 使用八进制方式进行权限修改
对于r/- w/- x/- 就类似于byte位,可以将其看作三个开关,那么就有8种组合,就可以使用八进制数来进行表示,使用八进制来表示一种身份,八进制为0到7,那么一共有三种身份,那么就可以使用三位0到7的数字进行表示修改权限,对于单个8进制位数有
- 0表示不可读不可写不可执行,1表示不可读不可写可执行
- 2表示不可读可写不可执行,3表示不可读可写可执行
- 4表示可读不可写不可执行,5表示可读不可写可执行
- 6表示可读可写不可执行,7表示可读可写可执行
- chmod 三个八进制数 要修改权限的文件,可以将三个身份的权限修改为任意你想要修改的权限
3. 修改文件拥有者和所属组
当文件拥有者和所属组的用户是普通用户时进行修改文件拥有者和所属组需要争取得那个修改后的用户的同意,但是这比较困难,可能会出现不同步,那边不同意等情况,所以默认使用root用户或使用sudo提权后才可以进行修改
chown指令
- chown 你要修改后的用户名 要修改文件拥有者的文件名,即可完成对文件拥有者的修改,注意你必须是root用户或使用sudo提权后才可以进行修改
chgrp指令
- chown 你要修改后的用户名 要修改文件所属组的文件名,即可完成对文件所属组的修改,注意你必须是root用户或使用sudo提权后才可以进行修改
四、umask指令
umask可以查看或修改文件掩码,凡是在umask中出现的文件权限,在文件的最终权限中都不会出现
- 普通文件的起始权限是666
- 目录文件的起始权限是777
- 为什么我们看到的新建文件的最终权限却是664,看到的新建目录的最终权限却是775,这就更文件掩码有关
- 我们使用umask查看一下文件掩码
- 最终权限=起始权限&(~umask)
- umask修改文件掩码
五、目录的权限
关于普通文件大部分都是只需要读r,写w即可,关于普通文件的可执行x,我们默认限制掉那么关于目录的rwx有对应是什么呢?
- 读r:是否允许我们在指定目录下查看文件内容
- 写w:是否允许我们在当前目录下进行创建,修改,删除操作
- 可执行x:是否允许我们进入指定的目录
- 对于文件来说,是否可以删除这个文件是由它的目录属性w来决定,并不是这个文件属性本身决定
六、粘滞位
- 有时候多个用户想要进行文件信息的共享,那么就需要一个共享目录,如果将这个共享建在自己的家目录,而家目录的权限的700,其他人都无法进入这个目录,更不能查看共享文件了,那么我们应该如何做呢?
- 所以我们建立的家目录不应该在任何一个用户的家目录下,应该在根目录下建立一个共享文件
- 接下来我们可以进行文件传输,此时两个用户的路径都处于根目录下的shared目录中
- 此时wzx写文件跟wzx1进行打招呼,wzx1却将wzx进行打招呼给删除了,这奇不奇怪,明明文件都不是wzx1进行创建的,但是wzx1却可以删除文件,把wzx用户整懵了,这时因为什么呢?
- 因为决定能够删除这个文件的并不是这个文件本身决定的,而是由它处于的目录属性中的w权限决定的,它们所处的shared目录对于其他人的权限是rwx,即其他人可以对这个目录下的文件进行删除,所以wzx1可以将wzx进行打招呼给删除了,那么怎么样才能实现让用户自己自己创建的文件别人删除不了只能查看呢?注意一点,不可以将w权限限制掉,因为如果限制掉w权限,那么任何普通用户都没有办法对文件进行创建,修改,删除了,那么就无法实现我们的最初目的共享文件了,那么这个就应该使用粘滞位了
粘滞位 t 是可执行 x 权限中的一种特殊形式,粘滞位可以使该文件只能由文件拥有者或root用户进行删除,不同用户可以创建修改删除自己的文件,并且这个自己创建的文件其他人无法进行删除
- 注意:root用户有挂,可以随便创建修改删除任意文件
-
chmod -t 目录名,可以对目录设置粘滞位t,进而达到我们想要的目的
-
对目录设置完粘滞位后,wzx1不能再对wzx用于打招呼的文件进行删除,即实现了不同用户可以创建修改删除自己的文件,并且这个自己创建的文件其他人无法进行删除,注意:root用户有挂,可以随便创建修改删除任意文件
-
在根目录中同样也有用于文件共享的目录,这个目录名叫做tmp,可以看到这个目录已经被设置了粘滞位
总结
以上就是今天的博客内容啦,希望对读者朋友们有帮助
水滴石穿,坚持就是胜利,读者朋友们可以点个关注
点赞收藏加关注,找到小编不迷路!