世事洞明皆学问,人情练达即文章。这篇文章主要讲述#yyds干货盘点# web安全day26:今天,算是把linux的用户管理弄明白了相关的知识,希望能为你提供帮助。
linux操作系统中的用户分类我们此前一直使用的是root账户,其实为了防止对系统造成巨大损害,一般使用普通账户,root账户和普通账户的切换方式如下:
su - admin //切换普通用户,admin是我们在安装系统时新建的用户
可以发现普通用户对于部分文件是没有权限查看的,因为普通用户的权限是很有限的。
su - root //切换root用户,注意还需要输入密*码
可以发现root用户对这些文件是有权查看的,root用户对应了windows操作系统中的administrator管理员用户,它的权限是最高的。
除了root用户和普通用户,linux中还有程序用户。
用户信息
/etc/passwd保存了操作系统中所有用户的信息
vim etc/passwd
一共有25个用户,除了我们一开始就知道的root用户和admin(普通用户)外,还有其他23个用户。它的表示方法是每一段用:分割,共有7个段,我们以root用户和普通用户为例,了解一下它的表示方法。
root:x:0:0:root:/root:/bin/bash
dmin:x:1000:1000:admin:/home/admin:/bin/bash
字段1:用户名
字段2:密*码占位符,只做占位使用,实际的密*码保存在其他文件中,放在这里不是安全的。
字段3:用户的uid(user id),非常重要,系统通过uid来识别用户。为0表示超级用户,普通用户被设定在500-60000之间。1-499是分配给程序用户的,程序用户是为了保证系统更安全,对于部分服务或者软件的启动或者调用,如果使用普通用户权限,权限可能不够,如果使用root用户权限,万一这些服务或者软件对系统有害,就会产生严重后果,所以使用程序用户。
字段4:基本组的gid(group id),基本组就是用户默认的,必须存在的组。在linux中,现有组,再有用户。
字段5:用户信息记录字段。比如电话号码等,现在基本不使用。
字段6:用户家目录。
字段7:用户登录系统后使用的命令解释器。我们可以看到root用户和普通用户的都是一样的,说明它们使用相同的命令解释器,而程序用户一般都是/bin/nologin,这说明它们是不能登录系统的。
口令信息
/etc/shadow保存了操作系统中所有用户的密*码信息,权限很高,普通用户看不了,只有root用户才能看。
cat /etc/shadow
和我们之前看的用户信息是一一对应的关系,也是25个用户,且包括了root用户,普通用户和程序用户。我们还是以root用户和普通用户为例,了解一下它的表示方法。
root:$1$y.kC8ymn$Mu9cCCJQHcYzqN2C4RITf/::0:99999:7:::
admin:$1$y.kC8ymn$Mu9cCCJQHcYzqN2C4RITf/:18938:0:99999:7:::
它有9个字段。
【#yyds干货盘点# web安全day26(今天,算是把linux的用户管理弄明白了)】字段1:用户名
字段2:加密后的密*码,使用sha加密配合solt值防止相同密*码加密后密文也一样。
字段3:距离1970年1月1日口令最近一次修改事件,1970年1月1日是linux诞生元年。
字段4:密*码的最短有效期,0表示不限制。
字段5:密*码的最长有效期,99999表示不限制。
字段6:密*码过期前7天警告
字段7:密*码的不活跃期
字段8:用户的失效时间
组信息
/etc/group保存了操作系统中所有组的信息
cat etc/group
建立和调整用户属性
组的建立、删除、修改
添加class1的组,组id默认
groupadd class1
建立一个名为class2的组,组id为3000
groupadd class2 -g 3000
删除class1的组
groupdel class1
修改class1的组id为2000
groupmod class1 -g 2000
用户的添加、删除、修改、加组、离组
建立tom用户,要求其基本组是class1组
useradd -g class1 tom//在class1组内创建用户tom
id tom//检查用户tom信息
修改tom的附加组是class2组,uid是600。
usermod -G class2 tom -u 600//修改tom所在组信息,-G表示添加附件组,-u表示修改uid
id tom//再次检查
建立一个程序用户,其uid是250,用户名为testuser,没有家目录
useradd testuser -u 250 -M -s /sbin/nologin//-M表示没有家目录,-s /sbin/nologin指定命令解释器,表示无法登录系统
id testuser//检查用户信息
尝试切换testuser,确实无法登录系统。
su - testuser
用户口令设置
只有root用户可以为普通用户设置口令
为tom用户设定口令
passwd tom
cat etc/shadow | grep tom//检查和验证
设定tom的口令最长有效期是90天
chage -M 90 tom//给tom用户的口令最长使用期为90天
passwd -S tom//检查tom的口令的信息
cat etc/shadow | grep tom// 检查tom的口令的信息
设定新建用户的默认口令最长有效期是90天
vim /etc/login.defs
锁定tom用户,使其无法登录
passwd -l tom
passwd -S tom
解锁tom用户,使其可以登录
passwd -u tom
passwd -S to
删除用户和组
删除tom用户和testuser用户
userdel -r tom
userdel -r testuser
id tom
id testuser
删除class1组和class2组
groupdel class1
groupdel class2
关于本文所用到的工具,欢迎关注我的公众号:旁骛OtherThing,回复工具获取。
推荐阅读
- Windows 上的边缘计算 Azure IoT Edge for Iinux on Windows
- 在windows vm上部署Azure Pipelines Agent
- 设计模式-- 原型模式
- Windows主机上运行Azure IoT Edge的推荐方法
- #私藏项目实操分享#分布式技术专题「分布式ID系列」百度开源的分布式高性能的唯一ID生成器UidGenerator
- #yyds干货盘点#函数高级用法递归和高级工具expect等
- #yyds干货盘点#Vuex实战讲解(全),玩转Vue必备知识
- spring-boot-devtools 快速重启的秘密!#yyds干货盘点#
- 算法 | 第2章 链表相关《程序员面试金典》#yyds干货盘点#