【Linux】Linux权限

目录

一、Linux权限的概念

二、Linux权限管理

[2.1 文件访问者的分类(人)](#2.1 文件访问者的分类(人))

[2.2 文件类型和访问权限(事物属性)](#2.2 文件类型和访问权限(事物属性))

[2.3 文件权限值的表示方法](#2.3 文件权限值的表示方法)

[2.4 文件访问权限的相关设置方法](#2.4 文件访问权限的相关设置方法)

[2.5 file 指令](#2.5 file 指令)

[2.6 使用 sudo 分配权限](#2.6 使用 sudo 分配权限)

[2.7 目录的权限](#2.7 目录的权限)

[2.8 粘滞位](#2.8 粘滞位)

三、权限的总结


一、Linux权限的概念

Linux下有两种用户:超级用户(root),普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是"#",普通用户的命令提示符是"$"。

命令:su 用户名

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

二、Linux权限管理

2.1 文件访问者的分类(人)

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

2.2 文件类型和访问权限(事物属性)

1. 文件类型

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

2. 基本权限

  • 读(r/4):Read对文件而言,具有读取文件内容的权限;对于目录来说,具有浏览该目录信息的权限。
  • 写(w/2):Write对文件而言,具有修改文件内容的权限;对于目录来说,具有删除移动目录内文件的权限。
  • 执行(x/1):execute对文件而言,具有执行文件的权限;对于目录来说,具有进入目录的权限。

2.3 文件权限值的表示方法

1. 字符表示法

|---------|---------|
| Linux表示 | 说明 |
| r-- | 只读 |
| -w- | 只写 |
| --x | 仅可执行 |
| rw- | 可读可写 |
| r-x | 可读可执行 |
| -wx | 可写可执行 |
| rwx | 可读可写可执行 |
| --- | 无权限 |

2. 8进制数值表示法

|------|-----|-----|
| 权限符号 | 8进制 | 2进制 |
| r | 4 | 100 |
| w | 2 | 010 |
| x | 1 | 001 |
| rw | 6 | 110 |
| rx | 5 | 101 |
| wx | 3 | 011 |
| rwx | 7 | 111 |
| --- | 0 | 000 |

2.4 文件访问权限的相关设置方法

1. chmod

功能:设置文件的访问权限

格式:chmod 参数 权限 文件名

常用选项

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod 命令权限值的格式:

1️⃣用户标识符 +/-=权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限
  • 用户符号:
  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

示例

chmod u-w test1

2️⃣三位8进制数字

示例

chmod 666 test1

2. chown

功能:修改文件或目录的拥有者

格式:chown 参数 用户名 文件名或目录名

常用选项:-R 递归修改文件或目录的所属组

示例

3. chgrp

功能:修改文件的所属组

格式:chgrp 参数 用户名 文件名或目录名

常用选项:-R 递归修改文件或目录的所属组

示例

4. umask

功能

查看或修改文件掩码

新建文件夹默认权限=0666

新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值,原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建出来的文件权限是:mask&~umask

格式:umash 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设的权限。超级用户默认权限掩码值为0022,普通用户默认权限掩码值为0002。

示例

2.5 file 指令

功能:辨识文件类型

语法:file 选项 文件或目录

常用选项

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

示例

2.6 使用 sudo 分配权限

(1)修改/etc/sudoers 文件分配文件

chmod 740 /etc/sudoers

vi /etc/sudoer

格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令

(2)使用 sudo 调用授权的命令

sudo --u 用户名 命令

示例:

sudo -u root /usr/sbin/useradd u2

2.7 目录的权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

于是, 问题来了~~

换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 我们用下面的过程印证一下.

为了解决这个不科学的问题, Linux引入了粘滞位的概念.

2.8 粘滞位

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  • 一、超级管理员删除
  • 二、该目录的所有者删除
  • 三、该文件的所有者删除

三、权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式