Linux是多用户分时操作系统
Linux使用账户对用户进行管理
Linux账户分为用户账户和组账户
一个组可以有多个用户,一个用户可属于不同的组
用户账户:
- 超级用户:root
- 系统用户:伪账户
- 普通用户
组账户:
- 私有组
- 标准组
passwd文件
位置:/etc/passwd
作用:保存各个用户的账户信息(密码除外,密码用x字符填充,不使用明文保存)
文件格式:每行定义一个用户账号,一行中又划分为多个字段,定义用户账号的不同属性,各字段间用‘’:”分隔
passwd文件格式:
用户名:密码:用户ID:组群ID:用户全名:用户主目录:使用的shell
所有用户都可以查看该文件的内容,当一个用户同时属于多个组时,在passwd文件中记录是用户所属的主组,其他的组称为附加组,用户要访问附加组时,必须要先使用newgrp命令使其成为所要访问组的成员
用户ID(UID)
- root:0
- 系统用户:1~999
- 普通用户:1000开始
组ID(GID)表示用户所属组
shadow文件
位置:/etc/shadow
作用:保存各个用户的账户密码等信息,只有root用户有权限查看shadow文件
文件格式:每行定义一个用户账号,一行中又划分为多个字段,定义用户账号的不同属性,各字段间用“:”分隔
密文若为 *,!!,表示账户未设置密码
shadow文件格式:
用户名:口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
Linux为了保存账户安全,密码需要定期修改:
- 最后一次修改时间:自1970年1月1日起到上次修改密码的日期间的天数
- 最小时间间隔:自上次修改密码后,如果再次修改密码,至少需要间隔的天数,0表示可以立刻修改密码(保护密码不被频繁修改)
- 最大的时间间隔:自上次修改密码后,之密码过期的间隔天数,99999表示密码永不过期,即不强制修改
- 警告时间:在密码过期前,提前几天向用户发送警告信息,默认7天
- 不活动时间:在密码过期后,系统推迟关闭该用户账号的天数
- 失效时间:从1970年1月1日起到账户过期日期之间的天数
- 标志:预留字段
group文件
位置:/etc/group
作用:保存各用户账户的分组信息
group文件的各字段:组名:组口令:组GID:组成员
组ID(GID)
- root:0
- 系统组:安装Linux以及部分服务性程序时系统自动设置的组,1~999
- 私有组:超级用户新建的组1000开始
gshadow文件
位置:/etc/gshdow
作用:用于定义用户组口令,组管理员等信息
gshdow的各字段:组名:组口令:组管理员账号:组成员列表
组口令字段以!!占位
使用命令对用户进行管理
useradd命令
【功能】新建用户账户
【格式】useradd [选项] 用户名
选项
- -d home-dir 设置用户的宿主命令,默认为/home/username
- -e date 设置账号的过期日期,格式为:2020-10-30
- -g group-name 设定用户的所属组名
- -s shell-path 设定用户使用的shell,默认/bin/bash
- -u uid 设定用户的UID,唯一且大于1000
- -D username 用于显示用户所使用的默认值
passwd命令
【功能】设置或修改用户的口令,修改口令的属性
【格式】passwd [选项] 用户名
选项
- -S username 用于查询指定用户的口令状态,仅root可用
- -l username 用于锁定用户的口令,仅root可用
- -u username 用于解锁用户的口令,仅root可用
- -d username 用于删除用户的口令,仅root可用
passwd tom //为tom设置初始口令
passwd -S tom ///查看tom用户的口令状态
usermod命令
【功能】修改用户的属性,与useradd参数相同
【格式】usermod [选项] 用户名
选项
- -c全名 指定用户的全称
- -d主目录 指定用户的主目录
- -e有效期限 指定用户账号的有效期限
- -f 缓冲天数 指定口令过期后多久将关闭此账号
- -g 组群ID或者组群名 指定用户所属的主要组群
- -G 组群ID或组群名 指定用户所属的附加组群
- -u 用户ID 指定用户的UID
id命令
【功能】查看用户的UID GID和用户所属组群的信息
【格式】id [用户名]
【注】如果不指定,则显示当前用户的相关信息
userdel命令
【功能】删除指定的用户账号
【格式】userdel [-r] 用户名
使用r参数,删除用户的同时删除用户所有相关的文件,包括宿主目录及用户的邮件池等
【实例】userdel -r tom
组管理命令
** groupadd命令**
【功能】新建组群
【格式】groupadd [选项] 组名
选项
-g GID 指定新建组的gid(>1000)
【实例】新建一个组,组名为mygroup
groupadd mygroup
【实例】新建一个组,并指定其为GID 1010,组名为studentgroup
groupadd -q 1010 studentgroup
groupmod命令
【功能】修改指定组群的属性
【格式】groupmod [选项] 组名
选项
- -g GID 指定新建组的GID(>=1000)
- -n 新组名 原组名 指定组群的新名字
- -G 组群名 用户名 将用户添加到组群中
【实例】将新建的mygroup组改名为newgroup 组
groupmod -n newgroup mygroup
griupdel命令
【功能】删除指定组群
【格式】groupdel [选项] 组名
【注】被删除的组群不是任何用户的主组群
要删除的组账号必须存在并且不能作为私有组被用户账号引用
【实例1】删除私有组tom组
输入:groupdel tom将提醒你不能移除私有组
【实例2】删除空组:将刚刚建立newmygroup删除
groupdel newmygroup
【实例3】删除有用户的组:先删除用户在删除组
userdel -r zhuang1
userdel -r zhuang2
userdel -r zhuang3
groupdel studentgroup
gpasswd命令
【功能】用于将指定用户添加到指定用户组或从组内删除
【格式】gpasswd [选项] 用户名 组名
选项
- -a 将指定用户添加到指定用户组中
- -d 从组内删除用户
- -A 设指定用户为指定组的管理员
groups命令
【功能】查看一个用户所属的所有组群
【格式】groups 用户名
本文详细介绍了Linux系统中用户和组的管理,包括用户账户、组账户的概念,以及passwd、shadow、group、gshadow文件的作用。同时,文章还涵盖了常用的用户和组管理命令,如useradd、passwd、usermod、userdel、groupadd、groupmod、groupdel和gpasswd等,帮助读者掌握Linux环境下用户和组的创建、修改、删除和权限设置。
1650

被折叠的 条评论
为什么被折叠?



