Linux用户管理

简介: 简单说一下 Linux的用户管理

这次来说一下 Linux的用户管理,因为 Linux不同于 windows,它是一个多用户、多任务的操作系统,即允许同时登录多个用户进行操作,所以在学习 Linux的过程中必然要学习用户管理方面的知识,当然,也无非是一些增删改查的操作。内容如下。
page6.png

1、了解用户和组

服务器添加多账户的作用:

1)针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源。
2)提高系统的安全性。
3)帮助系统管理员对使用系统的用户进行跟踪。

2、用户和组的关系

理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。
用户和组.png

主组只能拥有一个,但是附属组或附加组可以同时拥有多个 => 亲爹(1个),干爹(多个)

3、用户组操作

用户组的操作,简单来说就三件事:用户组的添加、修改以及删除。需要先牢记以下单词。

组:group
添加:add
修改:mod
删除:del

3.1 用户组的添加

1)语法及案例

基本语法:

groupadd [选项]  用户组的组名称
选项说明:
-g :代表用户组的组ID编号,自定义组必须从1000开始(1-999为系统组,一般不使用),不能重复。

案例1:在系统中添加一个 hr的用户组

groupadd hr

没有任何提示或者报错,则说明添加成功。

案例2:在系统中添加一个 test的用户组并指定编号为1100

groupadd -g 1100 test

提问:以上既然创建了用户组,那创建的 hr以及 test用户组到底添加到哪里了?

答:默认情况下,我们添加的用户组都会放在一个系统文件中,文件位置 => /etc/group

可以通过 tail命令查看 group文件中的内容。

tail -3 /etc/group

group.png

或者根据文件路径 /etc/group 查看
group1.png

2)/etc/group文件解析

由以上命令的执行结果可知,在 /etc/group文件中,一共拥有三个冒号,共四列。每列含义如下:

第一列:用户组的组名称
第二列:用户组的组密码,使用一个x占位符
第三列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500...
CentOS7 => 1-999,1000...
第四列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)

3.2 用户组的修改

用户组的修改主要是对用户组名称和用户组编号进行修改。

基本语法:

groupmod [选项 选项的值] 原来组的组名称
选项说明:
-g :gid缩写,设置一个自定义的用户组ID数字,1000以后
-n :name缩写,设置新的用户组的名称

案例1:把 hr用户组更名为 szhr

groupmod -n szhr hr

案例2:把 test用户组的组编号由1100更改为1003

groupmod -g 1003 test

案例3:把 demo组的组名称更改为 admin且用户组的组编号更改为1004

groupmod -g 1004 -n admin demo

修改.png

3.3 用户组的删除

基本语法:

groupdel 用户组名称

案例:使用 groupdel删除 test用户组

groupdel test

删除.png

4、用户管理

先来回顾一下单词。

用户:user
添加:add
修改:mod
删除:del

4.1 用户的添加

基本语法:

useradd [选项 选项的值] 用户名称
选项说明:
-g :代表添加用户时指定用户所属组的主组,唯一的组信息(重要)
-s :代表指定用户可以使用的Shell类型,默认为/bin/bash(拥有大部分权限)还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。
/bin/bash => 给运维工程师使用的
/sbin/nologin => 给软件使用的

-G :代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)
-u :代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解)
-c :代表用户的备注信息,zyq:123456:(zhengyquan的账号)
-d :代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改
-n :取消建立以用户名称为名的群组(了解)

案例1:在系统中创建一个 linuxuser账号

useradd linuxuser

问题1:我们并没有为 linuxuser账号指定所属的主组,可以成功创建账号吗?

答:可以,因为在创建账号时,如果没有明确指定用户所属的主组,默认情况下,系统会自动在用户组中创建一个与用户 linuxuser同名的用户组,这个组就是这个用户的主组。

问题2:刚才创建的 linuxuser账号能不能用于登录操作系统?

答:不能,因为 Linux的登录账号必须要求有密码,如果一个账号没有密码是无法登录操作系统的。

案例2:在系统中创建一个账号 zhangsan,指定用户所属的主组为 zhengyquan

第一步:查询一下 zhengyquan的组ID编号
tail -4 /etc/group
第二步:根据组的编号添加用户
useradd -g 1000 zhangsan

案例3:在系统中创建一个账号 lisi,指定主组为zhengyquan,此用户只能被软件所使用,不能用于登录操作系统

useradd -g 1000 -s /sbin/nologin lisi

添加用户.png

案例5:在系统中创建一个 wangwu,指定主组为 wangwu,附属组为 zhengyquan

useradd -G 1000 wangwu

添加1.png

4.2 用户信息查询

基本语法:

id 用户名称

主要功能:查询某个指定的用户信息

案例:查询 linuxuser用户的信息

id linuxuser

查询.png

字段说明:
uid:用户编号
gid:用户所属的主组的编号
groups:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息

4.3 与用户相关的用户文件

组:/etc/group文件
用户:/etc/passwd文件,每创建一个用户,其就会在此文件中追加一行

vim /etc/passwd

用户文件.png

由上图可知,一共拥有7列,每列含义如下:

第1列:用户名称
第2列:用户的密码,使用一个x占位符,真实密码存储在/etc/shadow(1-用户名,2-加密密码)
第3列:数字,用户的ID编号
第4列:数字,用户的主组ID编号
第5列:代表注释信息,useradd -c "备注信息" 用户名称
第6列:用户的家目录,默认在/home/用户名称
第7列:用户可以使用的Shell类型,useradd -s /bin/bash或/sbin/nologin 用户名称

4.4 passwd命令

基本语法:

passwd 用户名称

主要功能:为某个用户设置密码(添加或修改),可以给自己也可以给别人设置

案例1:修改自己的密码

passwd

案例2:为 linuxuser 账号添加一个密码,密码:123456

passwd linuxuser

设置密码.png

特别注意:在 Linux操作系统中,如果一个账号没有密码,则无法登录操作系统。

4.5 用户修改操作

用户:user,添加:add,修改:mod,删除:del
基本语法:

usermod [选项 选项的值] 用户名称
选项说明:
-g :修改用户所属的主组的编号
-l :login name修改用户的名称
-s :修改用户可以使用的Shell类型,如/bin/bash => /sbin/nologin

扩展:
-L:锁定用户,锁定后用户无法登陆系统lock
-U:解锁用户unlock

了解:
-G :修改用户附属组的编号信息
-d :修改用户的家目录
-c :修改用户的备注信息

案例1:修改 zhangsan账号信息,更名为 zs

usermod -l zs zhangsan

案例2:修改 wangwu账号信息,把用户的主组的编号更新为 1000(zhengyquan)

usermod -g 1000 wangwu

修改1.png

案例3:禁止 linuxuser账号登录 Linux操作系统

usermod -s /sbin/nologin linuxuser

案例4:禁止 linuxuser用户登录操作,即锁定用户(Ctrl + Alt + F2 ~ F6)

usermod -L linuxuser

锁定1.png

在上一小点 4.4中为 linuxuser用户设置的密码是123456,按 Ctrl + Alt + Fn + F2~F6进入字符界面,用该账户密码登录,由于账户被锁定,无法登录。
锁定.png

几点注意

Linux系统除了默认的图形化界面,其实还有6个隐藏的字符界面,按Ctrl + Alt + F1~F6

有些电脑开启Fn功能键,所以如果Ctrl + Alt + F1~F6不生效,则可以按Ctrl + Alt + Fn + F1~F6

退出当前运行的shell:exit

案例5:解锁 linux用户

usermod -U linuxuser

按 Ctrl + Alt + Fn + F1切换回图形化界面,终端输入usermod -U linuxuser解锁后再次登录,登陆成功。
解锁.png

问题:账号已经解锁,但是无法登录,可能原因如下。

① 当前账号没有设置密码,因为 Linux操作系统不允许没有密码的操作进行登录。

② 当前用户的 Shell类型为 /sbin/nologin,所以其无法登录。

4.6 su命令

基本语法:

su [-] root
选项:
- :横杠(减号),代表切换用户的同时,切换目录到用户的家

主要功能:切换用户的账号

从超级管理员切换到普通用户,root => zhengyquan,不需要输入zhengyquan的密码

从普通账号切换到超级管理员,zhengyquan => root,需要输入root的密码

从普通账号切换到普通账号,zhengyquan => linuxuser,也需要输入linuxuser密码

4.7 wheel组(了解)

Linux系统中,理论上只有在wheel组中的普通用户,才可以通过su命令切换到 root账户,默认所有普通用户都能切换到root,只要知道root密码,换句话说,默认此配置不生效。

4.8 用户删除操作

基本语法:

userdel [选项] 用户名称
选项说明:
-r :删除用户的同时,删除用户的家(默认不删除)

案例1:删除用户但是不删除用户的家目录

userdel zs

案例2:删除用户的同时删除用户的家目录

userdel -r lisi

删除1.png

删除账号流程:① 删除账号 ② 确认是否删除用户家 ③ 删除用户主组(没有其他用户)

扩展:当我们想要删除某个账号时,系统提示当前账号正在被某个进程所使用
删除2.png

解决方案:
第一种方案:找到登录的这个用户,然后将其直接注销(exit)
第二种方案:

kill [-9] 进程的ID编号
选项说明:-9代表强制结束某个进程
主要功能:用于结束某个进程的继续运行

案例3:结束11565进程

kill 11565
或
kill -9 11565

删除3.png

如果上述还是不能解决,即 userdel -r linux 后还是显示进程被占用(即该程序可能开了多个进程),则采用另一种更加简单粗暴的方式,kill 对应用户的全部进程(尽量斩草除根,结束父进程)

ps -ef |grep linux
ps命令:查看进程
-ef :查看系统的所有进程
|:管道命令
grep linux:搜索包含了linux关键词的所有进程

kill.png

结束完成后,再次使用 userdel删除即可。

目录
相关文章
|
2月前
|
存储 Linux 数据安全/隐私保护
Linux文件权限及用户管理
Linux文件权限及用户管理
16 0
|
5月前
|
Linux 程序员 Shell
Linux编辑器,开机重启,用户注销,用户管理 常用命令
Linux编辑器,开机重启,用户注销,用户管理 常用命令
96 0
|
5月前
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
65 2
|
8月前
|
安全 Linux Shell
Linux用户管理指南:创建、删除、权限、最佳实践,全面掌握用户管理技巧
Linux用户管理指南:创建、删除、权限、最佳实践,全面掌握用户管理技巧
631 0
|
14天前
|
Linux Shell 数据安全/隐私保护
Linux用户管理
Linux用户管理
9 0
|
5月前
|
大数据 Linux 数据安全/隐私保护
linux语法复习-01天-用户管理-关机和重启
linux语法复习-01天-用户管理-关机和重启
|
2月前
|
缓存 Unix Linux
Linux 常用命令汇总(四):信息显示 & 用户管理
hostname是一个 Unix/Linux 命令行工具,用于显示或设置系统的主机名dmesg是一个在 Unix-like 系统中常用的命令行工具,用于显示内核缓冲区的消息uptime是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令,用于显示系统已经运行了多长时间,以及当前有多少用户登录和系统负载的平均值stat是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于显示文件或文件系统的状态信息du。
|
4月前
|
网络协议 Linux 网络安全
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
Linux服务器配置指南:网络、用户管理、共享服务及DNS配置详解
170 0
|
4月前
|
Linux 数据安全/隐私保护
Linux的用户管理与文件权限
Linux的用户管理与文件权限
|
Linux Shell 数据安全/隐私保护
Linux关机重启以及用户(组)管理
关机&重启命令&用户登录注销&用户管理&用户组&用户和组相关的文件
23 0