小伙伴们好,我是「 行走的程序喵」,感谢您阅读本文,欢迎一键三连~
😻 【Java基础】专栏,Java基础知识全面详解:👉点击直达🐱 【Mybatis框架】专栏,入门到基于XML的配置、以及基于注解的高级开发详解:👉点击直达
🐵 【Linux运维】专栏,从系统安装到运维大师进阶教程笔记全记录:👉点击直达

一、用户组和用户概念
Linux 系统是一个多用户多任务的操作系统,所谓多用户多任务,是指支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。
每个账号都拥有一个唯一的用户名和各自的密码,用户在登录时输入正确的用户名和密码后,就能够进入系统,默认会进入到这个用户自己的主目录
针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源。
用户组是具有相同特征用户的逻辑集合,简单来说,就是具有相同权限的用户的集合。
-
用户和用户组 的关系
一个用户可以属于一个用户组,具有此用户组的权限 ;
一个用户可以属于多个用户组,此时具有多个组的共同权限。
-
主组
用户创建时默认所属的组,每个用户的主组只能有一个。创建用户时会同时创建一个和用户名相同的组。
-
附加组
每个用户只能有一个主组,除主组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。
-
相关配置文件
⭐ /etc/passwd 用户配置文件,存储用户的基本信息
⭐ /etc/group 存储用户组的信息
⭐ /etc/shadow 存储用户的密码信息
二、用户组操作
2.1、添加用户组
-
语法
# groupadd -[选项] 用户组名称 选项说明: -g :代表用户组的组ID编号,自定义组必须从1000开始,不能重复 -
示例
在系统中添加一个hr的用户组 # groupadd hr 在系统中添加一个test的用户组并指定定编号1100 # groupadd -g 1100 test
2.2、修改用户组
-
语法
# groupmod [选项 选项的值] 原来组的组名称 选项说明: -g :gid缩写,设置一个自定义的用户组ID数字,1000以后 -n :name缩写,设置新的用户组的名称 -
示例
把hr用户组更名为szhr # groupmod -n szhr hr 把test用户组的组编号由1100更改为1003 # groupmod -g 1003 test 把test组的组名称更改为admin且用户组的组编号更改为1004 # groupmod -g 1004 -n admin test
2.3、删除用户组
-
语法
# groupdel 用户组名称
2.4、用户组相关配置文件
⭐ /etc/group 存放用户组信息
# tail -3 /etc/group
输出:
root:x:0:
hr:x:1000:
文件解析:
第一列:用户组的组名称
第二列:用户组的组密码,使用一个x占位符
第三列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500...
CentOS7 => 1-999,1000...
第四列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)
三、用户操作
3.1、添加用户
-
语法
# useradd [选项 选项的值] 用户名称 选项说明: -g :代表添加用户时指定用户所属组的主组,唯一的组信息(重要)。如果不指定该选项,默认情况下,系统会自动在用户组中创建一个与用户名同名的用户组,这个组就是这个用户的主组 -s :代表指定用户可以使用的Shell类型,默认 为/bin/bash(拥有大部分权限)还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。 /bin/bash => 给人使用的(运维工程师) /sbin/nologin => 给软件使用的 -G :代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解) -u :代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解) -c :代表用户的备注信息 -d :代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改 -n :取消建立以用户名称为名的群组(了解) -
注意
新增的用户没有密码,不能登录系统!
-
示例
在系统中创建一个linuxuser账号 # useradd linuxuser 在系统中创建一个账号zhangsan,指定用户所属的主组为admin # useradd -g admin zhangsan 在系统中创建一个账号lisi,指定主组为admin,此用户只能被软件所使用,不能用于登录操作系统 # useradd -g admin -s /sbin/nologin lisi 在系统中创建一个wangwu,指定主组为wangwu,附属组为admin # useradd -G admin wangwu
3.2、修改用户
-
语法
# usermod [选项 选项的值] 用户名称 选项说明: -g :修改用户所属的主组的编号 -l :login name修改用户的名称 -s :修改用户可以使用的Shell类型,如/bin/bash => /sbin/nologin 扩展: -L:锁定用户,锁定后用户无法登陆系统lock -U:解锁用户unlock 了解: -G :修改用户附属组的编号信息 -d :修改用户的家目录 -c :修改用户的备注信息 -
示例
修改zhangsan账号信息,更名为zs # usermod -l zs zhangsan 修改wangwu账号信息,把用户的主组的编号更新为1000(admin) # usermod -g 1000 wangwu 禁止linuxuser账号登录Linux操作系统 # usermod -s /sbin/nologin linuxuser 禁止linux用户登录操作(锁定) # usermod -L linux 解锁linux用户 # usermod -L linux
3.3、设置用户密码
-
语法
# passwd 用户名称 为某个用户设置密码(添加或修改),可以给自己也可以给别人设置 -
示例
修改自己的密码 # passwd 为linux账号添加一个密码 # passwd linux 【注意】以上操作根据提示输入即可
3.4、删除用户
-
语法
# userdel [选项] 用户名称 选项说明: -r :删除用户的同时,删除用户的家(默认不删除)
删除账号流程:① 删除账号 ② 确认是否删除用户家 ③ 删除用户主组(没有其他用户)
-
扩展
要删除名为“linux”的用户账号时,系统提示当前账号正在被某个进程所使用
【解决方案】
第一种方案:找到登录的这个用户,然后将其直接注销
第二种方案:
# kill [-9] 进程的ID编号 选项说明:-9代表强制结束某个进程 主要功能:用于结束某个进程的继续运行案例:结束11565进程
# kill 11565简单粗暴,kill 对应用户的全部进程(尽量斩草除根,结束父进程)
# ps -ef | grep linux ps命令:查看进程 -ef :查看系统的所有进程 |:管道命令 grep linux:搜索包含了linux关键词的所有进程结束完成后,再次使用
userdel删除即可
3.5、查看用户信息
-
语法
# id 用户名 -
示例
# id linuxuser 输出: uid=1002(linuxuser) gid=1005(linuxuser) groups=1005(linuxuser) 说明: uid:用户编号 gid:用户所属的主组的编号 groups:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息
3.6、切换用户
-
语法
# su [-] 用户名 选项: - :横杠(减号),代表切换用户的同时,切换目录到用户的家
从超级管理员切换到普通用户,root => admin,不需要输入admin的密码
从普通账号切换到超级管理员,admin=> root,需要输入root的密码
从普通账号切换到普通账号,admin=> linuxuser,也需要输入linuxuser密码
3.7、用户相关配置文件
⭐ /etc/passwd 每创建一个用户,其就会在此文件中追加一行,存放用户信息。
# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
共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 用户名称
⭐/etc/shadow 存放用户密码
由于 /etc/passwd文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了shadow文件中。
/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
存储的是加密后的密码,就是 $ 开头的字符串,如果显示为 !! ,则表示这个用户没有设置密码。
3.8、wheel组(了解)
Linux系统中,理论上只有在wheel组中的普通用户,才可以通过su命令切换到root账户,默认所有普通用户都能切换到root,只要知道root密码,换句话说,默认此配置不生效。
往期精彩内容
持续更新更多内容… 欢迎小伙伴们前来围观~
感谢小伙伴们的厚爱!都到这里了,来个👍三👍连👍再走吧~
本文深入讲解了Linux系统中的用户和用户组概念,包括用户权限分配、主组与附加组、添加、修改和删除用户组及用户的方法,还涉及了密码设置、切换用户、配置文件等内容,适合运维和开发人员参考。
393





