Linux是一个多用户的操作系统,引入用户,可以方便的管理Linux服务器,系统默认需要以一个用户的身份登录,系统启动进程也需要以一个用户身份启动,用户可以限制某些进程对特定资源的权限
Linux最多拥有60000以下用户,每一个用户都有一个UserID,Linux根据UID区分用户,UID的长度为32位,用户ID从0开始,Linux用户ID分为三种
- 0:root用户
- 1~500:系统用户
- 500以上:普通用户
Linux中每一个文件活每一个文件夹都拥有一个所属用户和所属组,Linux用户的特点如下:
- 每个用户都拥有一个UserID,操作系统根据UID区分用户
- 每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组
- 每个组都拥有一个GroupID
- 每个进程都以一个用户的身份运行,限制进程对特定资源的权限
- 每个可登录用户都拥有一个指定的shell环境
id命令和passwd命令
使用id命令可以查看当前登录的用户信息
使用passwd命令可以修改当前用户的密码(必须知道原来密码和密码设置的必须有难度)
id # 查看当前登录用户的信息
passwd # 修改当前登录用户的密码
useradd命令(root权限)
命令介绍:创建用户
命令参数:
- -b:指定账户的home目录
- -d:指定账户的主目录
- -D:显示或修改useradd默认配置
- -e:指定账户过期时间
- -f:新账户的密码不活动期
- -g:账户主组名称或ID
- -G:账户的附加组列表
- -m:创建用户的主目录
- -M:不创建用户的主目录
- -N:不创建同名的组
- -o:允许使用重复的UID创建用户
- -p:加密后的用户密码
- -r:创建一个系统用户
- -s:账户登录到的shell
- -u:账户UID
- -U:创建与用户名相同的组
创建用户的流程:
- 在/etc/passwd文件添加用户信息
- 如果使用passwd创建密码,密码就会保存到/etc/shdawn中
- 为用户添加home目录 /home/用户名
- 将/etc/skel中的.bash开头文件复制到/home/用户名 home目录中
- 创建与用户名同名的组,用户默认属于与用户名同名的组
- 将创建号的组信息保存到/etc/group配置文件中
useradd admin # 添加一个用户
passwd admin # 修改用户的密码
useradd -G admin,root a # 创建一个用户并添加附属组
usermod命令
命令介绍:修改用户信息
参数详情:
- -d:用户的新主目录
- -e:设置过期日期
- -f:几天后密码失效
- -g:强制设置Group新组
- -G:设置用户组列表,这里是替换,不是新增
- -a:修改附属组,原组保留
- -l:修改登录名称,账户必须未登录
- -L:锁定账户,如果账户已经登录,则会在账户下次登录时候锁定,锁定账户后使用passwd会自动取消锁定
- -U:解锁账户
- -m:修改home目录
- -s:设置新的shell环境
- -u:使用新的UID
usermod -L a # 锁定用户名为a的用户 usermod -l b a # 将a用户的用户名改为b usermod -G a,b,c a # 修改附属组为a,b,c usermod -a -G a,b,c a # 添加新的附属组 -a 原组保留
userdel命令
命令介绍:删除用户
userdel a # 删除用户,但是保留用户的home数据,需要用户未登录
userdel -r a # 删除用户名为a的用户,不保留home数据,账户需要未登录
userdel -rf a # 删除用户不保留home数据,强制删除,不管用户登录与否