一、概要
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改。
- 用户口令的管理。
- 用户组的管理。
二、用户类别
1、分类
- 管理员
- 普通用户 :系统用户 , 登录用户
2、用户标识: UserID ,UID
- 一般默认16bits 二进制数字: 0-65535
- 管理员标识:0 不会改变
- 普通用户: 1-65535
- 系统用户:1-499, 1-999 (centos6 ,centos7)
- 登录用户:500-60000 , 1000-60000
- 当每个用户登录系统会自动将其转换为用户标识.
- 名称解析(转换): username <->UID, 根据名称解析库进行转换(对照:用户名及ID)为系统可识别的用户标识:UID,存放在/etc/passwd
三、用户操作
1、添加用户
作用
添加用户,用户在配置文件:/etc/passwd
语法
useradd 选项 用户名
常用选项
选项 | 说明 |
---|---|
-g | 常用 指定用户登录组的GID或组名 不指定为当前用户名 |
**-u ** | 常用 uid 为账户指定一个唯一的UID |
**-d ** | 常用 为主目录指定一个名字(如果不想用登录名作为主目录名的话) |
**-p ** | 常用 passwd 为用户账户指定默认密码 |
-G | 添加多个用户组 |
栗子
# 新建docker用户
useradd -g 1005 -u 1005 -d /home/docker docker
# 创建mysql用户例如root用户组和docker
useradd -g group –G root,docker mysql
2、删除用户
作用
删除一个已有的用户账号
语法
userdel 选项 用户名
常用选项
选项 | 说明 |
---|---|
-r | 删除用户同时删除其家目录 |
栗子
userdel docker
# 删除用户同时删除其主目录
userdel -r mysql
3、修改用户
语法
usermod [options] LOGIN
常用选项
-g* | 常用 指定用户登录组的GID或组名 不指定为当前用户名 |
---|---|
**-u ** | 常用 uid 为账户指定一个唯一的UID |
**-d ** | 常用 为主目录指定一个名字(如果不想用登录名作为主目录名的话) |
**-p ** | 常用 passwd 为用户账户指定默认密码 |
-G | 添加多个用户组 |
-l | 新的用户名 |
栗子
usermod -g 10006 -u 10006 -d /home/test -l test java
4、修改密码
作用
修改用户密码,如果不指定用户名默认修改当前用户的密码
语法
passwd [选项] [用户名]
常用选项
选项 | 说明 |
---|---|
-l | 锁定密码,即禁用账号 |
-u | 口令解锁。 |
-d | 使账号无口令。 |
-f | 强迫用户下次登录时修改口令 |
栗子
# 修改当前用户密码
passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
# 修改指定用户的密码
passwd java
# 修改密码为空
passwd -d java
# 禁用账号
passwd -l java
# 解锁账号
passwd -u java
四、用户组
1、添加用户组
作用
若命令带有-r参数,则创建系统用户组,该类用户组的GID值小于500;若没有-r参数,则创建普通用户组,其GID值大于或等于500
语法
groupadd -g 用户组id 用户组名
常用选项
选项 | 说明 |
---|---|
-g | GID 指定新用户组的组标识号(GID)。 |
-o | 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 |
栗子
# 添加默认的 用户组
groupadd normal
# 指定编号 添加用户组
groupadd -g 1000 hello
2、删除用户组
语法
groupdel 用户组
栗子
groupdel normal
3、修改用户组
语法
groupmod 选项 用户组
常用选项
选项 | 说明 |
---|---|
-g | 为用户组指定新的组标识号。 |
-n | 新用户组 将用户组的名字改为新名字 |
栗子
#将组g1的的ID修改成1008
groupmod -g 1008 g1
# 修改g1的标识号改为10009,组名修改为g2
groupmod -g 1009 -n g2 g1
五、其它相关命令
1、切换用户
作用
从一个用户切换到另一个用户
语法
su [选项] 用户名
常用选项
选项 | 说明 |
---|---|
- | 当前用户不仅切换为指定用户的身份, 同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等), 使用 - 选项可省略用户名,默认会切换为 root 用户。 |
栗子
# 切换到root用户,环境不切换
su
# 切换到root用户 包括环境
su -root
# 切换到其它存在的用户
su -java
2、其它
- 退出当前用户
exit
- 查看当前用户名
whoami
- 查看所有已有的用户
cat /etc/passwd
- 显示用户ID及其所属group的groupID
id 用户名 #例如 id user
- 查看一个user的主group
cat /etc/passwd user:x:1001:1000::/home/user:/bin/bash,而 cat /etc/group1 显示结果中有 group1:x:1000: ,这说明 user的主group就是group1
- 添加一个user到一个group
gpasswd -a 用户名 用户组 #例如 gpasswd -a test grouptest
- 从一个group中删除user
gpasswd -d 用户名 用户组 # 例如 gpasswd -d test grouptest
- 添加用户,并指定用户ID,同时添加到指定的group
useradd -u 用户id -g 用户组id 用户名 # 例如 useradd -u 2001 -g 2000 test
网友评论