Linux 之五:权限管理(文件权限和用户管理)
1. 文件权限
在Linux系统中,文件权限是一个非常基础且重要的安全机制。它决定了用户和用户组对文件或目录的访问控制级别。
每个文件或目录都有一个包含9个字符的权限模式,这些字符分为三组,每组三个字符,分别对应文件所有者的权限、所属组的权限和其他用户的权限。
具体来说,这三个权限位组按顺序排列如下:
- 文件所有者(Owner)的权限
- 所属组(Group)的权限
- 其他用户(Others)的权限
每个权限位组内的三个字符代表读(r)、写(w)和执行(x)三种权限:
r(Read):允许读取文件内容(对于目录,意味着可以列出其下的文件列表)w(Write):允许修改或删除文件内容(对于目录,意味着可以在该目录下创建、移动或删除文件)x(Execute):允许运行程序脚本或进入目录(对于目录,意味着可以通过cd命令进入该目录)
当某个权限不存在时,则用 - 来代替相应的字符。
此外,还有一种特殊的情况,如果一个文件设置了suid、sgid或者sticky bit,那么权限位上可能出现s、S、t和T等符号,它们分别表示:
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相关文章:
Linux 之五:权限管理(文件权限和用户管理)
1. 文件权限 在Linux系统中,文件权限是一个非常基础且重要的安全机制。它决定了用户和用户组对文件或目录的访问控制级别。 每个文件或目录都有一个包含9个字符的权限模式,这些字符分为三组,每组三个字符,分别对应文件所有者的权限…...
基于YOLOv8深度学习的葡萄病害智能诊断与防治系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
MySQL 在聚合函数查询的结构中继续过滤
HAVING HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法,如果想要从 GROUP BY 分组中进行筛选的话,不是用 WHERE 而是使用 HAVING 来进行聚合函数的筛选。 语法 SELECT <列名1>, <列名2>,…...
UE4.27_ParticleSystem(没写完的材料)
UE4.27_ParticleSystem(没写完的材料) 参考实例: UE4[蓝图]下雪效果及雪的材质的实现...
腾讯云轻量服务器流量用完了怎么办?停机吗?
腾讯云轻量服务器流量用完了怎么办?超额流量另外支付流量费,流量价格为0.8元/GB,会自动扣你的腾讯云余额,如果你的腾讯云账号余额不足,那么你的轻量应用服务器会面临停机,停机后外网无法访问,继…...
块级作用域、变量提升
1.块级作用域 JS 中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称 ES6)中新增了块级作用域。块作用域由 { } 包括,if 语句和 for 语句里面的{ }也属于块作用域。 2.变量提升 如果变量声明在函数里面,则将变量声…...
c# 连接oracle 及对应获取数据集
1、数据库配置xml,首先连接成功后会自动创建xml并保存到对应xml,如下 static string ConnPath AppDomain.CurrentDomain.BaseDirectory "ConnOrcle.xml"; 声明xml名称,便于后续写入对应数据库参数 2、创建xml /// <summar…...
JS直接量及其相关对象
什么是直接量 直接量是指不需要创建对象就可以直接使用的变量。ES中的直接量主要有三种类型:表示字符串的string类型、表示数字的number类型和表示true/false的boolean类型。当我们直接将值赋给变量后,ES就会自动判断其类型,而且当参数发生变…...
一 windso10 笔记本刷linux cent os7.9系统
1:准备材料 16G以上U盘, 笔记本一台 镜像选了阿里云镜像:centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 软件:链接:https://pan.baidu.com/s/13WDp2bBU1Pdx4gRDfmBetg 提取码:09s3 2:把镜像写入U盘,本人已经写入好了,选择镜像,点开始就是,确定等…...
118.龙芯2k1000-pmon(17)-制作ramdisk
目前手上这个设备装系统不容易,总是需要借助虚拟机才能实现。 对生产就不太那么友好,能否不用虚拟机就能装Linux系统呢? 主要是文件系统的问题需要解决,平时我们一般是用nfs挂载后,然后对硬盘格式化,之后…...
IP-guard邮件管控再升级,记录屏幕画面,智能阻断泄密邮件
邮件是工作沟通以及文件传输的重要工具,却也成为了信息泄露的常见渠道。员工通过邮件对外发送了什么内容,是否含有敏感信息都无从得知,机密通过邮件渠道外泄也难以制止。想要防止企业的重要信息通过邮件方式泄露,我们不仅需要通过技术措施对外发邮件的行为进行规范,也要对…...
#LLM入门|Prompt#2.10_评估、自动化测试效果(下)——当不存在一个简单的正确答案时 Evaluation Part2
上一章我们探索了如何评估 LLM 模型在 有明确正确答案 的情况下的性能,并且我们学会了编写一个函数来验证 LLM 是否正确地进行了分类列出产品。 在使用LLM生成文本的场景下,评估其回答准确率可以是一个挑战。由于LLM是基于大规模的训练数据进行训练的&am…...
round四舍五入在python2与python3版本间区别
round()方法返回数值的小数点四舍五入到n个数字。 语法 以下是round()方法的语法: round( x ,n) 参数 x --这是一个数值,表示需要格式化的数值 n --这也是一个数值,表示小数点后保留多少位 返回值 该方法返回 数值x 的小数点四舍五入到n个数字 …...
新概念英语第二册(73)
【New words and expressions】生词和短语(9) record-holder 纪录保持者 truant n. 逃学的孩子unimaginative adj. 缺乏想像力的shame n. 惭愧,羞耻 hitchhike v. 搭便车旅行 m…...
Vue项目实战-空间论坛(2)
项目实战 实现userlist页面 获取userlist列表,可使用ajax,axios 实现 这里采用ajax实现,需要添加Jquery依赖,然后在UserListView.vue中引入 在UserListView.vue组件的入口函数中定义users变量,并引入ref 使用ajax从云端动…...
小老虎吃汉堡,认识continue和break
continue;//结束本次循环,执行下面的循环 break; //结束本次及以后的循环,执行循环下面的代码1. /*小老虎在吃汉堡,但是第三个汉堡上被挤了芥末,不能吃,跳过去又吃第四、五个*/ for (int i1;i<5;i){if (i3){contin…...
docker搭建zero-ui
确保你已经安装了Docker和Docker Compose。如果没有,请参照官方文档安装:Docker 和 Docker Compose。 使用 Docker CLI 获取 Zero-UI 镜像: 首先,你需要从Docker Hub获取Zero-UI的Docker镜像。你可以使用 docker pull 命令来下载它。 docker…...
187基于matlab的弹道目标跟踪滤波方法
基于matlab的弹道目标跟踪滤波方法,扩展卡尔曼滤波(extended Kalman filter, EKF)、转换测量卡尔曼滤波(conversion measurement Kalman filter, CMKF)跟踪滤波,得到距离、方位角、俯仰角误差结果。程序已调…...
讲给自己听的的技术---WMS
标题一 点题 为什么我会说,这是说给自己听的了?做项目有三个月了,外加之前三个月的自学,自我感觉对WMS系统有了一点了解,今天三月九号晚上九点二十,就让我自己和自己说说吧。 标题二 WMS的职责是什么…...
在Java中,请详细讲解并发、多线程、异步的区别和联系
在Java中,请详细讲解并发、多线程、异步的区别和联系 并发、多线程、异步是Java编程中与并行处理相关的三个重要概念,它们之间既有区别也有联系。 并发(Concurrency): 并发是指在同一时间段内,多个任务或…...
【行业首份智能编码故障白皮书】:基于178万行AI生成代码的故障热力图与根因诊断模型
第一章:智能代码生成代码故障诊断 2026奇点智能技术大会(https://ml-summit.org) 现代智能代码生成系统(如Copilot、CodeWhisperer、Tabnine)在提升开发效率的同时,也引入了新型故障模式:语义正确但逻辑错误、上下文…...
3步重塑工作流:用douyin-downloader开启抖音素材管理新纪元
3步重塑工作流:用douyin-downloader开启抖音素材管理新纪元 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback …...
PyTorch迁移学习实战:用ResNet18实现20类食物图像分类(附代码详解)
一、迁移学习(Transfer Learning)详解1. 什么是迁移学习?迁移学习是一种机器学习方法,其核心思想是将从一个任务(源任务)中学到的知识,应用到另一个相关但不同的任务(目标任务&#…...
WSL2网络互通新思路:不折腾IP,用域名访问Win和Linux服务(附Python测试方法)
WSL2网络互通新思路:用域名优雅连接Windows与Linux服务 每次重启WSL2都要重新查找IP地址的日子该结束了。想象一下这样的场景:你在Windows上调试前端代码,需要频繁访问运行在WSL2中的API服务;或者反过来,在Linux环境下…...
解锁ASMR音频收藏新体验:asmr-downloader工具重塑资源获取方式
解锁ASMR音频收藏新体验:asmr-downloader工具重塑资源获取方式 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader asmr-downloader是…...
如何免费掌握AMD Ryzen处理器调试:SMUDebugTool完整入门指南
如何免费掌握AMD Ryzen处理器调试:SMUDebugTool完整入门指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…...
保姆级教程:用Python+ArcPy搞定ERA5-Land月数据(降水/气温/辐射)的下载与批量处理
PythonArcPy自动化处理ERA5-Land气象数据的完整实战指南 当面对全球尺度的ERA5-Land月数据时,手动处理降水、气温和辐射等多变量数据就像用勺子舀干大海——效率低下且容易出错。本文将分享一套经过实战检验的自动化处理方案,帮助地理信息、生态水文领域…...
Matlab散点图进阶:scatter函数参数详解与实战代码解析
1. scatter函数基础:从零开始绘制散点图 第一次接触Matlab的scatter函数时,我被它强大的定制能力惊艳到了。这个看似简单的绘图工具,实际上藏着无数让数据可视化的魔法。让我们从一个最基本的例子开始: x randn(100,1); % 生成1…...
Unity新手避坑指南:用C#脚本动态修改材质和Shader,别再搞混material和sharedMaterial了
Unity材质控制深度解析:从内存管理到动态效果实战 在Unity开发中,材质(Material)和着色器(Shader)的控制是创建动态视觉效果的核心技能。许多开发者在使用C#脚本修改材质属性时,常常陷入material和sharedMaterial的混淆陷阱,导致内…...
Fortify扫描中Access Control: Database问题的3种实战绕过技巧(附代码)
Fortify扫描中Access Control: Database问题的3种实战绕过技巧(附代码) 在Java企业级应用开发中,安全扫描工具Fortify常常会将数据库访问控制标记为潜在风险点。特别是当系统采用微服务架构时,权限校验可能已在前置网关完成&…...
