【Linux系统】第三节—权限

Hello,好久不见------

云边有个稻草人-CSDN个人博客主页

Linux-本节文章所属专栏-欢迎订阅-持续更新中~~~

目录

hi!在这里---本节课重要知识点详解

一、Shell命令以及运行原理

二、Linux权限

[2.1 Linux权限的概念](#2.1 Linux权限的概念)

[2.2 Linux权限管理](#2.2 Linux权限管理)

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

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

(1)chmod

(2)chown

(3)chgrp

(4)umask

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

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

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

[2.8 关于权限的总结](#2.8 关于权限的总结)

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

[------------------------------------------------ 《最近》 ------------------------------------------------](#———————————————— 《最近》 ————————————————)


正文开始------

hi!在这里---本节课重要知识点详解

一、Shell命令以及运行原理

Linux 严格意义上说的是⼀个操作系统,我们称之为"核心(kernel)",但我们⼀般用户,不能直接使用kernel。而是通过kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

对⽐windows GUI ,我们操作windows 不是直接操作windows内核,⽽是通过图形接⼝,点击,从⽽完成我们的操作(⽐如进⼊D盘的操作,我们通常是双击D盘盘符.或者运⾏起来⼀个应⽤程序)。
shell 对于Linux ,有相同的作⽤,主要是对我们的指令进⾏解析,解析指令给Linux内核。反馈结果在通过内核运⾏出结果,通过shell解析给⽤⼾。(shell是所有外壳程序的统称)

**帮助理解:**如果说你是⼀个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你⼼动的MM⼩花。你看上了⼩花,但是有不好意思直接表⽩,那就让你家⼈找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给⼩花,⽽我们找到媒婆姓王,所以我们叫它王婆, 它对应我们常使⽤的bash。


二、Linux权限

2.1 Linux权限的概念

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。

超级用户的命令提示符是"#",普通用户的命令提示符是"$"。

  • 命令:su [⽤⼾名]
  • 功能:切换⽤⼾。

例如,要从root⽤⼾切换到普通⽤⼾user,则使⽤ su user。 要从普通⽤⼾user切换到root⽤⼾则使⽤ su root(root可以省略),此时系统会提⽰输⼊root⽤⼾的密码。

2.2 Linux权限管理

(1)⽂件访问者的分类(⼈)

  • ⽂件和⽂件⽬录的所有者:u---User

  • ⽂件和⽂件⽬录的所有者所在的组的⽤⼾:g---Group

  • 其它⽤⼾:o---Others
    (2)⽂件类型和访问权限(事物属性)
    ⽂件类型:

  • d:⽂件夹

  • -:普通⽂件

  • l:软链接(类似Windows的快捷⽅式)

  • b:块设备⽂件(例如硬盘、光驱等)

  • p:管道⽂件

  • c:字符设备⽂件(例如屏幕等串⼝设备)

  • s:套接⼝⽂件

基本权限:

  • 读(r/4):Read对⽂件⽽⾔,具有读取⽂件内容的权限;对⽬录来说,具有浏览该⽬录信息的权限
  • 写(w/2):Write对⽂件⽽⾔,具有修改⽂件内容的权限;对⽬录来说具有删除移动⽬录内⽂件的权限
  • 执⾏(x/1):execute对⽂件⽽⾔,具有执⾏⽂件的权限;对⽬录来说,具有进⼊⽬录的权限
  • "---"表⽰不具有该项权限

2.3 ⽂件权限值的表示方法

  • 字符表示方法
  • 8进制数值表示方法

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

(1)chmod

**功能:**设置⽂件的访问权限
**格式:**chmod [参数] 权限 ⽂件名
常⽤选项:

  • R -> 递归修改⽬录⽂件的权限

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

  • ⽤⼾表⽰符+/-=权限字符

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

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

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

  • ⽤⼾符号:

  • u:拥有者

  • g:拥有者同组⽤

  • o:其它用户

  • a:所有用户

    • 实例:
      chmod u+w /home/abc.txt
      chmod o-x /home/abc.txt
      chmod a=x /home/abc.txt
    • 三位8进制数字
      实例:
      chmod 664 /home/abc.txt
      chmod 640 /home/abc.txt
(2)chown

**功能:**修改⽂件的拥有者
**格式:**chown [参数] ⽤⼾名 ⽂件名
实例:

  • chown user1 f1
  • chown -R user1 filegroup1
(3)chgrp

**功能:**修改⽂件或⽬录的所属组
**格式:**chgrp [参数] ⽤⼾组名 ⽂件名
常⽤选项:-R 递归修改⽂件或⽬录的所属组
实例: chgrp users /abc/f2

(4)umask

功能:

  • 查看或修改⽂件掩码
  • 新建⽂件夹默认权限=0666
  • 新建⽬录默认权限=0777
  • 但实际上你所创建的⽂件和⽬录,看到的权限往往不是上⾯这个值。原因就是创建⽂件或⽬录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的⽂件权限是: mask & ~umask

**格式:**umask 权限值
**说明:**将现有的存取权限减去权限掩码后,即可产⽣建⽴⽂件时预设权限。超级⽤⼾默认掩码值为0022,普通⽤⼾默认为0002。
实例:

  • umask 755
  • umask //查看
  • umask 044//设置

2.5 file 指令

**功能说明:**辨识⽂件类型。
语法: file [ 选项 ] ⽂件或⽬录 ...
常⽤选项:

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

2.6 使⽤ sudo 分配权限

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

bash 复制代码
# chmod 740 /etc/sudoers
# vi /etc/sudoer

**格式:**接受权限的⽤⼾登陆的主机 =(执⾏命令的⽤⼾) 命令
(2)使⽤ sudo 调⽤授权的命令

bash 复制代码
$ sudo --u ⽤⼾名 命令

实例:

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

2.7 ⽬录的权限

  • 可执⾏权限: 如果⽬录没有可执⾏权限, 则⽆法cd到⽬录中.
  • 可读权限: 如果⽬录没有可读权限, 则⽆法⽤ls等命令查看⽬录中的⽂件内容.
  • 可写权限: 如果⽬录没有可写权限, 则⽆法在⽬录中创建⽂件, 也⽆法在⽬录中删除⽂件.

于是, 问题来了~~ 换句话来讲, 就是只要⽤⼾具有⽬录的写权限, ⽤⼾就可以删除⽬录中的⽂件, ⽽不论这个⽤⼾是否有这个⽂件的写权限。
这好像不太科学啊, 我张三创建的⼀个⽂件, 凭什么被你李四可以删掉? 我们⽤下⾯的过程印证⼀下。

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 0 9⽉ 19 15:59 root.c
[root@localhost ~]$ su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的⽂件
rm:是否删除有写保护的普通空⽂件 "/home/root.c"?y
[litao@localhost ~]$ exit
logout

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

2.8 关于权限的总结

  • ⽬录的可执⾏权限是表⽰你可否在⽬录下执⾏命令。
  • 如果⽬录没有 -x 权限,则⽆法对⽬录执⾏任何命令,甚⾄⽆法 cd 进⼊⽬, 即使⽬录仍然有 -r 读
  • 权限(这个地⽅很容易犯错,认为有读权限就可以进⼊⽬录读取⽬录下的⽂件)
  • ⽽如果⽬录具有 -x 权限,但没有 -r 权限,则⽤⼾可以执⾏命令,可以 cd 进⼊⽬录。但由于没有⽬录的读权限
  • 所以在⽬录下,即使可以执⾏ ls 命令,但仍然没有权限读出⽬录下的⽂档。

2.9 粘滞位

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. 该⽂件的所有者删除
    完------

分享一首好听的歌吧

------------------------------------------------ 《最近》 ------------------------------------------------

至此结束------

我是云边有个稻草人

期待与你的下次相遇!

相关推荐
O。o.尊都假都2 分钟前
UDP协议
linux·服务器·网络·网络协议·udp
天夏已微凉32 分钟前
1.3.1 Linux音频框架alsa详细介绍
linux·音视频
惜.己33 分钟前
linux中的常用命令(一)
linux·运维·服务器
m0_593758102 小时前
系统重装之后,通过ssh无法登录
linux·运维·服务器
银河麒麟操作系统3 小时前
【银河麒麟高级服务器操作系统】服务器外挂存储ioerror分析及处理分享
linux·运维·服务器
某不知名網友3 小时前
Linux_进程退出与进程等待
linux·运维·服务器
程序员JerrySUN3 小时前
驱动开发硬核特训 · Day 28(上篇):pinctrl 子系统详解与实战分析
linux·驱动开发
chennalC#c.h.JA Ptho4 小时前
Centos系统详解架构详解
linux·经验分享·笔记·系统架构·系统安全
独行soc4 小时前
2025年渗透测试面试题总结-某步在线面试(题目+回答)
linux·网络·安全·web安全·面试·职场和发展·渗透安全
mixboot4 小时前
ping_test_parallel.sh 并行网络扫描脚本
linux·ping·ip在线扫描