Linux权限管理

目录

前言

1. Linux权限的概念

2. Linux权限管理

2.1 修改权限

 拓展

 2.2 修改拥有者

 2.3 修改所属组

 3. 文件类型

 3.1 file指令

4. 权限掩码

umask指令

 5.目录权限

 6. 粘滞位

总结


前言

        Linux作为一款开源操作系统,其权限管理机制是非常重要的一部分。熟练掌握Linux权限,可以帮助我们更好地管理文件和目录,保障系统的安全性和稳定性。

在这里插入图片描述

1. Linux权限的概念

Linux中分为两种用户:

  • 超级用户(root)
  • 普通用户

超级用户可以再Linux系统下做任何事情,不受限制 

普通用户在Linux下是受限制的,Linux权限的管理也就是对普通用户权限的管理

 比如:

用户test(普通用户)访问www(普通用户)的文件夹被拒绝访问

 root账户不受任何限制直接进入:

 所以root用户的密码非常重要,不要泄露!!

 命令:su +【用户名】

 功能:切换用户

从root用户切换到普通用户,则使用 su+user

从普通用户切换到root用户则使用 su+root(root可以省略)

 普通用户执行sudo -ls,在正常的情况下:

 没有设置权限的情况下无法执行

sudo + 指令 :以root身份运行

 执行显示test(用户)不再sudoers文件里

 解释:

sudoers文件相当于一个白名单,在名单里的用户才可以使用sudo

 注意:

sudoers文件拥有者是root(超级管理员)

普通用户无法访问修改

2. Linux权限管理

 文件访问者分类:

  • 文件和文件目录的所有者:u---User
  • 文件和文件目录的所有者所在组的用户:g---Group
  • 其它用户:o---Others 

 使用 “ ls -l ”指令可以查看文件的详细信息

 这些信息都代表着什么意思?

 权限字符表示:

 进制数表示:

2.1 修改权限

 语法:chmod +【参数】 + 文件
 功能: 设置文件访问权限
 常用选项:

  •  字符修改

 比如:

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号: 

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

去除拥有者的r权限

 

 增加拥有者可读可执行权限

 去除拥有者可执行权限,去除所属组可写权限,去除其他人可读权限

 

给所有人写权限:

  •   进制数修改权限

 3位进制数:

  1. 第1位代表拥有者权限
  2. 第2位是所属组权限
  3. 第3位是其他用户权限

 

 拓展

 上述的指令是对文件的权限进行修改,私下大家可以进行权限验证

Linux执行文件:

  • 有可执行权限
  • 是可执行文件

 注意:

当拥有者和和所属组一样,而拥有者没有可执行权限,拥有者将无法执行文件:

 当拥有者和和所属组一样时,权限判断时有优先次序,系统在判断时,拥有者没有可执行权限就直接禁止,不会再进行后续判断

如果是root账户,即使没有读写执行权限依然可以操作:

root之下没有权限

 2.2 修改拥有者

 语法:chown +【用户】 + 文件
 功能: 修改文件拥有者

 正常情况下,普通用户无法私自将自己所属文件修改为其他用户所属:

 需要以root身份执行:

其他用户使用sudo指令也可以修改

 2.3 修改所属组

  语法:chgrp +【用户组】 + 文件
  功能: 修改文件所属组

常用选项:

  • -R 递归修改文件或目录的所属组

 同时修改拥有者和所属组:

 3. 文件类型

 Linux的文件类型不通过后缀区分(不代表Linux不用后缀)

常见文件类型:

  •  -开头: 普通文件,文本、源代码、图片、视频、库、可执行等
  • d开头: 目录文件
  • b开头: 块设备文件 ->磁盘
  • c开头: char,字符设备文件 ->键盘显示器
  • l开头: 链接文件
  • p开头: 管道文件
  • s开头: socket文件

 3.1 file指令

 功能:辨识文件类型。
 语法:file 【选项】 文件或目录...
 常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容

 比如:

4. 权限掩码

权限顶格写权限就是777(所有人都有rwx权限)

 那为什么每次创建目录默认权限不是777?每次创建的文件默认权限不是666?

 

这里就要引入权限掩码的概念了

umask指令

功能:查看或修改文件掩码

  •  查看权限掩码:
umask

 我的设备上的权限掩码是002

 我创建的文件默认权限是664

创建文件时:从起始权限中,去掉umask中出现的权限

 666二进制:110 110 110

 002二进制:000 000 010

 去除002:110 110 100 ->664

  • 修改权限掩码

语法:umask 【权限掩码】

 权限掩码是怎么去除的?

去除:不是二进制相减

 计算规则:
 起始权限& (~按位取反umask)=最终权限(默认)

 比如:

666:
110 110 110
000 000 011->按位取反:111 111 100

110 110 110
111 111 100 &
——————————
110 110 100 ->664


777:
111 111 111
111 111 100 &
——————————
111 111 100 ->774

 

 5.目录权限

     前边我们提到的例子都是对文件的限制,那权限对目录有什么影响呢?

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中

  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容

  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

 注意:

 没有w(写)权限,仍然可以修改文件权限(可能有些版本操作系统里不允许),但不允许移动和修改文件名

 6. 粘滞位

  那么现在问题来了,只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不管这个用户是否有这个文件的写权限

 这样似乎很不复合常理,我的文件,凭什么你可以删?

 也就是说:

 一个文件能否被删除,并不取决于文件本身,取决于文件所在的目录,目录拥有者是否有w权限

 一般情况下普通用户无法进入到其他用户目录下,更无法创建文件

 如果不能将文件创建到其他用户的文件下,那用户之间如何进行数据交换呢?

 为了解决这个问题,Linux中有一个特殊的目录:

特殊目录(tmp,拥有者root)

 

来实现文件共享,other权限:rwx

 tmp目录允许所有用户将临时文件创建在该目录。

那么问题来了:

用户都有W权限,那都可以删除文件,那如何防止自己的文件被其他用户删除?

把所有的用户都去除w权限不行,因为去除other的w权限,其他用户无法删除的同时,也无法创建文件。

为了解决这个问题,Linux给其他用户新增一个权限:t(粘滞位)

 粘滞位:给目录中的other设置一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定:该目录里的文件,只有root和文件(或目录)的拥有者有权利进行删除。


总结

       掌握Linux权限管理,可以更好地管理文件和目录,提高系统的安全性和稳定性,上述的内容,大家可以私下实验一下,亲身体验才能更有感触。好了,以上便是本期全部内容。最后,感谢阅读!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值