用户管理
1.用户/用户组的基本概念
用户分类
-
超级用户:拥有对系统的最高管理权限,默认是root用户。
-
普通用户:只能对自己目录下的文件进行访问和修改,具有登录到系统的权限。
-
虚拟用户:这类用户最大的特点就是不能登录系统,他们的存在主要是方便系统管理,满足相应得进程对文件属主的要求。例如系统默认的bin.adm.nobody用户等,一般运行的是web服务,默认使用的是nobody用户,但是nobody用户是不被允许登录系统的。
用户组是具有相同特征用户的逻辑集合。有时我们需要让多个用户有相同的权限,比如查看修改某个文件的权限,一种方法就是对多个用户进行访问授权,如果有10个用户的话,就要授权10次,显然这种方法不太合理。另一种方法就是建立一个组,让这10个用户放在同一个组中,同时授权这个组有查看,修改这个文件的权限。
2.用户组信息存储的文件
2.1 用户基本信息文件
该文件存储在/etc/passwd,进入该文件后,会出现冒号分割的7个字段:
root: x: 0: 0: root: /root:/bin/bash
(用户名:x:uid:gid:描述:HOME:shell)
文件中每一行表示一个用户信息,其中:
- x是密码占位符,具体的密码不在这里。
- uid是用户的身份证号。uid:0为特权用户;uid:1~499为系统用户;uid:1000+为普通用户。
- gid是Group组号。
- HOME是家目录,即登录系统时所在的目录。
- shell是登录shell。
2.2 用户密码信息文件
该文件存储在/etc/shadow,进入该文件后,会出现9列:
root : $6$PPPP. : 10086 : 0 : 888 : 7 : : :
- 登录名:与/etc/passwd文件中的登录名相一致的用户账号
- 口令:存放加密后的用户口令字,如果为空则对应用户没有口令,登录时不需要口令
- 星号:代表账号被锁定
- 双叹号:表示这个密码已经过期了
- $n$:里面不同的数字代表不同的加密方式
- 最后一次修改时间:表示从某个时刻(可能是1970年1月1日)起,到用户最后一次修改口令时的天数
- 最小时间间隔:两次修改口令之间所需的最小天数(比如5表示改完密码后需要过5天才能改)
- 最大时间间隔:口令保持有效的最大天数
- 警告时间:从系统开始警告用户到用户密码正式失效之间的天数
- 不活动时间:用户没有登录活动但是账号仍然保持有效的最大天数
- 失效时间:账号的生存期
- 保留
2.3 组信息文件
该文件存储在/etc/group,进入该文件后,会出现4列
root : x : 0 :
(组名 组密码 组ID 组成员)
3.用户/用户组管理
3.1 用户
3.1.1 创建用户(未指定选项)
useradd 用户名 : 创建用户
id 用户名 : 查询用户是否存在
whoami : 查看当前是哪个用户
当创建的用户后,会在/home下生成新用户的文件夹,新用户创建的内容会在该文件夹中。如果创建用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group。
3.1.2 创建用户(指定选项)
useradd 用户名 -u uid : 创建用户并指定uid
useradd 用户名 -d 家目录 : 创建用户并指定该用户的家目录
(任何命令如:useradd --help会出现该命令的帮助文档)
3.1.3 删除用户
userdel -r 用户名 : 删除用户,-r是将用户的家目录一同删除
3.1.4 用户密码
passwd 用户名 : 修改用户密码
3.1.5 组成员管理
gpasswd -d 用户名 组名 : 将用户从组中删除
3.1.6 其他选项管理
usermod -s /sbin/nologin 用户名 : usermod是修改用户属性,-s表示修改登录shell,该命令使用户无法登录
注意:shell命令语法结构是:命令 选项 什么shell 用户参数
3.2 用户组
3.2.1 操作
groupadd 用户组名称 : 创建用户组
groupadd 用户组名称 -g gid : 创建用户组并指定gid
groupdel 用户组名称 : 删除用户组
3.2.2 分类
-
基本组:随用户创建的组,组名同用户名。基本组只有一个,且显示在/etc/passwd的组号中。
- -g : 指定用户的基本组
- -G : 指定用户的附加组
-
附加组:当前用户除了基本组,还加入到其他组,其他组相对于该用户就是附加组。附加组可以有多个,在/etc/group中可以查看。
将用户A的基本组修改为组c:usermod A -g c
4.提权
-
永久提权:需要执行特殊指令时,使用su(switching users)切换到其他用户。
su - root : 切换为root
exit : 从root退回到之前使用的用户
-
临时提权:使用普通用户登录服务器时,用sudo可以完成部分特权指令。前提要在配置文件中进行权限的配置。
sudo useradd 用户名 : 以普通用户的身份执行用户添加的指令