用户管理


用户分为root用户(超级管理员)和普通用户

用户管理

创建用户,查询用户,修改用户,删除用户。
把用户放在组里面便于管理。

用户/组基本概念

用户的作用概念:控制所有文件,程序的关键信息。

  • 查看当前登录的用户信息

  • 查看文件的owner(创造者)

  • 查看运行进程的usename

用户/组信息存储的文件

  • 用户基本信息文件/etc/passwd

/etc/passwd冒号分割为7列字段;(学习7列字段含义)

root        :x:0   :0   :root   :/root      :/bin/bash(shell)

用户名   :x:uid:gid:注释  : 宿主目录 :命令环境

root        :用户名(字母组成,不能重名),登录系统的名字;

X            :密码占位符,具体内容不在这里,在/etc/shadow文件里;

UID        :用户的身份证号;、

系统约定:RHEL7
uid:0特权用户
uid:1~499系统用户
初始状态下系统默认的用户有999个 uid:
1000+普通用户

GID        :  group组号(具有相同特征用户的集合)——基本组

注释       :描述

宿主目录:登录系统时所在的目录;

命令环境:登录shell的命令解释器;

/bin/bash:用户可以使用shell登录用户
/sbin/nologin用户不能登录系统,可以运行某程序。把不安全用户设为nologin。
SHELL   壳()——控制计算机
功能      命令解释器
         定义命令
         接受命令
         执行命令
版本:ashell,bshell,cshell,tshell;
bash;
  • 用户密码信息文件/etc/shadow

/etc/shadow冒号分割为8列字段;

密码(对称密码和非对称密码)

加密的意义:

  1. 私密性
  2. 完整性
  3. 不可否认性
加密算法:$id$salt$encrypted
$1:MD5
$5:SHA-256
$6:SHA-512

登录名:密码加密值:最后一次修改时间:最小时间间隔(天数):最大时间间隔(天数):不活动时间:失效时间:

  1. 登录名;与/etc/passwd文件中的登录名相一致的用户账号
  2. 密码加密值;*号代表账号锁定;
  3. 最后一次修改时间;
  4. 最小时间间隔(天数),密码有效期(为多少天数);0代表当天改密码;
  5. 最大时间间隔(天数),密码有效期(为多少天数);99999代表无效期;
  6. 警告时间(时间间隔期一般时提醒);
  7. 不活动时间;表示用户没有登录系统但是账号还能保持有效期的最大天数(超过天数禁用你);可空;
  8. 失效时间;表示到了多少天账号就不能用了;可空;
  9. 保留;
  • 组信息文件/etc/group

 /etc/group冒号分隔为4列;

组名:组密码:组ID:组成员

组名:通常字母组成

组密码:

组ID:纯数字

组成员:默认为空

用户/组管理

用户管理

创建用户(不指定参数):

useradd+创建用户名:创建用户命令;
id+用户名:查询用户命令;
passwd+用户名:修改用户密码;
[root@localhost ~]# useradd 0098                    #创建用户0098

[root@localhost ~]# id 0098
uid=1104(0098) gid=1104(0098) 组=1104(0098)          #查询用户0098是否存在

[root@localhost ~]# passwd 0098                      #修改0098用户的密码
更改用户 0098 的密码 。
新的 密码:000000
怎么样在root目录下进入普通用户目录:

[root@localhost ~]# ls /home                  #查询home下的普通用户
001  0098

[root@localhost ~]# ls /home/001              #查询普通用户001的目录
公共  模板  视频  图片  文档  下载  音乐  桌面

 

创建用户(指定参数)

useradd 创建用户名  -u  指定UID号         :指定参数-u(UID);

useradd  创建用户名  -d  指定目的路径   :指定用户的家目录;

-u指定用户的uid;

[root@localhost ~]# tail -1 /etc/passwd
0098:x:1104:1104::/home/0098:/bin/bash

[root@localhost ~]# useradd 0099 -u 1111         #-u(uid),创建用户0099,指定uid为1111

[root@localhost ~]# tail -2 /etc/passwd
0098:x:1104:1104::/home/0098:/bin/bash
0099:x:1111:1111::/home/0099:/bin/bash


[root@localhost ~]# useradd 9999 -d /9999       #-d(directory),创建用户9999,指定用户的家目录


useradd --heip                                  
#命令 --help
#就可以查看所有命令参数

删除用户:

userdel  -r  用户名:删除用户;

-r一并删除用户目录

[root@localhost 001]# useradd 0098

[root@localhost 001]# userdel -r 0098

[root@localhost 001]# id 0098
id: 0098: no such user

修改密码:

passwd  用户名;

[root@localhost 001]# whoami          #在哪个宿主目录下
root                                  #在root用户密码下
[root@localhost 001]# passwd 001     
更改用户 001 的密码 。
新的 密码:

用户组管理:

创建组

groupadd+创建组名:创建组命令;

(用户和组不能用纯数字,uid和gid是纯数字。)

基本组和附加组

组成员管理:

修改用户属性:

usermod 

-u指定用户的uid;

-g指定用户的基本组;

-G指定用户的附加组;

usermod  用户名   -g    基本组名

/etc/passwd可以查看的是用户的基本组;

/etc/group可以查看用户的附加组。

id命令可以看用户的基本组和附加组。

[root@localhost 001]# usermod -s /sbin/nologin 001
[root@localhost 001]# usermod -s /bin/bash 001

SHELL命令语法结构
usermod    -s      /bin/bash      001
命令        选项    什么shell      用户参数

#/bin/bash:用户可以使用shell登录用户
#/sbin/nologin用户不能登录系统,可以运行某程序。把不安全用户设为nologin。

 

分类:
 组的类型
一个用户可属于多个组。

基本组:随用户而创建的组,组名同用户名。/etc/group;
usermod  用户名    -g   组名(把用户的基本组改为组名;)

附加组:用户加入的其它组; usermod 用户名 -G 组名(把用户放进组名,组名就成为了用户的附加组) (当成员1被创建,就会出现一个组名为1的组被创建,这个组名为1的小组就叫基本组。 当成员2被创建,就会出现一个组名为2的组被创建,这个组名为1的小组就叫基本组。 然后成员1加入组2,这个组2就叫做成员1的附加组。) (如果组hr被创建,它既不是基本组,也不是附加组。因为基本组和附件组是相对于用户来说的。) 每一个成员的基本组只能有一个,而附加组会有多个。 一个用户只能有一个基本组,一个组可以为多个用户的基本组。 成员1和组1是什么关系? 组1对于成员1是基本组;(-g) 组2对于成员1是附加组;(-G) 组1对于成员2:一点关系没有;
groupmod -g  新基本组ID  组名                    #把组的基本组号改为新基本组号(组ID)
eg:
[root@localhost ~]# grep 0098 /etc/group       #创建组0098
0098:x:10001:
[root@localhost ~]# groupmod -g 9999999 0098   #把组名为0098的基本组(即组ID)改为9999999
[root@localhost ~]# grep 0098 /etc/group       #查询0098组信息
0098:x:9999999:
[root@localhost 001]# grep user01 /etc/group
user01:x:1104:
[root@localhost 001]# grep user01 /etc/passwd
user01:x:1104:1104::/home/user01:/bin/bash
[root@localhost 001]# useradd user02
[root@localhost 001]# grep user02 /etc/group
user02:x:1105:
[root@localhost 001]# grep user02 /etc/passwd
user02:x:1105:1105::/home/user02:/bin/bash
[root@localhost 001]# groupadd 0098
[root@localhost 001]# grep 0098 /etc/group
0098:x:1106:
[root@localhost 001]# grep user01 /etc/passwd
user01:x:1104:1104::/home/user01:/bin/bash
[root@localhost 001]# usermod user01 -g user02
#把user01的基本组改为user02的组号
#用户user01的基本组由1104变为租号为1105,1105现在是user01,user02的基本组
[root@localhost 001]# grep user01 /etc/passwd
user01:x:1104:1105::/home/user01:/bin/bash

总结:把不同的权限赋予不同的组,把用户放进组里。用户可以直接使用组权限。比如会员:充值进vip组,拥有会员组权限;到期进非会员组,无会员组权限。用户可以同时进不同的组,拥有不同组的全部权限。

查询组

grep  ‘组名’   /etc/group:查询组命令;
[root@localhost 001]# groupadd hr                #创建组hr

[root@localhost 001]# tail -1 /etc/group         #查找/etc/group里的最后一行
hr:x:1104:
[root@localhost
001]# grep hr /etc/group #在/etc/group查找组名hr chrony:x:989: hr:x:1104: [root@localhost 001]# grep hr /etc/passwd #在/etc/passwd里查询组hr(没有)#/etc/passwd里是用户user文件 [root@localhost 001]# grep hr /etc/shadow #在/etc/shadow里查询组hr(没有)#/etc/shadow里是用户user文件 # /etc/group里是组group文件

移除组

gpasswd -d 用户名user  组名group:把用户user从组group里面删除。

删除组

groupdel  组名:删除组
[root@localhost 001]# groupdel hr                #删除组hr
[root@localhost 001]# grep hr /etc/group         #在/etc/group中查询组hr是否存在;(不存在)
chrony:x:989:

 提权(了解)

永久提权:- su

  1. 普通用户没有特权;
  2. 尽量少用root;
  3. 需要执行特殊指令时,使用-su(su;建议用-su)切换到root用户;
[root@localhost ~]# su - 001                   #切换到001用户
上一次登录:三 5月 18 21:06:05 CST 2022pts/0 上
[001@localhost ~]$ su - root                   #切换为root用户
密码:
上一次登录:三 5月 18 21:07:08 CST 2022pts/0 上
[root@localhost ~]# whoami                     #查看当前宿主目录
root
[root@localhost ~]# exit                       #退出root用户
登出
[001@localhost root]$ exit                     #退出普通用户进入root用户        
exit
[root@localhost ~]

临时提权:sudo

用户登录的主机=(可以变换的身份)可以执行的·命令;

  1. 使用普通登录服务器时;
  2. 完成部分特权命令;
  3. 怎么分配权限呢?
以root用户授权普通用户sudo

vim /etc/sudoers
%wheel  ALL=(ALL)        ALL
第89行:允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令。

useradd  创建新用户名   -G  whell:给用户赋予权限;
sudo userdel  用户名:给用户删除用户的权限;
sudo useradd  用户名:给用户创建用户的权限;