1、为什么需要了解用户和组
服务器要添加多账户的作用
针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源
提高系统的安全性
帮助系统管理员对使用系统的用户进行跟踪
2、用户和组的关系
理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。
3、用户组操作
用户组的操作无疑三件事:用户组的添加、用户组的修改以及用户组的删除操作
组:group
添加:add
修改:mod
删除:del
☆ 用户组的添加
基本语法:
# groupadd [选项] 用户组的组名称
选项说明:
-g :代表用户组的组ID编号,自定义组必须从1000开始,不能重复
案例:在系统中添加一个hr的用户组
# groupadd hr
案例:在系统中添加一个test的用户组并指定定编号1100
# groupadd -g 1100 test
问题:我们刚才创建的hr以及test用户组到底添加到哪里了?
答:默认情况下,我们添加的用户组都会放在一个系统文件中,文件位置=>/etc/group
# tail -3 /etc/group
root:x:0:
centos:x:1000:
☆ /etc/group文件解析
由以上命令的执行结果可知,在/etc/group文件中,其一共拥有三个冒号,共四列。每列含义:
第一列:用户组的组名称
第二列:用户组的组密码,使用一个x占位符
第三列:用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500...
CentOS7 => 1-999,1000...
第四列:用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)
☆ 用户组的修改
基本语法:
# groupmod [选项 选项的值] 原来组的组名称
选项说明:
-g :gid缩写,设置一个自定义的用户组ID数字,1000以后
-n :name缩写,设置新的用户组的名称
案例:把hr用户组更名为szhr
# groupmod -n szhr hr
案例:把test用户组的组编号由1100更改为1003
# groupmod -g 1003 test
案例:把itcast组的组名称更改为admin且用户组的组编号更改为1004
# groupmod -g 1004 -n admin itcast
☆ 用户组的删除
基本语法:
# groupdel 用户组名称
案例:使用groupdel删除test用户组
# groupdel test
4、用户操作
用户:user
添加:add
修改:mod
删除:del
☆ 用户的添加
基本语法:
# useradd [选项 选项的值] 用户名称
选项说明:
-g :代表添加用户时指定用户所属组的主组,唯一的组信息(重要)
-s :代表指定用户可以使用的Shell类型,默认为/bin/bash(拥有大部分权限)还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。
/bin/bash => 给人使用的(运维工程师)
/sbin/nologin => 给软件使用的
-G :代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)
-u :代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解)
-c :代表用户的备注信息,cqw:123456:(陈权伟的账号)
-d :代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改
-n :取消建立以用户名称为名的群组(了解)
案例:在系统中创建一个linuxuser账号
# useradd linuxuser
案例:在系统中创建一个账号zhangsan,指定用户所属的主组为itheima
第一步:查询一下itheima的组ID编号
# tail -5 /etc/group
itheima:x:1000:
第二步:根据组的编号添加用户
# useradd -g 1000 zhangsan
案例:在系统中创建一个账号lisi,指定主组为itheima,此用户只能被软件所使用,不能用于登录操作系统
# useradd -g 1000 -s /sbin/nologin lisi
案例:在系统中创建一个wangwu,指定主组为wangwu,附属组为itheima
# useradd -G 1000 wangwu
☆ 用户信息查询
基本语法:
# id 用户名称
主要功能:查询某个指定的用户信息
案例:查询linuxuser用户的信息
# id linuxuser
uid=1002(linuxuser) gid=1005(linuxuser) groups=1005(linuxuser)
uid:用户编号
gid:用户所属的主组的编号
groups:用户的主组以及附属组信息,第一个是主组,后面的都是附属组或附加组信息
☆ 用户信息修改
用户:user,添加:add,修改:mod,删除:del
基本语法:
# 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(itheima)
# usermod -g 1000 wangwu
案例:禁止linuxuser账号登录Linux操作系统
# usermod -s /sbin/nologin linuxuser
案例:禁止linux用户登录操作
# usermod -L linux
案例:解锁linux用户
# usermod -U linux
问题:账号已经解锁,但是无法登录
① 当前账号没有设置密码,因为Linux操作系统不允许没有密码的操作进行登录
② 当前用户的Shell类型为/sbin/nologin,所以其无法登录
☆用户删除操作
基本语法:
# userdel [选项] 用户名称
选项说明:
-r :删除用户的同时,删除用户的家(默认不删除)
案例:删除用户但是不删除用户的家目录
# userdel zs
案例:删除用户的同时删除用户的家目录
# userdel -r lisi
删除账号流程:① 删除账号 ② 确认是否删除用户家 ③ 删除用户主组(没有其他用户)
扩展:当我们想要删除某个账号时,系统提示当前账号正在被某个进程所使用
解决方案:
第一种方案:找到登录的这个用户,然后将其直接注销
第二种方案:
# kill [-9] 进程的ID编号
选项说明:-9代表强制结束某个进程
主要功能:用于结束某个进程的继续运行
案例:结束11565进程
# kill 11565
简单粗暴,kill 对应用户的全部进程(尽量斩草除根,结束父进程)
# ps -ef |grep linux
ps命令:查看进程
-ef :查看系统的所有进程
|:管道命令
grep linux:搜索包含了linux关键词的所有进程
结束完成后,再次使用userdel删除即可
☆ passwd命令
基本语法:
# passwd 用户名称
主要功能:为某个用户设置密码(添加或修改),可以给自己也可以给别人设置
案例:修改自己的密码
[root@yunwei ~]# passwd
案例:为linux账号添加一个密码,密码:123456
[root@yunwei ~]# passwd linux
特别注意:在Linux操作系统中,如果一个账号没有密码,则无法登录操作系统。
☆ su命令
基本语法:
# su [-] root
选项:
- :横杠(减号),代表切换用户的同时,切换目录到用户的家
主要功能:切换用户的账号
从超级管理员切换到普通用户,root => centos,不需要输入centos的密码
从普通账号切换到超级管理员,centos => root,需要输入root的密码
从普通账号切换到普通账号,centos => linuxuser,也需要输入linuxuser密码