Linux下有三类用户
超级用户:root 具有操作系统的一切权限 UID 值为0
普通用户:普通用户具有操作系统有限的权限,UID值 500 - 6000
伪用户:是为了方便系统管理,满足相应的系统进程文件属主的要求,伪用户不能登录系统,UID值 1 – 499
用户管理
用户添加与信息
用户管理文件:cat /etc/passwd
,在此文件中,只定义帐号,不定义口令。
文件中每行定义一个用户,分七个部分:
- 帐号名称:root
- 用户密码:x
- 用户标识码(用户ID):0
- 组标识码(用户组ID):0
- 用户描述信息:admin
- 用户家目录:/root
- 用户环境:/bin/bash
用户信息查看id
1 | id username |
查看一个用户的UID, GID以及组信息
参数:g 只显示GID,G 只显示所有组,u 只显示UID
查看用户相关信息finger
1 | finger username |
查看用户的相关信息,包括用户的主目录,启动shell,用户名等
参数:l 显示帐号信息,m 忽略真实姓名,p 显示帐号信息,但是不显示计划文件和方案文件内容,s 显示帐号信息(不同格式)
用户口令管理
用户口令文件:cat /etc/shadow
此文件只有root用户能访问,分九个部分:
- 用户名:root
- 口令:存放加密口令,如果第一个字符是
!
,表示该用户不能登录 - 最后一次修改时间:
- 最大时间间隔:0 可以随时改变
- 最小时间间隔:99999 表示永远不过期
- 警告时间:1周
- 不活动时间:
- 失效时间:
- 保留:最后一个字段是保留的,看以后有没有新功能加入。
创建用户命令useradd或者adduser
useradd 或者 adduser(man useradd)
参数:-u -g -G -d -s -c -e -k -m -M -r
1 | -b, --base-dir BASE_DIR #新账户的主目录的基目录 |
也可以通过手动方式添加一个用户,需要以下四个步骤:
- 在/etc/passwd中添加一条记录
- 创建用户主目录
- 在用户主目录中设置默认的配置文件
- 设置用户初始口令
用户帐号的维护(删改)
1 | passwd username #设置用户密码(注意:没有设置密码的用户不能登录) |
变化用户身份
1 | su userName |
说明:从管理员到普通用户不用使用密码;从普通用户到其他用户需要使用密码
这样,至改变用户身份,环境变量不变;
1 | su -userName |
完全转变,包括身份和环境变量
只允许root用户登录
可以在/etc/目录下建立一个名为nologin的文件
1 | touch /etc/nologin |
解除方法,删除nologin文件即可
1 | rm -rf /etc/nologin |
用户组管理
用户组分两类:
- 私有组:当在创建一个新用户user时,若没有指定他所属于的组,Linux就建立一个和该用户同名的私有组
- 标准组:标准组可以容纳多个用户,若使用标准组,在创建一个新用户时,就应该指定该用户所属于的组
用户组的管理文件位置:/etc/group
分为四个部分:
- 组名:用户登录时所在的组名
- 组口令:一般不使用
- 组标识码(GID)
- 组内用户列表:属于改组的所有用户列表
添加用户组
两种方法:
useradd username
这种方法会建立一个和usernmae同名的私有组groupdadd groupname
正统的方法,建立一个组
1 | useradd username #默认建立username用户组 |
修改组名
1 | groupmod -n newName groupName |
删除组帐号
groupdel 组帐号名称 #注意:删除的帐号必须存在,且不能是某个用户的私有组
添加用户到组
1 | gpasswd -a userName groupName #a是添加的意思 |
从组中删除用户
1 | gpasswd -d userName groupName #d是删除的意思 |
查看某个用户属于哪个组
1 | groups userName |
查看某个组有哪些用户
1 | tail 5 /etc/group #显示最后5个组 |