Linux用户和用户组

news2024/10/6 2:31:21

Linux是多用户、多任务操作系统

一般来说,一个服务分配一个用户,这个用户只拥有这个服务相关文件的相关权限,如果用户不需要登陆,连密码都可以不分配,一般来说,非法分子都是获取当前进程的的权限来攻击服务器,而不是取得某个用户的用户名和密码。

一、/etc/passwd

vim /etc/passwd

man 5 /etc/passwd // 查看配置文件帮助

0

每一行对应一个用户,7个字段含义如下

1 用户名称

2 密码标志 // 早期密码在这里,后来改到/etc/shadow里,这里就只有一个标记了,x表示用户有密码

3 UID(用户ID)

0:超级用户,可以把普通用户的UID修改为0就成为了管理员,可以重叠

1-499:系统用户(伪用户),这些用户不能删除,

500-65535:普通用户

4 GID(用户初始组ID),建立用户是会同时建立一个初始组,一个用户只能属于一个初始组,但是可以挂在其他的附加组。

5 用户说明

6 家目录

7 登陆之后的Shell,命令解释器,标准的/bin/bash,还有/sbin/nologin伪用户

二、 /etc/shadow影子文件

0

vim /etc/shadow

  

每个用户一行,shadow文件的权限为000

1 用户名

2 加密密码        

3 设置密码的时间,单位是天,1970年1月1日开始

4 两次修改密码的间隔,单位天,设置天数内不许修改

5 密码有效期

6 密码到期前几天开始警告

7 密码过期后的宽限天数,0:过期后立即失效,-1:密码永远不会失效

8 账号失效时间,要用时间戳表示

9 保留位

换算时间戳

0

三、 /etc/group // 组信息文件

0

没添加一个用户,就会生成一个和用户名一样的组,作为用户的初始组

1 组名

2 组密码标志,组密码并不常见

3 GID

4 组中附加用户

四、 /etc/gshadow // 组影子文件

0

1 组名

2 组密码,不推荐使用

3 组管理员用户名,如果设置了

4 组中附加用户

添加用户时如果不指定组,就会生成一个和用户名相同的组

5 用户管理相关文件

用户的家目录

普通用户:/home/用户名,自动建立,权限为700

超级用户:/root/,权限是550,权限形同虚设,

用户的邮箱

/var/spool/mail/用户名/

用户模板目录

新建用户的家目录里会从这里拷贝文件,/home/wang/

/etc/skel/

Linux下用户分为三种:

@ 超级用户

@ 普通用户

@ 虚拟用户/伪用户 // 不能登陆系统,满足系统进程对文件属主的要求。

组的出现是为了让权限可批量分配给用户

一个用户可以属于多个组,他将拥有多个组的权限集合

一个用户至少属于一个组

6 添加用户

adduser bob1 // 添加用户,没有指定组

产生的影响有:

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

/home/bob1 // 生成bob1家目录

/var/spool/mail/bob1 // 生成bob1邮箱目录

选项

-u UID // 手动指定用户UID,不建议手动设定

-d 家目录 // 不建议手动设定

-c 用户说明 //

-g 组名 // 初始组,不建议设定

-G // 附加组,用逗号分隔多个组

-s shell // 制定shell

useradd -u 666 -G root,bin -c "test user" -d /liming -s /bin/bash liming

添加用户默认值文件

/etc/default/useradd // 添加用户时默认的参数

GROUP=100 // 现在已经不是这样,直接新建了同名组

HOME=/home

INACTIVE // 密码过期宽限天数

EXPIRE= // 密码失效时间(8)

SHELL=/bin/bash // shell

SKEL=/etc/skel // 模板目录

CREATE_MAIL_SPOLL=yes // 是否建立邮箱

用户登陆配置默认配置

/etc/login.defs

PASS_MAX_DAYS 999999 // 密码有效期

...

7 设置密码

passwd bob1 // root给用户bob1设置/修改密码,不需要提供旧密码

passwd // 普通用户给自己修改密码,需要提供旧密码

passwd -S bob1 // root常看普通用户的密码状态

passwd -l bob1 // 管理员锁定普通用户,实际将shadow文件里的密文串修改了

passwd -u bob1 // 管理员解锁普通用户

echo "123" | passwd --stdin bob1 //设置密码为123

8 修改用户信息

usermod和useradd的选项一样,只是一个是添加用户一个是修改已存在的用户

usermod -c "test user" bob1 // 添加用户说明

usermod -G root bob1 // 加入到附加root组

usermod -L bob1 // 锁定用户的另一种方法

usermod -U bob1 // 解锁用户

9 修改用户密码状态

直接修改shadow文件更加直观

chage -l bob1 // 列出用户的详细密码状态

chage -d // 修改密码最后一次更改日期(shadow 第3字段)

chage -m // 两次密码修改间隔(4)

chage -M // 密码有效期(5)

chage -W // 密码过期前警告天数(6字段)

chage -I // 密码过期后宽限天数(7)

chage -E // 账号失效时间(8)

chage -d 0 bob1 // 将密码修改日期归0,这样用户一登陆就必须修改密码

10 删除用户

userdel -r bob1 // 删除用户的同时删除家目录,-r删家目录

手工删除用户

vi etc/passwd

vi etc/shadow

vi etc/group

vi etc/gshadow

rm -rf /var/spool/mail/bob1

rm -rf /home/bob1/

11 用户切换命令

su - root // 一定连同环境变量一起切换,杠没有就没有切换环境变量,会引发不可预测错误

env // 查看当前用户环境变量

su - bob1 // 超级用户切换普通用户,不需要输入密码

su - root -c "useradd user" // 不切换root,但是使用一次root身份来执行命令

id // 查看当前用户信息

whoami // 查看当前有效用户(su 切换的用户)

who am i // 查看当前实际用户(登陆用户)揭穿马甲

12 用户组管理

groupadd -g 500 // 手动指定GID,一般直接groupadd room401

groupmod -n room501 room401 // 修改组名401为501

groupmod -g 555 // 修改GID

groupdel room401 // 直接删,组没有家目录

一个组是一个用户的初始组,那么这个组是不可以被删除的,除非先删除用户

gpasswd -a user1 root // 将user1加入到root组,是附加组

gpasswd -d user1 root // 将user1从root组删除

groupadd -r mysql // 添加一个系统组,没有家目录,ID号小于500

13

chown -R bob1:mygroup /etc/test // 递归修改目录的所有者和所属组

chown -R bob1.mygroup /etc/test // 也可以用点

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

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

相关文章

自然语言处理: 第五章Attention注意力机制

自然语言处理: 第五章Attention注意力机制 理论基础 Attention(来自2017年google发表的[1706.03762] Attention Is All You Need (arxiv.org) ),顾名思义是注意力机制,字面意思就是你所关注的东西,比如我们看到一个非…

vue3中echarts的使用

效果&#xff1a; 代码&#xff1a; <div class"outcharbox"><a-row :gutter"10"><a-col :span"8" v-for" (item, index) in linesobjdata" :key"item.MonitorItemId"><monitoringItemsChart :colorI…

49天精通Java,第40天,jd-gui反编译class文件,解决jd-gui中文乱码问题

目录 专栏导读一、添加局部变量二、反编译class文件三、解决乱码问题四、产品经理就业实战1、内容简介2、作者简介 专栏导读 本专栏收录于《49天精通Java从入门到就业》&#xff0c;本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学&#xff0c;从0开始&#xf…

【SQL应知应会】表分区(四)• MySQL版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 分区表 • MySQL版 前言一、分区表1.非分区表2.分区…

系统学习Linux-SSH远程服务(二)

概念 安全外壳协议&#xff0c;提供安全可靠的远程连接 特点 ssh是工作在传输层和应用层的协议 ssh提供了一组管理命令 ssh 远程登陆 scp 远程拷贝 sftp 远程上传下载 ssh-copy-id ssh keygen 生成 提供了多种身份验证机制 身份验证机制 密码验证 需要提供密码 密…

vue element select下拉框回显展示数字

vue element select下拉框回显展示数字 问题截图&#xff1a; 下拉框显示数字可以从数据类型来分析错误&#xff0c;接收的数据类型是字符串&#xff0c;但是value是数字类型 <el-form-item prop"classifyLabelId" :label"$t(item.classifyLabelId)"…

051、事务设计之TiDB事务实现方式

事务在TiDB中的存储 分布式事务 提交的第一阶段&#xff0c;会用三个CF 来存放这些数据信息&#xff0c; 一类列簇对应一类键值对&#xff0c; 第一个CF(default)存放的是数据 的键值对。第二个存放的是锁信息。 第三个对应的是提交信息。 put<3_100,Frank> 3_100: prim…

LeetCode·每日一题·1851. 包含每个查询的最小区间·优先队列(小顶堆)

题目 示例 思路 离线查询&#xff1a; 输入的结果数组queries[]是无序的。如果我们按照输入的queries[]本身的顺序逐个查看&#xff0c;时间复杂度会比较高。 于是&#xff0c;我们将queries[]数组按照数值大小&#xff0c;由小到大逐个查询&#xff0c;这种方法称之为离线查询…

Go语言之接口(interface)

1.1 、多态的含义 在java里&#xff0c;多态是同一个行为具有不同表现形式或形态的能力&#xff0c;即对象多种表现形式的体现&#xff0c;就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定&#xff0c;而是在程序运行期间才确定&am…

T5模型: Transfer Text-to-Text Transformer(谷歌)

&#x1f525; T5由谷歌发表于2019&#xff0c;《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》&#xff0c;最终版本发布在&#xff1a;JMLR。 一句话总结T5: 大一统模型&#xff0c;seq2seq形式完成各类nlp任务&#xff0c;大数据集…

Docker 的前世今生:从社区到市场,从领域到技术应用的全方位分析

博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&#x1f466;&#x1f3fb; 《java 面试题大全》 &#x1f369;惟余辈才疏学浅&#xff0c;临摹之作或有不妥之处&#xff0c;还请读者海涵指正。☕&#x1f36d; 《MYSQL从入门到精通》数据库是开发者必会基础之…

下载编译Chromium

参考&#xff1a;Mac上本地编译Chrome浏览器踩坑笔记&#xff08;2021.02最新&#xff09; - 掘金 For Mac: 一、下载编译工具链&#xff1a;deptool git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH"$PATH:/Users/yumlu/co…

jib进行本地打包,并上传本地镜像仓库

使用 Jib 进行本地打包和上传到本地镜像仓库是一种方便的方式&#xff0c;而无需编写 Dockerfile。Jib 是一个开源的 Java 容器镜像构建工具&#xff0c;它可以直接将 Java 项目打包为镜像&#xff0c;并将其推送到容器镜像仓库。 gradle 进行jib的配置 import java.time.Zon…

第53步 深度学习图像识别:Bottleneck Transformer建模(Pytorch)

基于WIN10的64位系统演示 一、写在前面 &#xff08;1&#xff09;Bottleneck Transformer "Bottleneck Transformer"&#xff08;简称 "BotNet"&#xff09;是一种深度学习模型&#xff0c;在2021年由Google的研究人员在论文"Bottleneck Transfor…

MaxCompute与 Mysql 之单字段转多行

在实际数据处理中&#xff0c;可能会遇到行列转换的数据处理&#xff0c;在 MaxCompute 与 AnalyticDB MySQL 数据处理与转换 介绍过如多行转一行&#xff0c;本篇主要介绍将逗号分割的字段转成多行。 一、MaxCompute 实现方式 在MaxCompute中有TRANS_ARRAY函数&#xff0c;可…

显示一行或两行多出的文字用省略号代替

以上就是一行的效果&#xff0c;超出宽度就用...代替 .recommendContainer .scrollItem text{/* 单行文本溢出隐藏 省略号代替 */display: block;white-space: nowrap; /*溢出不换行*/overflow: hidden; /*溢出隐藏*/text-overflow: ellipsis; /*溢出的内容已...代替*/} 多…

watch中监听vuex中state改变监听不到

watch中监听vuex中state改变监听不到 https://blog.csdn.net/aliven1/article/details/100581529?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-100581529-blog-122614448.t5_layer_targeting_sa&spm1001.2101.3001.4242…

软通动力与华秋达成生态共创合作,共同推动物联网硬件创新

7月11日&#xff0c;在2023慕尼黑上海电子展现场&#xff0c;软通动力信息技术(集团)股份有限公司(以下简称“软通动力”)与深圳华秋电子有限公司(以下简称“华秋”)签署了生态共创战略合作协议&#xff0c;共同推动物联网硬件生态繁荣发展。当前双方主要基于软通动力的产品及解…

从Vue2到Vue3【二】——Composition API(第二章)

系列文章目录 内容链接从Vue2到Vue3【零】Vue3简介及创建从Vue2到Vue3【一】Composition API&#xff08;第一章&#xff09; 文章目录 系列文章目录前言一、 生命周期二、hook三、toRef以及toRefs总结 前言 Vue3作为Vue.js框架的最新版本&#xff0c;引入了许多令人激动的新…

vue项目部署自动检测更新

前言 当我们重新部署前端项目的时候&#xff0c;如果用户一直停留在页面上并未刷新使用&#xff0c;会存在功能使用差异性的问题&#xff0c;因此&#xff0c;当前端部署项目后&#xff0c;需要提醒用户有去重新加载页面。 在以往解决方案中&#xff0c;不少人会使用websocke…