Linux 权限及管理

目录

一、Linux权限

1、概念

2、超级用户和普通用户的相关操作

[a. 添加用户,删除用户](#a. 添加用户,删除用户)

[b. 超级用户和普通用户的切换](#b. 超级用户和普通用户的切换)

[c. sduo提权以及白名单设置](#c. sduo提权以及白名单设置)

二、Linux权限管理

1、文件访问者的分类

2、文件访问类型和权限

[a. 文件类型](#a. 文件类型)

[b. 基本权限](#b. 基本权限)

3、文件权限值得表示方法

[a. 字符表示方法](#a. 字符表示方法)

[b. 8进制数值表示方法](#b. 8进制数值表示方法)

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

[a. chmod ---设置文件的访问权限](#a. chmod ---设置文件的访问权限)

[b. chown ---修改文件拥有者](#b. chown ---修改文件拥有者)

[c. chgrp ---修改文件或目录的所属组](#c. chgrp ---修改文件或目录的所属组)

[d. umask ---查看或修改文件掩码](#d. umask ---查看或修改文件掩码)

5、目录的权限

6、粘滞位

三、总结


一、Linux权限

1、概念

Linux 下有两种用户:超级用户( root )、普通用户。那么什么是超级用户,什么是普通用户呢?

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

2、超级用户和普通用户的相关操作

a. 添加用户,删除用户

那么该如何添加普通用户呢?

创建用户:第一步: adduser + 用户名 第二步:passwd + 用户名

删除用户:userdel -r + 用户名 (这样可以彻底删除干净,如果直接使用userdel + 用户名可能会删不干净) 这里补充一下:ls /home 可以查看当前账号有哪些普通用户。

如果直接使用userdel + 用户名导致并没有删除干净的解决办法:

b. 超级用户和普通用户的切换

超级用户----->普通用户:

su + 普通用户名 (超级用户切换到普通用户不需要输入密码)

退出:ctrl + d 或者 exit

普通用户---->超级用户:

第一种:su - 以root身份重新登录一次 (普通用户切换超级用户需要超级用户的密码)

第二种:单纯的身份切换 (普通用户切换超级用户需要超级用户的密码)

退出:ctrl + d 或者 exit

c. sduo提权以及白名单设置

现在我不想把我这个普通用户变成root,但是我却想让普通用户以root权限执行一条命令,有没有什么办法呢?

sudo touch file.txt 可以在命令前加上sudo 进行短暂提权

那么我现在不想每次都去进行sudo提权操作该怎么办呢?

使用sudo白名单配置(在root账号下操作)

1、ll /etc/sudoers ----查找白名单配置

2、vim /etc/sudoers

3、将普通用户添加进白名单

4、保存退出

二、Linux权限管理

1、文件访问者的分类

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

2、文件访问类型和权限

a. 文件类型

b. 基本权限

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

3、文件权限值得表示方法

a. 字符表示方法

b. 8进制数值表示方法

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

**a. chmod ---**设置文件的访问权限

格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有 文件的拥有者和root 才可以改变文件的权限

从上图中看出,通过chmod我们的文件权限确实被更改了,那么图中的u+x,u-x,g+w,o+w,这些都是什么呢?
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

我们可以向上图那样用字符进行修改,也可以使用3位8进制数进行修改:

这里需要注意一下:

普通文件的起始权限是:666 目录文件的起始权限是:777

b. chown ---修改文件拥有者

语法格式:chown+用户名+文件

对于普通用户而言,在更改拥有者时会被拒绝,这个时候就需要使用sudo命令:

c. chgrp **---**修改文件或目录的所属组

语法格式:chgrp+用户名+文件

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

和chown一样,对于普通用户而言,在更改所属组时会被拒绝,这个时候就需要使用sudo命令:

d. umask ---查看或修改文件掩码

上面也提到了:
新建文件夹默认权限=0666 新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
语法格式:umask ---查看umask umsak 权限值 ---修改umask

root的默认掩码为:0022 普通用户默认掩码为:0002

5、目录的权限

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

这个时候或许我们会有一个疑问:就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。意思就是说,今天在这个目录下A和B都对这个目录具有写权限,此时A新建了一个文件,那么B是不是可以把这个文件进行删除呢?这好像有bug啊,凭什么A新建的文件,B可以删除呢?我们来试一下是不是这样:

果然可以删除,所以,为了解决这个问题Linux引入了粘滞位的概念

6、粘滞位

给目录中的other设置一个权限位,同时也进一步对目录进行特殊限定,该目录下的文件,只用超级管理员root,目录的所有者,文件的所有者能够删除,其他人一概不允许!

三、总结

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

相关推荐
m0_7482571813 分钟前
海康威视摄像头RTSP使用nginx推流到服务器直播教程
运维·服务器·nginx
Pou光明36 分钟前
1_linux系统网络性能如何优化——几种开源网络协议栈比较
linux·运维·网络·网络协议·开源
TianyaOAO2 小时前
inmp+discuz论坛
linux·运维·服务器
星光璀璨山河无恙2 小时前
【Linux】grep命令
大数据·linux
寒月6582 小时前
黑盒白盒测试
运维·服务器
I love this bad girl2 小时前
防火墙旁挂部署+故障切换
服务器·网络·数据库
echo爱学易语言2 小时前
Linux ufw命令丨Linux网络防火墙ufw命令详解
服务器·网络·数据库
海绵波波1072 小时前
zerotier实现内网穿透(访问内网服务器)
运维·服务器
CL_IN2 小时前
金蝶云星空与华为云AX无缝数据集成技术详解
服务器·前端·华为云
helpme流水2 小时前
使用秘钥登录服务器
运维·服务器·github