discuz修改用户uid_你知道Linux中的UID和GID的含义吗

你知道Linux中的UID和GID的含义吗

是不是大家看到UID(user id)和GID(group id),都会立马说不就是用户和用户组ID。

但是。

当我们登陆Linux系统时,输入自己的用户名和密码,这里其实Linux系统并不认识你的用户名(或者换一种说法,不是依赖于你的用户名来识别你),它只认识你的用户名所对应的ID号(一串数字)。

直白一点,用户名实际没有ruan用,仅是为了方便用户的记忆而已(对比域名和ip)。

如下图:

查看odysee用户UID和GID

38f3c92ee023944dc6084bcff9fb18a6.png

Linux系统将所有用户名称与ID的对应关系都存储在/etc/passwd文件中。

如下图:

324caf5519d055001792d29ef56669ef.png

用户组名称和ID对应关系都存储在/etc/group文件中。

b86cc91b79220fb3e4680304a585754b.png

1、 这里大家可能会问,既然Linux系统不认识用户名,文件是如何判别它的拥有者名称和群组名称的呢?

解:

每个文件都有自己的拥有者ID和组ID,当显示文件属性时,系统会根据/etc/passwd和 /etc/group文件中的内容,分别找到UID和GID对应的用户名和群组名,然后显示出来。

这里就类似于数据库中student表,拿着sno(学号)找对应的sname(姓名)。

如下图所示:

stat groovy.txt

f0b9ae70046fa67b066c03a527d0a461.png

2、 做个小demo

实现让odysee用户无法进入自己的家目录

提示:修改重要配置文件请提前备份

d947f6875ff0021f30c7b3ddf962c635.png

(1)修改odysee的UID

282e4a5fa4cd4f155d198345b40fdb72.png

(2)查看刚刚odysee的groovy.txt文件

是不是发现本来的用户名odysee变成了1000

前面我们已经说过了,每个文件都有自己的拥有者ID和组ID,当文件groovy拿着ID(1000)去/etc/passwd找自己的姓名时,发现没有和1000匹配的姓名(因为我们刚刚把它的UID改为了9527)。所以只能显示UID。

bd484c0b850230e2bc2c3b33ddde4f1c.png

(3) 从root切到odysee

下面居然提示没有权限。

还回不了自己的家了。

690ab111eb55836c3d6cea8c29f8f3c7.png

ll home

drwx------ 3 1000 odysee 4096 May 22 11:04 odysee

是不是跟(2)一样的原理。

该目录只有UID为1000的用户可以进入,其余的(不限root)一切免进(g、o位没有权限,只有u位有rwx权限)。

3e0bf4b0312c79f901079c5a74d6b89a.png

总结:

关于UID和GID大家是不是有了一点点新的认识。

关于/etc/passwd文件中用户的UID别忘了改回去。

修改UID操作慎用!!!

感谢支持。

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

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

相关文章

linux5种IO模型以及同步异步,阻塞非阻塞

同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出…

MYSQL的函数有哪些?(4.3时间与日期函数)

一。时间与日期函数的格式说明符 格式说明符 描述说明 %a 一星期中每天名称的缩写(Sun...Sat) %b 月份的缩写(Jan...Dec) %c 月份的数字表现形式(0...12) %D 带有英语后缀的一个月中的每一天的…

MYSQL中最基础的的聚合函数(重点!)

一。聚合函数的介绍 在数据库查询过程中,不仅只返回数据的基础信息,有时还需对这些数据进行统计和汇总。MySQL 提供了聚合函数,用于实现这些高级功能。 二。聚合函数的基础运用 聚合函数用于对一组值进行计算并返回一个汇总值,…

商品尺码规格和颜色需要支持双引号

商品尺码规格和颜色需要支持双引号 商品尺码规格和颜色既然要支持双引号,不得不佩服这个需求; 如果支持英文双引号 就会是 "color":""red"" 导致前端获取不到颜色,但是中文状态下是没有问题的 只能将英文转换…

EasyExcel导入的时候报错Caused by: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/File

今天用EasyExcel导入的时候报错&#xff0c;如下 com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagic at com.alibaba.excel.analysis.ExcelAnalyserImpl.<init>(ExcelAnalyserImpl.java…

MYSQL中最基础的的聚合函数(avg求平均值及count求和)

一。avg函数 1.性质及作用&#xff1a;avg(column) 用于返回数字型字段 column 的平均值&#xff0c;注意&#xff1a;列值为 null 的字段不参与运算。 2.如何运用 实例&#xff1a;1.获取线路里程的平均值。 2.获取公交二公司所属线路的平均里程数。 二。count函数 1.性质…

分组查询 group by 子句及order by子句

一。group by的实际意义 使用 group by 子句可以将数据划分到不同的组中&#xff0c;实现对记录的分组查询。group by 从英文字面的意义上可以理解为“根据&#xff08;by&#xff09;一定的规则进行分组&#xff08;group&#xff09;”&#xff0c;该子句的作用是通过一定的…

列表怎么有限的初始化为零_《零基础学习Android开发》第五课 类与面向对象编程1-1...

视频&#xff1a;《零基础学习Android开发》第五课 类与面向对象编程1-1类的定义、成员变量、构造方法、成员方法一、从数据与逻辑相互关系审视代码通过前面的课程&#xff0c;我们不断接触Java语言的知识&#xff0c;不断增加自己的语言表达能力。到现在为止&#xff0c;我已经…

MYSQL多字段分组having子句

一。多字段分组的意义 group by 子句的分组字段是一个字段列表&#xff0c;即 MySQL 支持按多个字段进行分组。具体的分组策略&#xff1a;分组优先级从左至右&#xff0c;即先按第一个字段进行分组&#xff0c;然后在第一个字段值相同的记录中&#xff0c;再根据第二个字段的…

Hadoop的多节点集群启动,唯独没有namenode进程?(血淋淋教训,一定拍快照)(四十五)...

前言 大家在搭建hadoop集群时&#xff0c;第一次格式化后&#xff0c;一路要做好快照。别随便动不动缺少什么进程&#xff0c;就来个格式化。 问题描述&#xff1a;启动hadoop时报namenode未初始化&#xff1a;java.io.IOException: NameNode is not formatted. 同时&#xff0…

Mybatis之SqlSession简析

在 MyBatis 中&#xff0c;SqlSession 是其核心接口。在 MyBatis 中有两个实现类&#xff0c;DefaultSqlSession 和 SqlSessionManager。 SqlSession是Mybatis的一个核心类&#xff0c;简单点就是执行sql的&#xff0c;Mybatis的一级缓存应该就在这个级别上的&#xff0c;实际…

MYSQL中where子句与having子句的区别

一。作用上的区别 having 子句和 where 子句均用于过滤数据&#xff0c;两者的区别在于&#xff1a;where 子句对结果集进行过滤筛选&#xff0c;而 having 子句则对分组的结果进行筛选。 例&#xff1a;统计公交公司为非“通恒公司”的最长线路里程大于 24 的分组信息&#…

并发执行变成串行_网易Java研发面试官眼中的Java并发——安全性、活跃性、性能...

一. 安全性问题线程安全的本质是正确性&#xff0c;而正确性的含义是程序按照预期执行理论上线程安全的程序&#xff0c;应该要避免出现可见性问题(CPU缓存)、原子性问题(线程切换)和有序性问题(编译优化)需要分析是否存在线程安全问题的场景&#xff1a;存在共享数据且数据会发…

Mybatis框架中SqlSessionFactory

首先SqlSessionFactory与SqlSession都是同一个接口 SqlSessionFactory是通过SqlSessionFactoryBuilder的build方法创建的 而build方法创建的是一个SqlSessionFactory的实现类,叫DefaultSqlSessionFactory 然后这个实现类主要用的设计模式是建造者(build)模式,而里面最终要达…

cpu模拟器c语言实现_你写出来的C语言是这样调用硬件的!

大家都知道我们可以使用C语言写一段程序来控制硬件工作&#xff0c;但你知道其工作原理吗&#xff1f;网友北极C语言在实际运行中&#xff0c;都是以汇编指令的方式运行的&#xff0c;由编译器把C语言编译成汇编指令&#xff0c;CPU直接执行汇编指令。所以这个问题就变成&#…

apk瘦身

原文地址&#xff1a;http://blog.coderclock.com/2017/01/24/android/Android%E5%BA%94%E7%94%A8%E7%98%A6%E8%BA%AB%EF%BC%8C%E4%BB%8E18MB%E5%88%B012.5MB/ Android应用瘦身&#xff0c;从18MB到12.5MB 开篇语 前阵子老大交给了我一个任务&#xff0c;主要是帮我们开发的直播…

交叉连接(笛卡尔积)

一。什么是笛卡尔积&#xff08;交叉连接&#xff09; 交叉连接&#xff08;Cross Join&#xff09;&#xff0c;又称“笛卡尔连接&#xff08;Cartesian Join&#xff09;”或“叉乘&#xff08;Product&#xff09;”&#xff0c;它是所有类型的内连接的基础。 如果把表视为…

java删除字符串最后一位

String s "1,2,3,4,5,6,7,8,";//目标&#xff1a;删除最后一个 ","s s.substring(0, s.length() - 1);System.out.println(s);

内连接查询的重点分析

一。概要 内连接基于连接谓词&#xff0c;它将两张表 ( 如A 和 B) 的列组合在一起&#xff0c;产生新的结果表。 内连接查询会将 A 表的每一行和 B 表的每一行进行比较&#xff0c;并找出满足连接谓词的组合。当连接谓词被满足&#xff0c;A 和 B 中匹配的行会按列组合&#x…