【linux】权限理解

目录

[1. shell命令以及运行原理](#1. shell命令以及运行原理)

[2. 权限的概念](#2. 权限的概念)

[3. 权限管理](#3. 权限管理)

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

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

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

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

[3. file指令](#3. file指令)

[4. 目录的权限★](#4. 目录的权限★)

[5. 粘滞位★](#5. 粘滞位★)

[6. 权限总结](#6. 权限总结)


人总要为过去的懒惰而付出代价!


1. shell命令以及运行原理

Linux 严格意义上说的是一个操作系统,我们称之为 " 核心( kernel ) " ,但我们一般用户,不能直接使用 kernel。 而是通过kernel 的 " 外壳 " 程序,也就是所谓的 shell ,来与 kernel沟通。【通俗理解:用户通过shell和操作系统沟通】shell:外壳程序

(1)从技术角度, Shell 的最简单定义:命令行解释器( command Interpreter )主要包含:
将使用者的命令翻译给核心( kernel )处理;同时,将核心的处理结果翻译给使用者。
(2)外壳存在的意义:shell降低操作OS的成本;保护OS;
注意:linux下,外壳指的是命令行解释器;windows下,外壳指的是图像化界面。
我们centos 7常用的命令行解释器(shell),叫做bash。【shell是统称,bash是具体的一个】

2. 权限的概念

Linux 下有两种用户:超级用户( root )、普通用户。
超级用户:可以再 linux 系统下做任何事情,不受限制
普通用户:在 linux 下做有限的事情。
超级用户的命令提示符是 "#" ,普通用户的命令提示符是 "$" 。
命令 : su [ 用户名 ]
功能 :切换用户。
例如,要从 root 用户切换到普通用户 user ,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su root( root 可以省略),此时系统会提示输入 root 用户的口令

(1)从普通用户到普通用户,需要密码。
(2)从超级用户到普通用户,不需要密码。【超级用户密码很重要】
建议:root密码和普通用户密码建议设置不一样,而且超级用户的密码一定要复杂。

3. 权限管理

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

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

linux系统中,人分为三类:(1)文件的拥有者(owner)(2)文件的所属组(grouper)
(3)文件的其他用户(other)
Linux 下有两种用户:超级用户( root )、普通用户。(root和普通用户可以是以上三类的某一个)

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

文件类型:(linux下不以文件后缀来区分文件)
d :文件夹(文本,源代码,可执行程序、第三方静态库等)【目录文件】

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

gcc是linux上的一个编译器软件。【虽然linux不以文件后缀来区分文件,但是linux里的软件会】

b) 基本权限
i. 读( r/4 ): Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii. 写( w/2 ): Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii. 执行( x/1 ): execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv."---"表示不具有该项权限

权限是围绕用户和文件属性(读写执行)展开的。

对文件的权限操作:(1)修改文件的属性(2)修改人

2.3 文件权限值的表示方法

a) 字符表示方法

b)8进制数值表示方法

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

root不受普通用户权限的限制。
a)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

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

chown user1 f1

chown -R user1 filegroup1

chown 改变的拥有者 文件 ;此时会报错,应该写成 (1)sudo chown 改变的拥有者 文件;【sudo的作用,提升权限以root的身份去执行程序】(2)先把用户改成超级用户,再chown 改变的拥有者 文件。
c)chgrp
功能 :修改文件或目录的所属组
格式 : chgrp [ 参数 ] 用户组名 文件名
常用选项 : -R 递归修改文件或目录的所属组
实例:
chgrp users /abc/f2
(1)sudo chgrp 改变的所属组 文件【sudo的作用,提升权限以root的身份去执行程序】(2)先把用户改成超级用户,再chgrp 改变的所属组 文件。
一次直接改变拥有者和所属组:
(1)sudo chown 改变的拥有者: 改变的所属组 文件(2)先把用户改成超级用户,再chown 改变的拥有者: 改变的所属组 文件。
d)umask
功能
查看修改文件掩码
新建文件夹默认权限 =0666(八进制,第一个0是八进制的表示)
新建目录默认权限 =0777(八进制)
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是 mask ,则实际创建的出来的文件权限是 : mask & ~umask
格式 : umask 权限值
说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022 ,普通用户默认为0002 。
实例:

umask 755

umask // 查看

umask 044// 设置

(1)我们创建目录的权限是:775;创建文件的权限是:664(不同系统可能会有差异)

默认目录的权限是:777;默认文件的权限是:666

(2)umark 0000;那么我们创建目录的权限是:777;创建文件的权限是:666【即默认权限】

3. file指令

功能说明 :辨识文件类型。
语法 : file [ 选项 ] 文件或目录 ...
常用选项
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

file 文件/目录

4. 目录的权限★

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

5. 粘滞位★

当拥有目录的写权限,就可以进行创建和删除文件。但是拥有目录的写权限的所有人,都可以删除目录的任何文件。【此时我们不想让别人删除我们自己的文件,目录可以加上粘滞位】
当一个目录被设置为 " 粘滞位 "( 用 chmod +t 目录), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

6. 权限总结

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

(4)所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

相关推荐
liebe1*16 分钟前
第七章 防火墙地址转换
运维·服务器·网络
好好学操作系统12 分钟前
autodl 保存 数据 跨区
linux·运维·服务器
dbitc14 分钟前
WIN11把WSL2移动安装目录
linux·运维·ubuntu·wsl
KingRumn14 分钟前
Linux同步机制之信号量
linux·服务器·网络
嵌入式学习菌14 分钟前
SPIFFS文件系统
服务器·物联网
旺仔Sec15 分钟前
2026年度河北省职业院校技能竞赛“Web技术”(高职组)赛项竞赛任务
运维·服务器·前端
BullSmall35 分钟前
linux 根据端口查看进程
linux·运维·服务器
herinspace40 分钟前
管家婆软件年结存后快马商城操作注意事项
服务器·数据库·windows
_F_y1 小时前
Linux:进程间通信
linux
嘻哈baby1 小时前
Ansible自动化运维入门:从手工到批量部署
运维·自动化·ansible