Linux 学习笔记03 Ubuntu
文章目录
第三章 用户和组管理
1. 用户账户基础
用户类型 | 介绍 |
---|---|
超级用户(super user) | 又称root用户,其UID为0,有最高的系统权限,可以执行所有任务。 |
系统用户(system user) | 是系统本身或者应用程序使用的专门账户**,UID取值范围为1~999**, 一般分为两类,一类是Linux操作系统在安装时自行建立的系统用户;一类是用户自定义的系统用户。系统用户没有特别的权限。 |
普通用户(regular user) | 一般的用户都视为普通用户进行登陆,UID默认从1000开始编号 |
大多数版本的Linux在安装是会设置两个用户账户:一个是root用户,一个是登陆系统的普通用户。Ubuntu默认禁用root用户账户,Ubuntu管理员是具有管理权限的普通用户,其权限比一般的普通用户高,比超级管理员则低很多,主要进行删除用户、安装软件和驱动等管理工作。
sudo | 临时使用root身份进行操作,操作结束后自动退出 |
---|
2. 用户配置文件
用户账户管理主要涉及/etc/passwd
和/etc/shadow
两个配置文件
/etc/passwd
文件是Linux关键安全文件之一,是系统用于识别用户账户的一个重要文件。所有的 用户账户都记录在该文件中。/etc/passwd
文件中每一行保存一个用户账户的资料。每个用户的数据包括7个字段,“:”表示。
username:password:uid:gid:userinfo:home:shell
每个字段的含义:
字段 | 含义 |
---|---|
username | 用户账户名,可自定义,在系统内,用户账户名具有唯一性 |
password | 存放加密的用户密码,显示为x,其已被映射到了**/etc/shadow文件**中 |
uid | 用户ID,在系统内用一个整数标志用户ID号,每个用户的UID都是唯一的 |
gid | 默认的用户组ID。每个组的GID都是唯一的 |
userinfo | 用户注释信息。针对用户名的描述,可以不设置 |
home | 分配给用户的主目录,用户登陆后首先进入的目录 |
shell | 用户登陆默认的shell(Linux一般为/bin/bash) |
所有的用户口令都是加密存放的,每个用户会分配到一个GID。不同用户通常分配有不同的主目录,以避免相互干扰。
命令 | 说明 |
---|---|
tail | 查看文件最后几行的内容 |
head | 查看文件开头几行的内容 |
eg>>>tail /etc/passwd # 查看文件最后几行的内容
/etc/shadow
是/etc/passwd
的影子文件,主要保存账户密码配置情况。每一个账户的数据按字段以冒号**“:”**分隔,每行有9个字段
username:passward:lastchg:min:max:warn:inactive:expire:flag
字段 | 含义 |
---|---|
username | 用户账户名,与/etc/passwd中的账户名相同 |
passward | 加密口令,如果密码是**“!”或“ * ”,则表示还没设置密码**或者不会用这个账号来登陆 |
lastchg | 用户最后一次更改密码的日期 |
min | 密码修改的最小间隔时间,0表示禁用此功能 |
max | 密码修改的最大间隔时间,999表示口令永远不过期 |
warn | 密码失效前多少天发出警告 |
inactive | 账户被取消激活前的天数,表示还有多少天改用户会被禁止登陆,是完全禁用 |
expire | 表示用户被禁止登录的时间,指定账户禁用的天数,若为空,则永久可用 |
flag | 保留字段,暂未使用 |
/etc/shadow
文件,读取和操作该文件需要用到root权限。
eg>>> sudo head /etc/shadow # 查看/etc/shadow文件前几行的内容
3. 用户账户管理命令(需要用root权限)
-
新建用户账户命令useradd和adduser
Linux使用useradd命令新建用户账户或更新用户账户的配置信息。注意:使用useradd命令建立的用户默认是锁定的,需要使用passwd命令设置密码以后才能使用。
useradd [选项] [用户名]
选项 参数含义 -c 加上注释信息,会保存在passwd文件的对应栏中 -d 指定用户主目录,若不存在,使用-m选项可以创建主目录 -g 指定用户所属的用户组 -G 指定用户所属的附加组 -s 指定用户的登陆Shell -u 指定用户的用户号 -e 指定账号的有效期限,默认是永久有效 -f 指定在密码过期后多少天关闭该账号 -r 建立系统账号 sudo useradd john01 # 创建新用户 sudo useradd -r john02 # 创建系统用户 cat /etc/passwd | grep john01 # 查看创建用户结果 su john01 # 尝试使用John01,失败。该账户还不能使用 ls /home/ # 查看用户主目录,用户主目录/home/john01不存在
- 使用Ubuntu专用命令adduser
Ubuntu专用命令adduser可用于新增用户账号或更新预设的使用者资料,adduser命令会自动为新创建的用户指定主目录,系统Shell版本,提示输入密码等等。使用adduser添加用户会在**/home目录下自动创建与用户组同名的用户目录。**
# 创建普通用户 adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID] [--disable-password] [--disabled-login] [--add_extra_groups] # 创建系统目录 adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--gecos GECOS]... # 创建用户组 adduser --group [--gid ID] GROUP # 将已存在的用户添加到指定用户组内 # 以上内容只要能分辨出是哪种用户就可以了
注意:将用户添加到用户组中时,需要使用root权限。
-
修改用户账户命令passwd、usermod、chage
passwd命令用于设置或修改用户密码。普通用户和root用户都可以使用passwd命令,但普通用户只能修改自己的用户密码,root用户可以更改任何用户的密码。
passwd [选项] [用户名]
选项 参数含义 -d; --delete 删除指定账户的密码 -e; --expire 强制使指定账户的密码过期 -l; --lock 锁定指定的账户 -k; --keep-tokens 仅在过期后修改密码 -i; --inactive INACTIVE 密码过期后设置密码INACTIVE -u; --unlock 解锁指定的账户 -n; --mindays MIN_DAYS 设置下次修改密码间隔的最短时间 -S; --status 报告指定账户密码的状态 -q; --quiet 安静模式 使用该命令可以更改用户Shell类型、所属组、密码有效期等信息
usermod [选项] [用户名]
选项 参数 -c<备注> 修改用户账号的备注,备注文字会保存在passwd的备注栏中 -d<登入目录> 修改用户登入时的目录,即用户主目录 -e<有效期限> 修改账号的有效期限 -f<缓冲天数> 密码过期后关闭该账号的缓冲时间 -l<账号名称> 修改用户账号名称 -L 修改用户密码 -u < uid> 修改用户ID -U 解除密码锁定 该命令用于密码时效管理,可以用来修改账号和密码的有效期限、用户密码过期信息。
chage [选项] [用户名]
选项 参数含义 -d 指定密码最后修改日期 -E 指定密码过期日期:0表示马上过期;-1表示永不过期 -h 显示帮助信息并退出 -I 密码过期后。锁定账号的天数 -l 列出用户以及密码的有效期 -m 两次改变密码之间相隔的最小时间,0代表任何时候都可以更改 -M 密码保持有效的最大时间 -w 密码过期前,提前收到警告信息的天数 -
删除用户账户命令userdel和deluser
- 使用userdel命令删除用户账户
该命令可以删除用户账号与相关的文件,甚至可以连用户的主目录一起删除,若不加参数,仅删除账号不删除相关文件。
userdel [选项] [用户名]
选项 参数含义 -r 删除用户登陆目录以及目录中的所有文件 -f 强制删除用户(不管用户是否登陆系统) - 使用deluser 命令删除用户或组
Deluser功能较多,除了可以删除用户账户外,也可以删除组账户。甚至可以用来将用户从组中删除。
# 删除普通用户 deluser USER # 删除系统用户 delgroup USER GROUP # 删除用户组 delgroup GROUP deluser --group GROUP
删除普通用户的参数 含义 –remove-home 删除用户的主目录和邮箱 –remove-all-files 删除用户拥有的所有的文件 –backup 删除前将文件备份 –backup-to< DIR> 备份的目标目录,默认是当前目录 –system 只有当该用户是系统用户时才删除
4. 组账户基础
组账户是指具有相同或者相似特性的用户集合,也称为用户组。通过组账户可以集中设置访问权限和分配管理任务。
用户和组属于多对多的关系,一个用户可以同时属于多个组
组账户分为超级组、系统组、普通用户组。
5. 组账户配置文件
组账户配置主要涉及/etc/group和/etc/gshadow两个文件。
/etc/group文件是组账户的配置文件,内容包括用户和组并且能够显示用户归属的组。
具体有组名、组密码、GID、该组包含的用户。每个组对应一条记录,每条记录有4个字段,用“ :”分隔
group_name:group_password:group_id:group_members
字段 | 含义 |
---|---|
group_name | 组账户名 |
group_password | 加密后的组账户密码,显示为X,其已经被映射到了**/etc/gshadow**文件中 |
group_id | GID,默认普通用户组的GID从1000开始,root用户组的GID为0,系统虚拟账户1~999 |
group_members | 以逗号分隔的成员用户清单 |
/etc/login.defs | 查看系统创建组账户默认的GID范围 |
---|
/etc/gshadow 文件是/etc/group文件的组账户影子文件。每条记录有4个字段
group_name:group_password:group_id:group_members
字段 | 含义 |
---|---|
group_name | 组账户名 |
group_password | 加密后的用户组口令,“!”表示这个组没有密码。一般不需要设置。 |
group_id | GID |
group_members | 以逗号分隔的成员用户清单 |
6. 组账户管理命令(需要用root权限)
-
创建组账户命令groupadd 和 addgroup
命名语法:gruopadd [选项] [组名]
选项 参数含义 -f 如果组已经存在,则此选项失效并以成功的状态退出;如果GID已被使用,则取消-g -g 指定新组使用的GID。GID必须是唯一的且非负,除非使用**-o 选项**。
默认使用大于或等于GID_MIN的最小值,并且大于其他每个组的GID。-K 不使用/etc/login.defs 中的默认值(如GID_MIN、GID_MAX等) -o 允许创建有重复GID组 -r 创建一个系统组账户。GID小于1000;若不带此选项,则创建普通组 addgroup [--gid ID] GROUP # 创建普通用户组
addgroup --system [--gid ID] GROUP # 创建系统用户组
eg>>addgroup g01 # 提示权限不够 sudo addgroup g01 # 建立一个普通组 sudo addgroup g02 --gid 1020 # 创建并设置组ID sudo addgroup --system g03 # 建立一个管理员用户组 sudo addgroup --system g04 --gid 320 # 创建管理员用户组并设置组ID
-
修改组账户属性命令groupmod
命令语法:[选项] [组账户名]
选项 | 参数含义 |
---|---|
-g | 修改用户组的GID |
-n | 修改用户组名 |
-o | 允许使用重复的GID |
grep g02 /etc/group # 查看用户组的GID
sudo groupmod g02 -g 1021 # 修改用户组的GID
-
删除组账户
如果改组中仍然包括某些用户,要先删用户才能删除组,相当于删除空组。
命令语法:groupdel [组名]
Ubuntu命令可以使用delgroup命令删除组账户,使用deluser命令从系统中删除用户组。
-
管理组账户命令 gpasswd
使用该命令可以管理工作组,将已存在的用户添加到另一用户组中,也可对用户进行删除用户密码、指定用户管理员等操作。
gpasswd [选项][组名]
选项 | 参数含义 |
---|---|
-a | 添加用户到组 |
-d | 删除用户组中的某一用户 |
-A | 指定管理员 |
-M | 指定组成员 |
-r | 删除密码 |
-R | 限制用户登入组,只有组中的成员才能用**newgrp** 命令加入该组 |
本文链接:https://blog.csdn.net/qq_46426207/article/details/121059946