Linux 用户管理
一、用户简介
介绍
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问,另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的密码。
普通用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。
用户分类
系统识别的方式: | ||
---|---|---|
管理员 root | uid:0 | 类似于皇帝权限,又称为根用户或管理员账户,可以对普通用户和整个系统进行管理,登录后命令提示符 # |
虚拟用户 | uid:1-999 | 不允许登录操作系统,不能切换,只能启动服务 |
普通用户 | uid:1000+ | 手动创建,切换root管理系统,为了提高系统安全使用普通用户登录,登录后命令提示符 $ |
注意:UID唯一,远程连接系统,和su切换不一样
1 | 1.区分用户种类: |
相关文件
想要实现用户账号的添加、删除、修改以及用户密码的管理和用户组的管理,需要关注以下三个文件
/etc/passwd 存储用户的关键信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
201)用户相关配置文件 /etc/passswd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
每一行以冒号分割 共7列
第一列:用户名称 在登录和切换用户的时候会匹配/etc/passwd文件中的用户名 如果注释,用户无法正常使用
第二列:x 表示用户密码 如果删除了x 则无法远程登录 可以进行su进行切换 而无需密码
第三列:UID 用户唯一的标识 0管理员 1-999虚拟用户 1000+普通用户
第四列:GID 属于哪个组 默认创建的用户都会自动创建一个组 名字和自己的用户名相同 可以属于多个组
第五列:用户的描述
第六列:表示用户的家目录/root 管理员的家 /home 普通用户的家
第七列:命令解释器/bin/bash 可以登录,切换用户
/sbin/nologin 不允许登录,不允许切换
案例:统计/etc/passwd 中 /bin/bash有多少用户,nologin有多少个
1)grep '/bin/bash' /etc/passwd|wc -l
2) grep 'nologin' /etc/passwd|wc -l
3) awk -F: '{print $NF}' /etc/passwd|sort|uniq -c
如果用户不设置密码 不允许远程连接 但是可以su切换用户/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息
二、用户管理
创建组
- 创建组
1 | groupadd 组名 |
- 删除组
1 | groupdel 组名 |
创建用户
1 | 1. 创建用户的流程: |
useradd [参数] 用户名
1 | -g #属组 |
查看用户
id 用户名
cat /etc/passwd |grep 用户名
修改用户 常用参数
usermod [参数] 用户名
1 | -g #表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名 |
设置用户密码
passwd 用户名
切换用户
su [用户名]
1 | 如果用户名不指定则表示切换到 root 用户 |
删除用户
userdel [选项] 用户名
1 | -r #删除用户的同时,删除家目录 |
注意:删除已经登录的用户会删除失败,首先要找到当前需要删除的用户的所有进程并将其 kill
掉,然后再进行删除该用户
ps -axuf | grep 用户名
免交互式,适合脚本创建
1 | ubuntu 免交互式创建用户并设置默认密码: |
1 | centos 免交互式创建用户并设置默认密码: |