【linux】root大王如何制约普通用户——权限管理

简介: 【linux】root大王如何制约普通用户——权限管理

用户

超级用户(root):可以在linux下几乎不受权限约束

普通用户:几乎受所有权限的限制

root用户只有一个,root用户可以创建多个普通用户。创建方法如下:

创建用户:useradd 用户名

设置用户密码:passwd 用户名

示例:

普通用户的家目录在 /home,可输入如下指令验证

cd ~ 转跳到家目录

cd.. 进入上级目录

ls 查看该目录下的用户

root用户和普通用户可以相互转化

su 用户名 普通用户转root用户需要输入root用户的密码,root用户转普通用户一般不需要输入普通用户的密码

示例

su - 用户名切换身份,并且回到被切换用户的家目录。

示例


文件属性

在linux下一切皆文件。无论是root用户还是普通用户访问文件时被分为三类

文件的拥有者
文件的所属组
其他用户

所属组代表一个用户,介于拥有者和其他用户之间的一个用户

文件类型

d :文件夹

- :普通文件

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

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

p :管道文件

c :字符设备文件(例如屏幕等串口设备)

s :套接口文件

基本权限

r:读权限,

对普通文件而言,具有读取文件内容的权限;对目录文件来说,具有浏览该目录信息的权限

w:写权限

对普通文件而言,具有修改文件内容的权限;对目录文件来说具有删除移动目录内文件的权限

x:可执行权限

对普通文件而言,具有执行文件的权限;对目录文件来说,具有进入目录的权限

-:无权限

有了上述了解就可以查看文件属性了

输入ll 可查看文件属性。如果没有文件,可输入touch 文件名 创建文件,如果没有目录文件,可输入mkdir 目录文件名 创建目录文件

如下是一个文件的属性

文件权限值的表示方法

符号表示 说明 符号表示 说明
r-- 可读 -w- 可写
--x 可执行 rw- 可读可写
-wx 可写可执行 r-x 可读可执行
rwx 可读可写可执行 --- 无权限

文件权限八进制表示

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

更改文件权限

chmod

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

格式: chmod 选项 权限 文件名

常用选项:

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

说明:只有文件的 拥有者 root 才可以改变文件的权限

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

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

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

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

用户符号:  

u :拥有者

g :拥有者同组用

o :其它用户

a :所有用户

普通文件示例

目录文件示例


更改文件拥有者

需要root权限更改

chown

功能 :修改文件的拥有者

格式 chown  用户名 文件名

示例


更改文件所属组

需要root权限更改

chgrp

功能 :修改文件或目录的所属组

格式 chgrp 选项 用户组名 文件名

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

示例


用户的权限

普通用户:

访问文件时,会先去匹配是否是文件的拥有者,不是的话再去匹配是否是文件的所属组,都不是的话会认为该用户为其他用户。

如果该用户同时是拥有者和所属组,那么该用户只会被匹配成拥有者,而不是所属组或两者都是。

完成上述工作后,会看该用户是否有 r w x 三种权限

超级用户:

不受拥有者,所属组,其他用户分类的限制,也不受r w x 三种权限的限制。

只要是文件,超级用户都有:读权限,写权限,可执行权限,更改拥有者权限,更改所属组权限


文件掩码

umask

功能

查看或修改文件掩码

格式 umask 权限值

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

新建文件默认权限为 0666  新建目录默认权限为0777

0666 :666对应的是:

拥有者为八进制的6,所属组为八进制的6,其他用户为八进制的6

6对应的权限为可读可写

但实际上所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。

实际创建的出来的文件权限是(二进制计算) :

实际权限 = 默认权限 & (按位与) ( ~ (按位取反) 权限掩码)

经过上述算法, 在权限掩码中出现的过的权限不会在实际权限中出现

权限掩码就像一个漏斗,把文件不想要的权限默认去掉

演示效果:

如果想要让生成的文件的所属组和其他用户无权限该怎么做呢


粘滞位

目录文件的 r w x 三种权限对应如下功能

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

创建用户本质是在home目录下创建了一个目录文件,该目录的权限如下图

这说明 各个用户之间是隔离的

那么各个用户如果要共享资源怎么办呢?方案之一是在根目录下创建一个权限放开的目录,该目录存放公共资源,由于权限开放,每个用户都可以访问公共资源

如下图

那么问题来了

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

权限

那么有什么解决方案吗

于是就有了一个特殊的权限, t —— 粘滞位。 t 是特殊的 x 的权限。

如果目录被设为 t 权限,那么该目录下的文件只能被拥有者和root删除

设置方法: chmod +t 文件名

现在还能删吗

其他用户以无权删除


总结

这里小小总结一下

用户分为两种:普通用户,超级用户

文件属性有:拥有者,所属组,其他用户,可读权限,可写权限,可执行权限,文件大小,修改时间,文件名

普通用户受到的限制很大,超级用户几乎不受限制

更改文件权限 : chmod

更改文件拥有者: chown

更改文件所属组: chgrp

文件掩码: umask

粘滞位: t

相关文章
|
9天前
|
Ubuntu 安全 Linux
Linux必备|如何重置忘记的 Root 密码
Linux必备|如何重置忘记的 Root 密码
36 7
|
10天前
|
Ubuntu Linux 数据安全/隐私保护
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
11 3
|
19天前
|
网络协议 Linux 数据安全/隐私保护
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
|
28天前
|
安全 Linux Shell
【Linux】权限管理
【Linux】权限管理
19 5
|
2月前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
2月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。
|
2月前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
【5月更文挑战第24天】 在Linux操作系统中,文件系统权限管理是维护系统安全和用户数据隔离的关键机制。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他类别的读、写、执行权限。我们将分析权限位的具体含义,如何通过命令行工具修改权限,以及权限掩码(umask)的作用。此外,我们还将讨论文件系统权限在实际应用中的常见问题及其解决方案,帮助读者构建更为安全且高效的Linux工作环境。
|
2月前
|
存储 Linux 数据安全/隐私保护
【Linux修行路】权限管理
【Linux修行路】权限管理
|
2月前
|
存储 Unix Linux
linux权限管理以及shell
linux权限管理以及shell
|
2月前
|
关系型数据库 MySQL Linux
Linux下MySQL的用户与权限管理
Linux下MySQL的用户与权限管理
24 0