Linux权限(上)

Linux下有两种用户

超级用户(root)、普通用户:

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

**命令:**su [用户名]

**功能:**切换用户。例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令

如何 让普通用户也能使用不属于他的权限呢?这就要看sudo指令了!!!!

**现在有一个场景:**安装一个软件需要root权限,但是仅root安装其实就安装了一份;如果其他用户也想安装呢?

sudo指令

sudo就是进行短暂的提权的;

**格式:**sudo 指令

可以让 普通用户也能使用超级用户的权利

若使用时出现这种问题

解决办法:

什么是权限

  • 能 或者 不能做什么
  • 权限可以控制用户的行为,能预防错误的事件发生;

如何理解

  • 权限 = 角色 + 目标属性
  • 权限首先就是 角色的权限
  • 权限的前提是 权限对应的目标 具有 能完成 某种行为的属性

角色分类

  1. 拥有者
  2. 所属组
  3. other

拥有者 所属组 other 到底是什么?

拥有者: 就是具体的人; **所属组:**就是具体的人的角色

**other:**就是 除 拥有者 所属组 之外的;

为什么文件属性中 不显示 other

只要不是 拥有者 所属组 就是 other; 只需对比一下即可,不用记录;

什么是所属组?为什么要存在所属组

如果要精细的权限划分,那么就得有更精细的身份角色;
李四手里有一个code.c 项目,要给老板开启权限。

Linux多用户之间是怎么相互"隔离"的?

除了,超级用户root,其他普通用户都没有进入其他用户目录的权限;

那么如果,不同用户要同时修改一个文件呢?那就得看文件的权限了,这也和三个组别相关;

文件权限

文件类型:(目前还是以 d - 文件类型为主的)

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

基本权限理解:

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

权限的修改

chmod

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

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

常用选项:

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式:( 用户表示符+/-=权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

chmod八进制改变权限

**格式:**chmod 数数数 文件

注意部分:

  • 能改任何人的权限吗? 只有文件的拥有者和root才可以改变文件的权限

  • 没有权限会怎么样? 系统会拒绝我们的访问。
  • 确定信息时,系统会先确定的用户是什么?拥有者,所属组,other?

比如root 他是所属组还是 拥有者?

在Centos下,系统是按照拥有者,所属组,other 的顺序来的;

而且用户角色的确定,只会确定一次

  • root用户的权限? root是权限,不受约束?

root就类似一个总管理者

  • 如何理解可执行?

可执行权限 != 文件可以执行 (机会 != 能力)

  1. 权限的前提是 权限对应的目标 具有 能完成 某种行为的属性
  2. 文件 有可执行权限,但目录没有给你权限让你进入,

chgrp / chown

chown

  • **功能:**修改文件的拥有者
  • **格式:**chown [参数] 用户名 文件名

chgrp

  • **功能:**修改文件或目录的所属组
  • **格式:**chgrp [参数] 用户组名 文件名

系统默认我们不能把文件给别人

(这种要求是合理,不然乱给文件就乱了)

如果要给别人,必须提权,要么sudo 要么切换到 root

目录的权限理解

可以思考一下,rwx 对应目录来说是意味着什么?

  1. 如果要进入一个目录需要权限 x
  2. 如果权限没有r,就无法查看目录的文件
  3. 如果没有w,就无法在目录中创造文件

注意:

  • 因此默认情况下,创建一个目录。rwx权限都要有
  • 且一个文件是否能被删除,与文件内容本身无关,与目录的w 相关

文件权限缺省问题

一般来说:

  • 普通文件的起始权限是 666,默认是不带执行权限的;
  • 目录文件的起始权限是 777,默认是什么权限都有的;

但为什么:

这是因为系统默认有一个权限掩码的概念

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

不想让起始有什么权限 就在umask 设置什么权限;经过这个转换就可以实现

**查看系统的 权限掩码:**umask

**修改:**umask 数数数

umask的目的是什么

凡是出现在umask的权限,都不应该在最终权限中出现;

为什么要有umask
  1. 默认权限是 是OS决定,我们无法在创建文件前修改;umask是系统配置的,可自我调节,是灵活满足我们的需求的一种表现;
  2. 特殊情况下,配置umask,可以让我们修改文件的默认权限,让我们的是可控的
相关推荐
良许Linux2 分钟前
0.96寸OLED显示屏详解
linux·服务器·后端·互联网
蜜獾云13 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小屁不止是运维14 分钟前
麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
linux·运维·服务器·nginx·中间件·架构
Hacker_Oldv19 分钟前
WPS 认证机制
运维·服务器·wps
bitcsljl27 分钟前
Linux 命令行快捷键
linux·运维·服务器
ac.char30 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Youkiup1 小时前
【linux 常用命令】
linux·运维·服务器
qq_297504611 小时前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i1 小时前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore