【Linux】权限

目录

Linux操作系统用户的分类

1.超级用户:root,相当于windows系统中的管理员,基本不受权限约束。

2.普通用户:在linux下做有限的事情。

在Linux中,超级用户的命令提⽰符是"#",普通用户的命令提示符是"$"

用户之间的切换:

su命令:

命令:su [用户名]

功能:切换用户。
root切换到普通用户 :su 用户名,然后输入普通用户的密码
普通用户切换到root用户 :su root(root可以省略,然后输入root用户的密码。

上面使用su 用户名的用户转换只是用户身份的切换,当前目录依旧是切换之前用户下的目录。

这样呢,我们有两种方法,一种是使用cd ~回到家目录下,一种是使用su - 用户名 的指令。

su - 是切换登录用户,我们每次都需要登录,而su - 直接切换登录用户。

sudo提权命令:我们一般在Linux中是使用普通用户的,而普通用户的权限没有root用户的大,所以像下载一些指令等操作需要使用root用户来完成,但来回切换太麻烦,所以可以将普通用户下指令进行提权。

语法:sudo 指令

注意:由于Linux操作系统不信任普通用户,所以现在不能够在普通用户下进行提权操作。

权限

权限的概念可以简单的说为一件事能不能被你做。

在Linux中,用户 对文件,目录等进行创建,更改,删除等 一系列操作,都需要我们有相对应的权限才能做到。从此我们可以知道,权限是与 (用户)和事物属性(增删读改)有关的。

Linux权限管理:

文件访问者的分类:

1.user:文件的拥有者

2.group:文件的所属组

3.other:其他用户

那么文件的拥有者和其他用户我们都清楚,这个所属组的意义是什么呢?

所属组的存在就是方便让组内用户成员之间进行访问交流而限制其他成员。比如你写的代码,你的老板要看,但是你不想让张三看,那么你就可以将老板设置为你的所属组成员。

root用户和普通用户这些是具体的人,他们可以是拥有者,所属组或者other中的成员,拥有者,所属组和other是一种身份。

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

⽂件类型:

◦ d:⽂件夹

◦ -:普通⽂件

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

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

◦ p:管道⽂件

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

◦ s:套接⼝⽂件

基本权限

r :Read对⽂件⽽⾔,具有读取⽂件内容的权限;对⽬录来说,具有浏览该⽬录信息的权限

w :Write对⽂件⽽⾔,具有修改⽂件内容的权限;对⽬录来说具有删除移动⽬录内⽂件的权限

x :execute对⽂件⽽⾔,具有执⾏⽂件的权限;对⽬录来说,具有进⼊⽬录的权限

" - " :表⽰不具有该项权限

以下面为列来介绍Linux中文件的各个信息。

第一列表示的是文件的类型,如8.30和dir第一列为d,表明是目录;text.txt第一列为-,表示的是普通文件。

接着后面的rwx rwx r-x表示的是权限属性,三三一组和,分别表示访问时拥有者权限,所属组权限,other权限。以dir目录为例,拥有者权限为rwx,所属组权限为rwx,other权限为r-x。在这里,读权限®,写权限(w),执行权限(x)都在固定的权限位上。

接下来的boke boke分别为拥有者和所属组,因为other范围很大,所以当用户既不是拥有者又不是所属组时,就是other。

4096为文件大小。

后面的时间为文件创建的时间。

文件权限值的表示方法:

1.字符表示方法,也就是上面的 r , w , x 。

2.八进制数值表示法:

我们知道,每个读写执行权限都占有一个权限位,那么我们可以用二进制进行表示进而转化成八进制:

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

chmod指令:

功能:设置⽂件的访问权限(删除或添加权限)

格式:chmod [参数] 权限 文件名
更改权限只能是拥有者和root用户才可以进行更改。

方法:

chmod a :对所有身份进行单个或者多个权限的增删:

上面我们知道文件权限值得表示有两种,上面使用是字符表示,那么我们也可以用八进制值进行权限的更改:

chmod 007 :代表的就是--- --- rwx

chmod 777 :表示的是rwx rwx rwx

在进行身份认证时,只能认证一种身份:

看这样一个文件权限:

text.txt这个文件,拥有者的权限只能读,所属组的权限有读和写,那么我们不可以对文件进行写操作。这是因为认证身份时认证的是拥有者的身份。

chown

功能:修改⽂件的拥有者

格式:chown [参数] ⽤⼾名 ⽂件名

实例:

• chown user1 f1

• chown -R user1 filegroup1

chgrp

功能:修改⽂件或⽬录的所属组

格式:chgrp [参数] 用户组名 ⽂件名、

常⽤选项:-R 递归修改⽂件或⽬录的所属组

实例: chgrp users /abc/f2

起始权限:

在Linux中创建文件和目录时,我们可以看到它的默认权限。那么为什么这个默认权限是这样的。

首先先清楚,在Linux中,默认给文件的起始权限是666,默认给目录的起始权限是777。同时因为权限掩码的存在,使得权限变成我们现在看到的样子。

权限掩码:

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

umask默认是0002,先不管第一个数,后三位是八进制值表示。

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

以目录为例:

目录权限:

r : 是否允许查看指定目录的文件内容

w : 是否允许我们在指定目录下创建,更改和删除文件

x : 是否允许我们进入指定目录。

在这里需要注意的是,目录里面的文件能否被删除,取决于这个文件所处目录的权限。比如一个文件它的拥有者是zhangsan,我作为其他无法对这个文件进行任何操作,但是这个文件所处的目录有w权限,那么我还是可以将这个文件删除。

但我们要创建共享文件如何避免这个情况:

粘滞位:

给目录设置,一般是共享目录,在目录中进行各自文件的增删改查,只允许文件拥有者和root可删除该文件,这是一个特殊的可执行权限,权限值用字符表示为t。

在Linux中会自动为我们创建这个共享目录,也就是tmp,它的可执行权限位上是t 。

注意:在创建共享文件时,不能创建在自己的家目录下,因为家目录下,只有拥有者有rwx权限。

相关推荐
晨曦5432103 小时前
零基础12周精通Linux学习计划
linux
linux修理工3 小时前
n1 Armbian OS 24.11.0 noble 安装suricata
linux·运维·服务器
傅里叶3 小时前
sudo启动Flutter程序AMD初始化失败
linux·flutter
bug攻城狮3 小时前
CentOS 7 出现 “Could not resolve host“ 错误的修复方案
linux·运维·centos
feifeigo1234 小时前
CentOS系统管理:useradd命令的全面解析
linux·运维·centos
こ进制掌控者4 小时前
CentOS 8重启后网卡不见了解决办法
linux·运维·centos
Nightwish54 小时前
Linux随记(二十三 )
linux·运维
牛奶咖啡135 小时前
从零到一使用Linux+Nginx+MySQL+PHP搭建的Web网站服务器架构环境——LNMP(上)
linux·lnmp·ngnix的源码安装部署·mysql的二进制文件安装部署·php源码的安装部署·记录并解决安装php的各种问题
软件测试很重要5 小时前
UOS20系统安装与 SSH/XRDP 远程访问功能配置指南
linux·运维·ssh