当前位置: 首页 > news >正文

02.【Linux系统编程】Linux权限(root超级用户和普通用户、创建普通用户、sudo短暂提权、权限概念、权限修改、粘滞位)

目录

1. root超级用户和普通用户

2. 创建普通用户、密码设置、切换用户

3. sudo短暂提权(给普通用户添加sudo权限)

4. 权限

4.1 是什么

4.2 为什么有权限?(权限 = 角色 + 目标属性)

4.2.1 角色

4.2.2 目标属性

4.3 修改目标属性chmod

4.3.1 相关指令

4.3.2 文件权限相关问题(重点)

4.3.3 目录权限相关问题(重点)

4.3.4 缺省权限(权限掩码)(重点)

4.3.5 文件的删除权限 & 粘滞位(重点)

4.4 修改角色chown\chgrp

4.4.1 相关指令


1. root超级用户和普通用户

        Linux下有两种用户:超级用户(root)、普通用户

                • 超级用户:可以再linux系统下做任何事情,不受限制

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

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

2. 创建普通用户、密码设置、切换用户

语法:adduser [用户名]
功能:新创建一个普通用户
语法:passwd [用户名]
功能:给用户重设密码,root下可以直接给普通用户重置密码。普通用户使用需要加sudo
语法:su
功能:切换用户

        例如,要从root用户切换到普通用户user,则使用 su user。

        要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。

# 普通用户切换超级用户
su    # 不重新登陆,不做路径变化
su -  # 重新登陆,路径变回/root# 超级->普通
su    # 用户名,不需要输入密码,

        注意:Linux多用户之间相互隔离:任何用户,无法进入其他用户的家目录。

3. sudo短暂提权(给普通用户添加sudo权限)

        sudo:是用来进行指定的短暂提权的。

        比如:安装软件到系统中,需要管理员root权限。(软件其实只安装了一份,允许大家同时使用)

        举例:whoami ->普通用户 -> sudo ls ->报错

给普通用户添加sudo权限

        1. 切换root用户,打开/etc/sudoers文件

vim /etc/sudoers

        2. 在100行有以下代码

root    ALL=(ALL)       ALL

        3. 拷贝上述代码并修改用户名为需要添加sudo权限的用户。

root    ALL=(ALL)       ALL
gyy     ALL=(ALL)       ALL
# 我的普通用户名为gyy

        4. 进入vim的命令模式,使用wq!强制保存退出。

4. 权限

4.1 是什么

        权限的本质是:能或者不能做什么事情。

4.2 为什么有权限?(权限 = 角色 + 目标属性)

        1. 控制用户的行为,防止错误的发生

        2. 理解:权限 = 角色 + 目标属性

                权限首先限制的是角色(人)

                权限要求目标必须具备对应的属性

(Linux下一切皆文件,面对的都是文件的:读、写、执行)

4.2.1 角色

1. 角色是什么?

        角色有:拥有者(user)、所属组(group)、other。

        other不需要记录,除了拥有者、所属组之外的就是other。

2. 什么是所属组?

        更精细化的权限管理,首先要有更精细化的身份角色。所属组就是用来给角色分组的。

4.2.2 目标属性

1. 权限位

        拥有者、所属组、other每个有三个权限位,分别为rwx(可读、可写、可执行,权限位是“-”代表没有此权限)

        ◦ 读(r/-):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

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

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

        ◦ “-”表示不具有该项权限

        例:像下列test.txt文件拥有者的权限是:可读可写不可执行,所属组权限是:可读可写不可执行,other权限是:可读、不可写、不可执行。

4.3 修改目标属性chmod

4.3.1 相关指令

语法:chmod [参数] 权限 文件名
功能:修改文件属性,参数可以使用“,”表达式
常用选项:

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

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

修改权限的符号:
+向权限范围增加权限
-

向权限范围取消权限

=

向权限范围赋予权限

用户符号:
u拥有者
g所属组
o其他用户
a所有用户

实例:

# 给拥有者添加rw权限
chmod u+rw abc.txt# 给other取消x权限
chmod o-x abc.txt# 给所有角色权限设置为rwx
chmod a=rwx abc.txt

        以上是文件权限值得字符表示法,还有三位8进制表示法,将拥有者、所属组、other的三个权限位分别用"1"代表有权限,"0"代表没有权限。使用三位八进制表示权限值。

实例:

# 将test1.txt的权限设置为 110110110 即 rw-rw-rw-
chmod 666 test1.txt# 将test2.txt的权限设置为 111111111 即 rwxrwxrwx
chmod 777 test2.txt

4.3.2 文件权限相关问题(重点)

        1. 能修改任何人的文件权限吗?用户只能更改自己的文件权限。

        2. 没有权限会怎么办?系统会拒绝让我们访问(Permission denied)

        3. 确定权限信息的时候,系统会先确定用户是谁?拥有者、所属组,还是other?

                在Centos下,用户角色只确定一次,顺序是:拥有者,所属组,other

        4. root用户的权限?不受权限约束

                任何普通用户的文件,root都可以读写

                user和group都是root的用户,即使user和group的权限设置位"---",root用户也可以读写。

        5. 如何理解可执行?可执行只是允许文件执行

                可执行权限 != 文件可以执行。

4.3.3 目录权限相关问题(重点)

        默认情况下,新建的目录rwx权限都要有。

        6. 如果目录没有r权限,就无法查看目录里面的文件,ls报(Permission denied)

        7. 如果目录没有w权限,就无法再智能目录内部新建文件

        8. 如果目录没有x权限,就不能进入目录。

4.3.4 缺省权限(权限掩码)(重点)

        对于新建普通文件:起始权限666,默认不带可执行

        对于新建目录文件:起始文件777,默认携带x

1. 权限掩码umask:系统默认存在,用来让用户设置实际初始权限。

        1. umask目的:希望凡是在umask中出现的权限都不应该在最终权限中出现。

        2. 为什么要有umask?

                a. 默认权限,由OS自主决定,无法在船舰前进行修改 --- 系统可配置,可以灵活满足需要的一种表现。

                b. 特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码都是可控的。

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

umask
# 0002    第一位不看,后三位分别对应9个位的权限值

2. 修改权限掩码

语法:umask [权限掩码]
功能:查看/修改权限掩码

实例:

# 设置权限掩码
umask 755# 查看权限掩码
umask

4.3.5 文件的删除权限 & 粘滞位(重点)

1. 一个文件是否能被删除,与文件本身无关,与文件所处的目录的w权限有关!

2. 协作问题,粘滞位

        如果两个用户之间要进行文件级别的协作,不能将共享目录放在私人账号里,则只能放在根目录下。共享文件,不想让非文件的拥有者删除对应的文件!使用粘滞位解决。

        粘滞位目的:在一个公共目录(如 /tmp)中,用户只能删除或重命名自己创建的文件或目录,而不能删除其他用户的文件,即使该目录对所有用户都有写权限(如 777)。

        粘滞位添加:(粘滞位是在other的x权限位置)

# 添加粘滞位
chmod +t [目录/文件名]# 删除粘滞位
chmod -t [目录/文件名]

        当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

                1. 超级管理员删除

                2. 该目录的所有者删除

                3. 该文件的所有者删除

4.4 修改角色chown\chgrp

        系统默认不允许我们把文件给别人,所以想要修改角色必须提高权限,使用sudo或者切换root用户。

4.4.1 相关指令

语法:chown [角色] 文件名
功能:修改文件拥有者角色,可以同时修改拥有者和所属组
常用选项:

-R 递归修改文件或目录的拥有者

语法:chgrp [角色] 文件名
功能:修改文件所属组角色
常用选项:

-R 递归修改文件或目录的所属组

# 修改test1.txt的拥有者为root
chown root test1.txt# 修改test2.txt的拥有者和所属组为user1
chown user1:user1 test2.txt# 修改test3.txt的所属组为user3
chgrp user3 test3.txt

文章转载自:

http://ldcGNfYY.gLkhx.cn
http://jQSBTCYf.gLkhx.cn
http://JFllnMoA.gLkhx.cn
http://8Y7H2vwj.gLkhx.cn
http://PbJoyoUX.gLkhx.cn
http://NwoCEFwX.gLkhx.cn
http://yBqDdQZU.gLkhx.cn
http://6a2tG4OK.gLkhx.cn
http://xytpw7C6.gLkhx.cn
http://K3uzrvm3.gLkhx.cn
http://ccwZfL09.gLkhx.cn
http://mRkO2SVC.gLkhx.cn
http://HjBGZui9.gLkhx.cn
http://47FoD7hK.gLkhx.cn
http://3ppWtdB1.gLkhx.cn
http://10WkQXnJ.gLkhx.cn
http://UZ2rJlSa.gLkhx.cn
http://G0ycN0vf.gLkhx.cn
http://5uxbq6NP.gLkhx.cn
http://ibjqCNOd.gLkhx.cn
http://2DgAm11J.gLkhx.cn
http://HrTCxoyr.gLkhx.cn
http://9FKZoYAq.gLkhx.cn
http://TzekG3wN.gLkhx.cn
http://lvSFinLt.gLkhx.cn
http://B29aGXCF.gLkhx.cn
http://gB2inMXq.gLkhx.cn
http://b3QMhc5N.gLkhx.cn
http://Ba0jcy6z.gLkhx.cn
http://URXAcaeE.gLkhx.cn
http://www.dtcms.com/a/380240.html

相关文章:

  • JavaEE 初阶第二十二期:网络原理,底层框架的“通关密码”(二)
  • Netty 实战应用:从 RPC 到即时通讯,再到 WebSocket
  • 南京方言数据集|300小时高质量自然对话音频|专业录音棚采集|方言语音识别模型训练|情感计算研究|方言保护文化遗产数字化|语音情感识别|方言对话系统开发
  • Django全栈班v1.04 Python基础语法 20250912 下午
  • uniapp多端打包样式处理
  • Unity学习----【进阶】TextMeshPro学习(一)--基础知识点
  • Echarts雷达图根据数值确定颜色
  • etcd备份脚本
  • 基于 OpenCV 与 SIFT 算法的指纹识别系统实现:从匹配到可视化
  • uniapp微信小程序保存海报到手机相册canvas
  • 3227. 字符串元音游戏
  • 【python实用小脚本-215】[硬件互联] 按钮×Python梦幻联动|用20行代码实现“一键录音”自动化改造实录(建议收藏)
  • 分布式专题——10.2 ShardingSphere-JDBC分库分表实战与讲解
  • 机器学习-数据标注
  • Leetcode:动态规划算法
  • 鸿蒙项目篇-22-项目功能结构说明-写子页面和导航页面
  • 深入解析 Kubernetes 中的 Service 资源:为应用提供稳定的网络访问
  • JAiRouter 0.8.0 发布:Docker 全自动化交付 + 多架构镜像,一键上线不是梦
  • 自如入局二手房,对居住服务行业的一次范式重构
  • BLE6.0信道探测,如何重构物联网设备的距离感知逻辑?
  • 【OC】单例模式
  • 【数据结构】LRU Cache
  • 阅读翻译Discovering Modern C++之5.2.3 A `const`-Clean View Example
  • MUSIC, Maximum Likelihood, and Cramer-Rao Bound
  • APT32F0042F6P6 32位微控制器(MCU)单片机 APT爱普特微电子 芯片核心解析
  • react3面试题
  • LeetCode 344.反转字符串
  • 【C++】list模拟实现全解析
  • C++动态规划算法:斐波那契数列模型
  • 第六章:AI进阶之------python的变量与赋值语句(二)