Linux 之五:权限管理(文件权限和用户管理)

1. 文件权限

在Linux系统中,文件权限是一个非常基础且重要的安全机制。它决定了用户和用户组对文件或目录的访问控制级别。

每个文件或目录都有一个包含9个字符的权限模式,这些字符分为三组,每组三个字符,分别对应文件所有者的权限、所属组的权限和其他用户的权限。

具体来说,这三个权限位组按顺序排列如下:

  1. 文件所有者(Owner)的权限
  2. 所属组(Group)的权限
  3. 其他用户(Others)的权限

每个权限位组内的三个字符代表读(r)、写(w)和执行(x)三种权限:

  • r(Read):允许读取文件内容(对于目录,意味着可以列出其下的文件列表)
  • w(Write):允许修改或删除文件内容(对于目录,意味着可以在该目录下创建、移动或删除文件)
  • x(Execute):允许运行程序脚本或进入目录(对于目录,意味着可以通过cd命令进入该目录)

当某个权限不存在时,则用 - 来代替相应的字符。

此外,还有一种特殊的情况,如果一个文件设置了suid、sgid或者sticky bit,那么权限位上可能出现sStT等符号,它们分别表示:

  • s 或 S:设置了setuid/setgid位,表示执行该文件时将拥有文件所有者的权限(对于可执行文件)或临时加入到文件所在组(对于目录)。
  • t 或 T:只针对目录,设置了粘滞位(sticky bit),表示即使非文件所有者或所在组成员也可以删除或修改自己的文件,但不能删除其他用户的文件。

例如,一个文件可能有如下的权限设置:

-rwxr-xr--

这表示:

  • 文件所有者具有读(r)、写(w)和执行(x)权限。
  • 所属组具有读(r)和执行(x)权限,但没有写(w)权限。
  • 其他用户只有读(r)和执行(x)权限,同样没有写(w)权限。

使用 ls -l 或 ll 命令时:

[root@zhangpeng mydir]# ll
total 8
drwxr-xr-x. 3 zhang zhang  68 Aug 14 17:35 a
-rw-r--r--. 1 zhang zhang  93 Aug 16 10:00 Test1.java
-rw-r--r--. 1 zhang zhang   0 Aug 14 17:34 Test5.java
-rw-r--r--. 1 zhang zhang 106 Aug 16 09:48 Test.java
-rw-r--r--. 1 zhang zhang   0 Aug 14 17:34 Test.txt

从上面文件详细信息列表中,可以查出文件操作权限及所属用户、用户组、时间、大小等信息

drwxr-xr-x :

d :表示目录 (文件类型)

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

rwx: 表示可读可写可执行(文件所属用户)

r-x: 表示可读不可写可执行 (文件所属组)

r-x : 表示可读不可写可执行 (Other 其他用户)

数字模式:

rwx: 111 ---7

r-- : 100 ---4

r-x : 101 ----5

举例:

-rw-r--r--. 用数字表示是: 110 100 100 转为十进制 644 。

修改文件所属

chown - change file owner and group

[root@wang dir]# ll
total 16
drwxr-xr-x. 4 root root  29 Aug 24 03:17 dest
drwxr-xr-x. 2 root root 107 Aug 24 03:08 newdir
-rwxr--r-x. 1 root root   0 Aug 24 03:23 testfile.txt
-rw-r--r--. 1 root root   0 Aug 24 04:13 Test.java
-rw-r--r--. 1 root root  61 Aug 24 04:14 Test.xx
-rwxr-xr--. 1 root root  13 Aug 24 04:29 T.java
-rw-r--r--. 1 root root   8 Aug 24 03:06 TT.txt
-rw-r--r--. 1 root root  23 Aug 24 04:34 Word.java
drwxr-xr-x. 2 root root  74 Aug 24 03:17 xyz
[root@wang dir]# chown zhang newdir            
[root@wang dir]# ll
total 16
drwxr-xr-x. 4 root  root  29 Aug 24 03:17 dest
drwxr-xr-x. 2 zhang root 107 Aug 24 03:08 newdir
-rwxr--r-x. 1 root  root   0 Aug 24 03:23 testfile.txt
-rw-r--r--. 1 root  root   0 Aug 24 04:13 Test.java
-rw-r--r--. 1 root  root  61 Aug 24 04:14 Test.xx
-rwxr-xr--. 1 root  root  13 Aug 24 04:29 T.java
-rw-r--r--. 1 root  root   8 Aug 24 03:06 TT.txt
-rw-r--r--. 1 root  root  23 Aug 24 04:34 Word.java
drwxr-xr-x. 2 root  root  74 Aug 24 03:17 xyz
[root@wang dir]# 

2.用户管理

查看用户信息

1)su username 切换用户名 2)whoami 查看当前用户

[root@zhangpeng mydir]# whoami
root

3)id: 查看当前用户的编号,所属组号,所属组的信息

[root@zhangpeng mydir]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

4)id zhang: 查看zhang用户的编号,组号等信息

[wangwu@zhangpeng ~]$ id zhang
uid=1000(zhang) gid=1000(zhang) groups=1000(zhang)

5)groups: 查看当前用户所属组

[wangwu@zhangpeng ~]$ groups
wang

6)groups zhang: 查看用户zhang所在组

[wangwu@zhangpeng ~]$ groups zhang
zhang : zhang

7)用户信息文件: /etc/passwd 存储用户账号 /etc/group 存储组账号 /etc/shadow 存储用户账号的密码 /etc/gshadow 存储用户组账号的密码

添加用户

8)添加组

[root@wang ~]# groupadd zhou
[root@wang ~]# useradd zhouyu -g zhou
[root@wang ~]# id zhouyu
uid=1010(zhouyu) gid=1009(zhou) groups=1009(zhou)

9)添加用户

[root@zhangpeng wangwu]# useradd lisi -g li  ## 添加用户时,指定所属组 -g
[root@zhangpeng wangwu]# useradd li -g li
[root@zhangpeng wangwu]# id li                ## 查看指定用户所属组
uid=1006(li) gid=1004(li) groups=1004(li)

useradd zhang # 默认创建 zhang 用户,同时创建同名zhang的组。

[root@zhangpeng wangwu]# useradd zhao
[root@zhangpeng wangwu]# id zhao
uid=1007(zhao) gid=1007(zhao) groups=1007(zhao)
重置密码

passwd

[root@wang ~]# passwd caozhi
Changing password for user caozhi.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@wang ~]# 

用户创建成功后,默认会在 /home 目录下自动创建以用户名为目录名的一个目录。目录直接所属新增的这个用户

[root@wang etc]# ls /home
caopi  caozhi  guan  li  lisi  liu  wang  wangwu  zhang  zhangsi  zhao
[root@wang etc]# 
用户删除

userdel username : 注意 删除时,不能删除关联的 home 下的目录及其他附属信息

userdel -r username : 彻底删除,删除/home 目录及关联其他信息

注意:删除用户时,此用户是组中最后一个用户,会关联删除组

[root@wang home]# useradd huang
[root@wang home]# id huang
uid=1010(huang) gid=1010(huang) groups=1010(huang)
[root@wang home]# userdel -r huang        
[root@wang home]# 
用户组删除
[root@wang home]# useradd huang         # 同时创建组
[root@wang home]# tail -3 /etc/group    # 查看组
cao:x:1008:
zhou:x:1009:
huang:x:1010:
[root@wang home]# groupdel huang          # 删除组   不能删除存在用户的组
groupdel: cannot remove the primary group of user 'huang'
[root@wang home]# [root@wang home]# groupadd zhang    # 创建空组
[root@wang home]# groupdel huang    # 可以直接删除成功
用户权限
[root@wang home]# ll
total 4
drwxr-xr--.  3 wangliu  wang   132 Aug 24 09:47 wangliu      # 其他用户只读
drwxr-x---.  3 wangwu   wang    78 Aug 24 09:42 wangwu
drwxr-x---. 15 zhang    zhang 4096 Aug 24 08:54 zhang
drwx------.  5 zhangsan zhang  107 Aug 24 09:47 zhangsan
[root@wang home]# su zhangsan
[zhangsan@wang home]$ cd wangliu                            # 当前zhangsan 不能进入到r-- 目录中,因为没有执行权限
bash: cd: wangliu: Permission denied
[zhangsan@wang home]$ ls wangliu                            # 可以查看文件下文件,可以使用 ls 
ls: cannot access wangliu/Test2.java: Permission denied
ls: cannot access wangliu/Test3.java: Permission denied
ls: cannot access wangliu/Test4.java: Permission denied
Test2.java  Test3.java  Test4.java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GIS之深度学习08:安装GPU环境下的pytorch

环境: cuda:12.1.1 cudnn:12.x pytorch:2.2.0 torchvision:0.17.0 Python:3.8 操作系统:win (本文安装一半才发现pytorch与cuda未对应,重新安装了cuda后才开始的&a…

RT-thread学习持续更新中(1)

标准版RTT移植 先不要选择nano版本,选标准版的 include包含头文件 applications 应用层的程序编写放里面 drivers驱动 libraries库 rtthread的内核 LOG_D打印信息 通过修改board.c的SystemClock_Config()更改系统时钟 由于在创建工程向导…

Docker的安装及MySQL的部署(CentOS版)

目录 1 前言 2 Docker安装步骤 2.1 卸载可能存在的旧版Docker 2.2 配置Docker的yum库 2.2.1 安装yum工具 2.2.2 配置Docker的yum源 2.3 安装Docker 2.4 启动和校验 2.5 配置镜像加速(使用阿里云) 2.5.1 进入控制台 2.5.2 进入容器镜像服务 2.5.3 获取指令并粘贴到…

推理判断-聂佳-判读4-定义判断

知识点讲解 考点1 快速识别有效信息 考点2 同构选项排除 题目 考点1 快速识别有效信息 考点2 同构选项排除 总结

免费下载Corel Video Studio 2024-轻松创建令人惊叹的视频!

免费下载Corel Video Studio 2024-轻松创建令人惊叹的视频! Corel Video Studio 2024免费下载Keygen 你厌倦了在视频编辑软件上花大钱吗?别再看了!我们为您提供了完美的解决方案——Corel Video Studio 2024。最棒的部分是什么?…

准备系统运行的先决条件

知识点: 大数据基础环境准备 重 点: SSH免密码连接 安装配置JDK 安装配置Scala 项目开发测试环境为分布式集群环境,在当前项目中使用多台基于CentOS 64bit 的虚拟机来模拟生产环境。在生产环境中建议使用高性能物理主机或云主机搭建集…

添加路障-蓝桥杯-DFS

自己另辟蹊径想的新思路 果然好像还是不太行呀 import java.util.Scanner;public class Main {static int T;//样例组数static int n;//矩阵大小static int[] X {0,1,0,-1};static int[] Y {1,0,-1,0};static int[] X1 {1,0,-1,0};static int[] Y1 {0,-1,0,1};static int …

CSRF攻击解析:原理、防御与应对策略

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

激光在SIC晶圆制造中的应用

碳化硅是一种性能优异的第三代半导体材料,具有光学性能良好、化学惰性大、物理特性优良的特点,包括带隙宽、击穿电压高、热导率高和耐高温性能强等优点,常作为新一代高频、高功率器件的衬底材料,广泛应用在高端制造业领域&#xf…

UE4.27_ParticleSystem(没写完的材料)

UE4.27_ParticleSystem(没写完的材料) 参考实例: UE4[蓝图]下雪效果及雪的材质的实现

基于springboot+vue实现物资仓储物流管理系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现物资仓储物流管理系统演示 摘要 随着我国经济及产业化结构的持续升级,越来越多的企业借助信息化及互联网平台实现了技术的创新以及竞争力的提升,在电子经济的影响下仓储物流业务也获得了更多的关注度,利用系统平台实现…

《2024国家自然科学基金青年基金》 相关申请注意事项解读

一 年龄计算 2004 对应 89 2005 对应 90 2006 对应 91 2007 对应 92 2008 对应 93 2009 对应 94 2010 对应 95 .。。 二 资助比例(2023) 2024年 23.13% 2023年 24% 三 2024年政策变动,只能申请3年的30万,不能像23年一样选择10-20的…

简洁的链式思维(CCoT)提示

原文地址:Concise Chain-of-Thought (CCoT) Prompting 传统的CoT导致了输出令牌使用的增加,而CCoT提示是一种旨在减少LLM响应的冗长性和推理时间的提示工程技术。 2024 年 1 月 24 日 Areas where Chain-Of-Thought-like methodology has been introd…

猫头虎分享已解决Bug || 批处理错误:BatchJobFailure, ProcessingDelay

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

深入理解神经网络

图片怎么被识别的过程 (每层神经网络是数组,会对进来的数据进行加权求和[(weight*数据 然后累加) bias])(激活函数是为了训练weight和bias偏移值,在每个神经网络)(分类器会统计概率分类) 2. 引用链接 https://mp.weixin.qq.com/s?__bizMzIyNjMxOTY0NA&mid2247500124&…

RocketMQ-存储与弹性伸缩

存储与弹性伸缩 一、介绍二、存储架构图1.CommitLog2.ConsumeQueue3.IndexFile 三、消息读写流程1.写入流程1.1 获取Topic元数据1.2 消息投递1.3 消息写入 2.读取流程2.1 获取Topic元数据2.2 消息拉取2.3 消息消费 四、消息持久化1.页缓存2.刷盘2.1 同步刷盘2.2 异步刷盘 五、集…

【python】异常处理

前言 省略各种废话,直接快速整理知识点 try-except 基础 作用 程序不可能永远都是对的,当7除a,a由用户输入时,用户输入0就会报错。try-except就是解决这些问题。 结构 多分支自定义错误类型 上方的exception是一个错误类型…

基于Kronig-Penney能带模型的MATLAB求解与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于Kronig-Penney能带模型的MATLAB求解与仿真.综合利用 MATLAB提供的求解常微分方程、矩阵行列式、代数表达式化简及绘图等函数 ,可使 Kronig-Penney能带模型分析…

c语言,大宗撮合交易中心系统核心模块代码

撮合交易系统(Matching System)常用于大宗交易,如股票、期货等市场,它负责根据买卖双方的报价和数量,自动撮合成交。撮合系统的核心模块通常包括订单管理、价格计算和撮合逻辑等部分。 由于撮合系统的实现复杂且依赖于…

R语言更新版本

目录 一、更新R语言 1、安装最新的R语言版本 2、移动之前安装的packages 3、将Rstudio连接到最新的R语言 二、Rstudio更新 一、更新R语言 1、安装最新的R语言版本 查看当前R语言版本: R.version.string 下载最新的R语言安装包:R: The R Project…