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): 并发是指在同一时间段内,多个任务或…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
