Linux——权限

1. Linux的用户分类

Linux下,用户分为两类:

一、root用户,即超级用户,基本不受权限的约束

二、普通用户,使用 adduser 指令新建的用户,是受权限约束的

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

1.1 用户切换

Linux中所有的用户,都要有密码,无论是root用户还是其他用户,即使有多个普通用户,也都要设置密码。

1.1.1 su  [root]  指令切换 普通用户 为 root用户:

它不是以登陆的方式切换用户的,就是单纯地转换用户。

回退为之前的用户:

1.1.2 su - root 指令切换 普通用户 为 root用户:

这里的root同样可以省略

su - 指令是以登录的方式切换用户。

1.1.3 su  [用户名]  指令切换 root用户 为 普通用户:

可以看到,由 root用户 切换为 普通用户时,不需要输入密码。

这也不是以登陆的方式切换用户的,就是单纯地转换用户。

1.1.4 su  -  [用户名]  指令切换 root用户 为 普通用户:

由 root用户 切换为 普通用户时,不需要输入密码。

1.1.5 切换 普通用户 为 另一个普通用户:

此时就要输入密码,才能成功切换:

su指令:

su - 指令:

1.2 sudo指令

想要对一条指令进行暂时的提权,要使用sudo指令。

语法:sudo command

演示:

当然这个指令可以正常使用的前提是,我们当前登陆的普通用户,被添加到了系统的白名单中。

否则,我们用adduser建立的用户,是没有办法执行sudo指令的,因为系统不信任你,该用户要在 /etc/sudoers 中。

2. 权限

什么叫做权限?通俗来讲,就是一件事是否允许被你做。

2.1权限认证的是身份,权限和 “人” 有关。

比如说能否在校长办公室办公,取决于你是不是校长。

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

一、文件和文件目录的所有者、拥有者:u--User
二、文件和文件目录的所有者所在的组的用户:g--Group
三、其他用户:o--Others

具体的用户,比如root和某些普通用户,来充当这些角色。

所属组存在的意义:

比如公司有两个小组A和B,小明是A组的成员,他写了一段非常漂亮的代码,小明就是这个文件的拥有者,他可以去查看、修改代码。而其他用户,尤其是B组的成员不能查看他的代码,但是小明是A组的成员,要和其他成员协作开发项目,所以它的组员不能是其他用户,此时所属组存在的意义就显现出来了,这样本组成员也可以查看代码,以便更好地协作开发项目。

2.2 权限也和事物的 “属性” 有关 

就是说事物的属性决定了,该事物只能拥有某些权限。比如说文件,它的属性决定了它可以拥有比如能否可读、写、执行的权限,但不能像食物一样拥有能否可食用的权限。

2.2.1 文件类型(事物属性)


Windows下使用文件名的后缀区分文件类型。但Linux中文件名的后缀没有直接的意义,Linux系统不以文件名的后缀来区分文件类型。当然,这不代表不使用文件名的后缀。在Linux中,如何书写文件名的后缀,看用户需求即可。
分类:

d:目录文件,文件夹
- :普通文件。如文本文件、可执行程序、库文件等
b:块设备文件。如磁盘文件

c:字符设备文件。如键盘、显示器文件
p:管道文件。用来进行通信

I:软链接(类似Windows的快捷方式)
s:套接口文件

不是 .out 文件,不影响文件的执行:

2.2.2 关于gcc

gcc是一款编译器软件,Linux系统不以文件名的后缀来区分文件类型不代表在Linux系统上运行的其他软件不需要使用文件名的后缀。

2.2.3 访问权限(事物属性)

基本权限:
各字符含义:
 
可读(r):Read对文件而言,具有读取文件内容的权限;
对目录来说,具有浏览该目录信息的权限

可写(w):Write对文件而言,具有修改文件内容的权限;
对目录来说具有删除移动目录内文件的权限

可执行(x):execute对文件而言,具有执行文件的权限;
对目录来说,具有进入目录的权限

“-”:表示对应的权限位置,不具有该项权限

2.2.4 详解文件属性

一个用户,如果他不是一个文件的拥有者,它的所属组和文件也不同,那么对于这个文件,他就是其他用户。
前十个字符:
首字符表示文件的类型,接下来的九个字符:
详解每组的三个字符:
   r  /  -            w  /  -            x  /  -
 读权限         写权限         执行权限
每个位置的含义是确定的。
每一个位置的权限只有是和否,即是否具有该项权限

2.3 chmod指令

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


格式:chmod  [参数]  权限  文件名

常用参数:

-R:递归修改指定目录及其子目录下所有文件/目录的权限

2.3.1 文件权限值的表示方法

一、字符表示方法:u表示是拥有者的权限,r、w、x分别表示是否具有读、写、执行的权限

二、八进制数值的表示方法。下面进行解释

2.3.2 修改权限

文件的拥有者和root用户可以修改权限。
使用字符表示方法修改权限
 使用a表示所有角色:
这些权限只能限制普通用户,root用户是不受这些权限限制的。
使用八进制数值的表示方法修改权限
每组权限可以以一组二进制序列来表示,由000到111,也就是由0到7,所以可以使用八进制数来表示。
可以以八进制的方案修改权限、进行权限的设定:

 

2.4 chown指令

功能:修改文件的拥有者

格式:chown  [参数]  用户名  文件名
普通用户,哪怕是文件的拥有者,也不能修改文件的拥有者:
root用户可以修改文件的拥有者:

2.4.1 同时修改拥有者和所属组

格式:chown 用户名:用户组名 文件名

使用root用户,同时修改文件的拥有者和所属组:

2.5 chgrp指令

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

格式:chgrp  [参数]  用户组名  文件名
修改文件的所属组同样需要使用root用户:

2.6 关于角色身份的认证

问题:

验证:
在进行认证的时候,只能选择一个角色进行认证!
按照拥有者,所属组的顺序进行认证,二者都不是就认证为其他用户。
这里先和拥有者进行匹配对照,发现 jxy 用户是拥有者,所以 jxy 用户就被认证为拥有者。

3. 权限掩码 umask

3.1 umask指令

功能:查看或修改文件掩码

格式:umask  [权限值]
查看掩码:
第一个0暂且不论,主要是看后三位,每一位都代表一个8进制数,分别代表一种角色的权限。
修改掩码:

3.2 关于初始权限

普通文件的默认起始权限是0666

目录文件的默认起始权限是0777

验证:

可以发现,普通文件和目录的起始权限并不是666和777,这是为什么?

原因是权限掩码:umask的存在,改变了起始权限。

使用umask,可以限定新创建文件的起始权限

凡是在umask中出现的权限,不会在最终的文件权限中出现。

最终权限 = 起始权限&(~umask)

普通文件演示:

可以使用umask指令,修改权限掩码,以此来修改文件的起始权限。

4. 关于目录的权限

各字符含义:

r:对目录来说,表示是否具有列出指定目录下的文件的权限

w:对目录来说,表示是否具有新增、删除、修改指定目录下的文件的权限

x:对目录来说,表示是否具有进入对应目录的权限

5. 共享目录

5.1 关于共享

普通用户的家目录:

可以看到,普通用户的家目录权限是700,也就是说,每个普通用户的家目录下所创建的文件,除自己外的普通用户不能进行任何操作。

但是有时候,多个用户间有进行文件数据共享的需求,为了达成共享的要求,所建立的共享文件,不能在任何一个用户的家目录下

5.2 文件的删除

我们可以选择在/目录下,创建一个目录shared,专门用来进行文件数据的共享。

注意使用root用户创建,因为/的权限

shared目录 在 /目录 下:

此时所有普通用户的角色都是其他用户

jxy用户在shared目录下创建一个a.c的文件,并且设置权限为770:

那么此时,其他的普通用户对这个文件,没有可读、写、执行的权限,但是却能删除这个文件

原因是:一个文件能否被删除,并不由文件本身决定,而是由这个文件所处的目录决定!

而shared目录的权限是777:

想要避免这种情况,就要把shared目录的其他用户的 w 权限去掉,这样lxy用户确实不能删除jxy用户创建的文件了,但是此时,任何普通用户都不能在shared目录下创建文件了,这样所谓的共享目录就失去了意义。

5.3 粘滞位

为了解决这个问题,新增了一个权限位:粘滞位,使用 来表示。

粘滞位:用来给目录设置的权限位,一般是共享目录,使得每个普通用户可以在该目录下,对各自的文件进行增删改查,同时不能删除彼此的文件,t 是一种特殊的 x 权限

当一个目录被设置为 “粘滞位” 时,则该目录下的文件只能由文件拥有者和root用户删除

首先给shared目录的其他用户增加 t 权限:

此时,每个用户都可以在该目录下创建文件,同时该文件不能被其他普通用户删除:

实际上,这个shared目录无需创建,/目录下本就存在所谓的共享目录:


 

### 使用 Cockpit 进行文件管理 Cockpit 是一款面向 Linux 的 Web 界面系统管理工具,能够简化日常运维工作。对于文件管理功能而言,通过图形化界面可以方便快捷地浏览、创建、编辑以及删除文件。 #### 访问文件管理系统 启动浏览器并输入服务器 IP 地址加上端口号(通常是 9090),登录到 Cockpit 后台,在左侧导航栏找到“Storage 存储”选项下的“File System 文件系统”,点击进入即可查看当前主机挂载的各个分区及其使用情况[^3]。 #### 浏览目录结构 一旦进入了文件系统视图,就可以看到根目录(/)下各级子目录链接列表。单击任意一个文件夹名称可深入其内部继续探索;双击某项具体资源则会弹出新窗口展示详情或允许直接在线预览文档内容。 #### 创建与上传文件/文件夹 当处于某个特定路径时,页面顶部会出现一系列操作按钮。“Create Directory 新建文件夹”用于快速建立新的空目录,“Upload File 上载文件”支持从本地计算机选取要迁移至远程位置的目标对象,并自动完成传输过程。 #### 编辑现有条目属性 选中待处理项目后,右侧将会显示该实体的相关元数据信息面板。这里不仅能看到诸如权限设置(读写执行标志位组合)、所属用户组别等基础参数,还能借助内置文本编辑器修改纯文本类型的文件正文部分。 #### 删除不再需要的数据 同样是在多选模式下选定目标之后,利用批量移除功能来清理无用的历史残留物或是误置于此处的内容单元。值得注意的是,在实际执行前务必确认所选范围正确无误以免造成不可逆损失。 ```bash # 注意:以上描述的操作均需具备相应级别的账户授权才能顺利实施。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值