Linux学习笔记之用户账户和组账户管理
项目4 用户账户和组账户管理
4.1 用户账户管理
- 用户管理:Linux使用用户权限机制对系统进行管理;提供不同用户使用本系统的权限分配,保证用户数据与文件的安全
- Linux系统中每个登录的成员都要有一个用户账号;登录时,只有输入正确的用户名和口令,才能被允许进入Linux;账号实质上就是一个用户在系统上的标识,系统依据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境
- Linux中用户分成三类:超级用户、系统用户和普通用户
超级用户(root用户):每个Linux系统都必须有,并且只有一个。它拥有最高权限,可以删除、终止任何程序
系统用户:与系统运行和系统提供的服务密切相关的用户,通常在安装相关的软件包时自动创建并保持默认状态,系统用户不能登录计算机
普通用户:在系统安装后由超级用户创建的,通常完成指定权限的操作,而且也只能操作自己所拥有权限的文件和目录 - 用户账户文件/etc/passwd组成
字段1--用户名:在系统中是唯一的,可以由字母、数字和符号组成
字段2--口令:此字段用“x”代替,而将口令保存在/etc/shadow文件(用户影子文件)中
字段3--用户ID(UID--0~1000以上,超级用户UID=0):系统内部用来标识用户且唯一
字段4--组ID(GID):系统内部用来标识组属性
字段5--用户相关信息
字段6--用户主目录(可变更)
字段7--用户登录环境 - 用户影子文件/etc/shadow组成(只有root可以访问)
字段1--用户名
字段2--口令:存放MD5加密过的口令
字段3--标识从1970年1月1日到用户最近一次修改口令所经过的天数
字段4--口令保持有效的最小天数,即口令在多少天内不能被用户修改
字段5--口令在多少天后需要被修改
字段6--口令到期前多少天内给用户发出警告
字段7--口令过期多少天后口令失效
字段8--账号失效日
字段9--保留域
创建新用户
- 格式:useradd [选项] <用户名>
功能:新建用户账户,只有超级用户才有使用此命令的权限
选项:
-u 用户ID:指定用户UID
-g 组ID或组名:指定新用户的主组
-G 组ID或组名:指定新用户的附加组
-d 主目录:指定新用户的主目录
-s 登录shell:指定新用户使用的shell,默认为/bin/bash
-e 有效期限:指定用户登录失效时间,例如:11/30/2020
-f 缓冲天数:设置在密码过期后多少天关闭该账号
-c 备注:为账户添加备注
-m 默认主目录:自动创建与用户名同名目录
-n 取消建立以用户名称为名的组
-r 建立系统账号
(新增用户需要同时设置密码,不然无法使用该用户账号登录系统)
设置用户密码
- 格式:passwd [选项] [用户名]
功能:设置、修改用户的口令以及口令的属性
选项:
-d 删除用户口令,则该用户账号无需口令即可登录
-l 锁住口令
-u 恢复禁用用户账户
-S 显示指定用户账户的状态
(系统管理员可以设置所有用户的密码,普通用户只能修改自己的密码)
修改用户信息
- 格式:usermod [选项] <用户名>
功能:修改用户的属性信息,只有超级用户才可以使用该命令
选项:
-g 组ID或组名:指定新用户的主组
-G 组ID或组名:指定新用户的附加组
-d 主目录:指定新用户的主目录
-s 登录shell:指定新用户使用的shell,默认为bash
-e 有效期限:指定用户的登录失效时间
-u 用户ID:指定用户UID
-c 全名:指定用户全称
-f 缓冲天数:指定口令过期后多久将关闭此账户
-l 用户名:指定用户的新名称
-L 用户名:锁定用户密码,使密码无效
-U 用户名:解除密码锁定
(usermod命令与useradd命令的区别在于usermod命令可以修改用户名且在禁用和恢复账号功能上,命令usermod不等同于passwd)
删除用户
- 格式:userdel [选项] <用户名>
功能:删除指定的用户账号,只有超级用户才能使用该命令
选项:
-r 用于删除用户的Home目录和邮件
-f 强制删除用户登录目录及目录中的所有文件
(正在使用系统的用户不能被删除,必须先终止该用户的所有进程才能删除该用户)
成批添加用户:newusers
- 第一步:先建立文本文件:n_user.txt
201700824101?????701:701:lining:/home/201700824101:/bin/bash
201700824102?????702:702:chenmeng:/home/201700824102:/bin/bash
201700824103?????703:703:niuliyue:/home/niuliyue:/bin/bash
201700824104?????704:704:zhengzhenzhen:/home/zhengzhenzhen:/bin/bash - 第二步:执行命令newusers n_user.txt
成批修改口令:chpasswd
- 第一步:先建立文本文件:n_uspw.txt
201700824101:824101
201700824102:824102
201700824103:824103
201700824104:824104 - 第二步:执行命令chpasswd
其他的shell命令
-
id命令:id [选项] [用户名]
功能:查看一个用户的UID和GID
选项:
-g 显示用户的主组的GID
-G 显示用户所有组的GID
-u 只显示UID -
whoami命令:whoami
功能:用于显示当前用户的名称 -
su命令:su [-] [用户名]
功能:转换当前用户到指定的用户账号
选项:
- 在转换当前用户的同时转换用户工作环境
用户名 若不指定用户名则转换当前用户到root
4.2 组账户管理
- 组管理:组是具有相同特性的用户集合;设置的目的主要是便于权限的统一组织和分配;但是需要注意的是组帐号不能登录计算机
- 组按性质划分为:系统组和私有组账户
系统组:安装Linux及部分服务性程序时系统自动设置的组
私有组:系统安装完成后,由超级用户新建的组 - 组管理文件构成
组账户文件:/etc/group
组影子文件:/etc/gshadow - group文件组成:
字段1-组名:组的名称,由字母、数字和符号组成
字段2-组ID(GID):识别不同组的唯一标识
字段3-组口令:默认情况下不使用,必须经过特殊设置
组内用户列表:属于该组的所有用户名表,用“,”间隔 - gshadow文件组成:组名、组口令、组管理员、组内用户列表
- 组账户管理命令
- groupadd命令
? 格式:groupadd [-g GID] <组帐号名>
? 功能:新建组群,只有超级用户才能使用此命令,该指令的执行将在etc/group文件和etc/gshadow文件中分别增加一行记录
? 选项:
? -g:用于指定GID;不加-g选项则使用系统默认GID
? -r:用于创建系统组帐号(GID小于1000) - groupmod命令
? 格式:groupmod [参数] <组帐号名>
? 功能:修改指定组群,只有超级用户才能使用此命令,该指令的执行将修改/etc/group文件相应记录的内容
? 选项:
? -g:改变组帐号的GID;组帐号名保持不变
? -n:改变组帐号名 - groupdel命令:
? 格式:groupdel <组帐号名>
? 功能:删除指定组群,只有超级用户才能使用此命令
? 注意:被删除的组帐号必须存在;当有用户使用组帐号作为私有组时不能删除;与用户名同名的私有组帐号在使用userdel命令删除用户时被同时删除
- groupadd命令
彩蛋(因后续随笔更新内容,思维图没有及时同步,请读者自行整理
未完,待续 ~