CentOS7学习笔记(三) 用户和用户组管理
用户管理
Linux中root用户是权限最大的用户,一般情况下只有服务器管理员拥有root用户的使用权,而我们会使用其他用户来连接Linux
创建用户的命令#
创建用户的命令是useradd name
,例如创建用户zhang:
创建用户名为zhang的用户
[root@localhost ~]# useradd zhang
用户创建成功,查看home目录下,多了一个zhang的文件夹
[root@localhost ~]# cd /home
[root@localhost home]# ll
总用量 0
drwx------. 3 zhang zhang 78 12月 9 15:41 zhang
新用户默认是没有密码,需要设置密码才可以登录,需要注意的是Linux在输入密码时没有任何显示,凭直觉输入即可
[root@localhost home]# passwd zhang
更改用户 zhang 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
创建用户时可选择使用的参数如下所示:
-d 设置新用户的登陆目录
-e 设置新用户的停止日期,日期格式为MM/DD/YY
-f 帐户过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1
-g 使新用户加入群组
-G 使新用户加入一个新组。每个群组使用逗号“,”隔开,不可以夹杂空白字
-s 指定新用户的登陆Shell
-u 设定新用户的ID值
到此创建一个用户最基本的命令就结束了,可以登录一下试试:
删除用户的命令#
删除用户的命令与添加用户命令类似,使用userdel name
就可以删除这个用户,例如:
上面删除用户的命令没有任何问题,可是并没有将用户删除,这是因为刚刚创建用户后测试登录的控制台并没有退出登录,只要关闭zhang的控制台就可以了
删除用户没有很多的参数,只需要记住一个 -r 就可以了,为了安全起见删除用户默认是不会删除home下的文件的,想要在删除用户的同时删除改用户在homne下的文件只需要携带 -r 参数就可以了
用户密码的修改#
设置用户登录密码
修改用户密码可以使用 passwd 命令进行修改,在没有指定用户的情况下默认修改当前登录用户的密码:
[root@localhost ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
也可以在后面跟上用户登录名,修改指定用户的密码:
[root@localhost ~]# passwd zhang
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
设置简单密码
设置密码时有复杂性校验,可如果偏要设置简单密码的话可以使用下面这种方法,需要注意使用这种方式设置密码时 密码在控制台上是显示的:
[root@localhost ~]# passwd --stdin root
更改用户 root 的密码 。
zhang
passwd:所有的身份验证令牌已经成功更新。
或者如果不喜欢这种方法的话,可以继续使用passwd命令,可以无视他的警告继续设置也可以设置成功
[root@localhost ~]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
用户信息的查询#
查看当前登录的用户使用who am i命令,可以去掉中间的空格,显示的内容会变得精炼
[root@localhost home]# who am i
root pts/0 2021-12-09 16:10 (192.168.95.1)
[root@localhost home]# whoami
root
查看用户信息使用id命令,例如
默认查看当前登录用户的信息
[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
查询指定用户的信息
[root@localhost ~]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@localhost ~]# id zhang
uid=1000(zhang) gid=1000(zhang) 组=1000(zhang)
切换当前登录用户#
系统中创建了test1和test2两个用户,假设说当前登录用户为test1,我想要查看test2下的某个文件:
[test1@localhost ~]$ cd ../test2
-bash: cd: ../test2: 权限不够
他会提示我权限不足,这时就可以切换到test2用户,切换用户的命令为su -
,使用方法如下所示:
切换到test2用户,输入密码后就可以切换成功了
[test1@localhost ~]$ su - test2
密码:
[test2@localhost ~]$ cd /home/test2
输入exit命令后退出test2用户,回到了test1用户
[test2@localhost ~]$ exit
登出
[test1@localhost ~]$
用户组和用户
什么是用户组#
将用户组带入到RBAC权限管理中来看,用户组就相当于一个角色,当某些用户具有同样的操作权限时可以将他们放在同一个用户组中进行管理
用户组的创建和删除#
用户组的管理,这里简单介绍一下用户组的创建和删除就够了,至于权限相关的后面在学
开发组的创建
[root@localhost ~]# groupadd kaifa
测试组的创建和删除
[root@localhost ~]# groupadd ceshi
[root@localhost ~]# groupdel ceshi
用户组和用户的操作#
创建zhang用户,将它放在kaifa组中
# 创建zhanag用户将他放进开发组中
[root@localhost ~]# useradd -g kaifa zhang
# 查看该用户的信息
[root@localhost ~]# id zhang
uid=1002(zhang) gid=1002(kaifa) 组=1002(kaifa)
每个用户在创建后都会属于一个组,如果没有指定组的话,默认会属于一个同名的用户组中,例如之前创建的test1
查看test1的用户组
可以看到test1用户属于同名的test1的组
[root@localhost ~]# id test1
uid=1000(test1) gid=1000(test1) 组=1000(test1)
现在test1的组是默认同名的用户组,现在希望将他移动到开发组中,命令如下所示
使用usermod命令修改用户组
[root@localhost ~]# usermod -g kaifa test1
[root@localhost ~]# id test1
uid=1000(test1) gid=1002(kaifa) 组=1002(kaifa)
用户和组的配置文件
针对用户和用户组的管理,在/etc目录下有配置文件详细记录着
用户的配置文件:/etc/passwd
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
用户的另一个配置文件:/etc/shadow
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
用户组的配置文件:/etc/group
每行含义:组名:口令:组标识号:组内用户列表
作者多数为原创文章 ( 部分转载已标出 ),目前资历尚浅文章内描述可能有误,对此造成的后果深表歉意,如有错误还望指正
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!