【Linux学习笔记】Linux用户和文件权限的深度剖析

【Linux学习笔记】Linux用户和文件权限的深度剖析

🔥个人主页大白的编程日记

🔥专栏Linux学习笔记


前言

文章目录

  • 【Linux学习笔记】Linux用户和文件权限的深度剖析
    • 前言
    • [一. Linux权限管理](#一. Linux权限管理)
      • [1.1 文件访问者的分类(人)](#1.1 文件访问者的分类(人))
      • [1.2 文件类型和访问权限(事物属性)](#1.2 文件类型和访问权限(事物属性))
    • [二. 文件权限值的表示方法](#二. 文件权限值的表示方法)
      • [2.1 file 指令](#2.1 file 指令)
      • [2.2 关于权限的总结](#2.2 关于权限的总结)
      • [2.3 粘滞位](#2.3 粘滞位)
    • 后言

哈喽,各位小伙伴大家好!上期我们讲了Linux基本指令及其分析(一) 今天我们讲的是Linux基本指令及其分析(二)。话不多说,我们进入正题!向大厂冲锋!

一. Linux权限管理

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

  • 文件和文件目录的所有者:u---User(中国平民法律问题)
  • 文件和文件目录的所有者所在的组的用户:g--Group(不多说)
  • 其它用户:O--Others(外国人)

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

  • 文件类型:
    d:文件夹
    -:普通文件
    l:软链接(类似Windows的快捷方式)
    b:块设备文件(例如硬盘、光驱等)
    p:管道文件
    c:字符设备文件(例如屏幕等串口设备)
    s:套接口文件
  • 基本权限:
    读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
    写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
    执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
    "---"表示不具有该项权限

二. 文件权限值的表示方法

  • 字符表示方法

  • 8进制数值表示方法

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

  • chmod
    功能: 设置文件的访问权限
    格式: chmod[参数]权限文件名
    常用选项:

  • R->递归修改目录文件的权限

  • 说明:只有文件的拥有者和root才可以改变文件的权限
    chmod命令权限值的格式:

  • 用户表示符+/-=权限字符

    +:向权限范围增加权限代号所表示的权限

    -:向权限范围取消权限代号所表示的权限

    =:向权限范围赋予权限代号所表示的权限

    用户符号:

    u:拥有者

    g:拥有者同组用

    o:其它用户

    a:所有用户

    实例:

  • chmod u+w /home/abc.txt

  • chmod o-x /home/abc.tx2t

  • chmod a=x /home/abc.txt

  • 三位8进制数字
    实例:

  • chmod 664 /home/abc.txt

  • chmod 664 /home/abc.txt

  • chown
    功能: 修改文件的拥有者
    格式: chown [参数] 用户名文件名
    实例:

  • chown userl f1

  • chown -R userl filegroupl

  1. chgrp
    功能: 修改文件或目录的所属组
    格式: chgrp[参数]用户组名文件名
    常用选项: -R递归修改文件或目录的所属组
    实例: chgrp users /abc/f2
  2. umask
    功能:
  • 查看或修改文件掩码
  • 新建文件夹默认权限=0666
  • 新建目录默认权限=0777
  • 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是:mask&~umask
    格式: umask 权限值
    说明: 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为
    0022,普通用户默认为0002。
    实例:
  • umask 755
  • umask //查看
  • umask 044//设置



2.1 file 指令

功能说明: 辨识文件类型。
语法: file[选项]文件或目录...
常用选项:

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

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

bash 复制代码
 # chmod 740 /etc/sudoers
 # vi /etc/sudoer
bash 复制代码
$ sudo --u ⽤⼾名 命令

实例:

bash 复制代码
$ sudo -u root /usr/sbin/useradd u2

目录的权限

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

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

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

bash 复制代码
[root@localhost ~]$ chmod 0777 /home/
 [root@localhost ~]$ ls /home/ -ld  
drwxrwxrwx. 3 root root 4096 9
⽉
  19 15:58 /home/
 [root@localhost ~]$ touch /home/root.c
 [root@localhost ~]$ ls -l /home/
总⽤量
 4-rw-r--r--.  1 root  root     
0 9
⽉
  19 15:58 abc.c
 drwxr-xr-x. 27 litao litao 4096 9
⽉
  19 15:53 litao-rw-r--r--.  1 root  root     
[root@localhost ~]$ su - litao
 0 9
⽉
  19 15:59 root.c
 [litao@localhost ~]$ rm /home/root.c  #litao
可以删除
root
创建的⽂件
 
rm
:是否删除有写保护的普通空⽂件
 "/home/root.c"
?
y
 [litao@localhost ~]$ exit 
logout

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

2.2 关于权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目,即使目录仍然有-r读
    权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有
    目录的读权限
  • 所以在目录下,即使可以执行Is命令,但仍然没有权限读出目录下的文档。

2.3 粘滞位

bash 复制代码
[root@localhost ~]$ chmod + t / home / # 加上粘滞位
[root@localhost ~]$ ls - ld / home /
drwxrwxrwt. 3 root root 4096 9月
19 16:00 / home /
[root@localhost ~]$ su - litao
[litao@localhost ~]$ rm / home / abc.c  #litao不能删除别⼈的⽂件
rm:是否删除有写保护的普通空⽂件"/home/abc.c"?y
rm :⽆法删除"/home/abc.c" :不允许的操作

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

  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除

后言

这就是Linux基本指令及其分析。大家自己好好消化!今天就分享到这! 感谢各位的耐心垂阅!咱们下期见!拜拜~

相关推荐
超级大只老咪1 小时前
快速进制转换
笔记·算法
嵩山小老虎1 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模2 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324472 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.3 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
一只自律的鸡4 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)4 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考
!chen4 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器
ling___xi4 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络