Linux帐号和权限管理
用户和用户组概述
用户
种类
超级管理员: 拥有最高权限的账户(默认叫做root)可以正常登录 人可以使用
普通用户: 权限受限的用户 可以正常登录 人可以使用
程序用户: 不可以正常登录,只给程序使用,人不能用
用户组
种类
基本组: 一个用户一定要有一个基本组 ,且只有一个
附加组: 一个用户可以没有附加组,一个用户可以有多个附加组
用户账号文件/etc/passwd
保存用户名称、宿主目录、登录shell等基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此有在一定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中,,而passwd文件中仪保留密码占位符"x"。
行内字段含义:
[root@localhost ~]# head -n1 /etc/passwd //查看passwd文件头1行
root:x:0:0:root:/root:/bin/bash
冒号(:)作为分隔符,将每行分为了7段
第一字段:用户名
第二字段:密码占位符
第三字段:uid
第四字段:组id
第五字段:备注信息
第六字段:家目录位置
第七字段:默认shell程序
用户账号文件/etc/shadow
文件位置:/etc/shadow
每一行对应一个用户的密码记录
默认只有root用户能够读取shadow文件中的内容,且不允许直接编辑该文件中的内容
行内字段含义:
[root@localhost ~]# tail -n1 /etc/shadow //查看shadow文件最后一行
jlx:$6$732cCyCHqHnTfu8S$yIt47YNag7kl1VO539g1W0yiJWa9aFDehq6lSQDQPkN1j.q/qSgQr8r9Qaj4LFw2OLe8N2hcu7fBHxxxe3ad81::0:99999:7:::
每个字段用冒号隔开
第一字段:用户名
第二字段:加密后的密码 如果为 * !! 无法登录
第三字段:上一次修改密码时间,数字的含义为 从1970-1-1 到改密码的时间 一共经历多少天
第四字段:最小修改密码间隔时间 如果是0 可以随意修改, 7代表7 天后才可以修改
第五字段: 密码有效期 默认99999天 273年,设置为 7 代表7天要求你重新设置密码
第六字段:密码到期提醒时间 设置为7 代表密码到期前7天会提示你
第七字段:密码过期后的宽限天数 设置为10 表示密码到期后还可以使用10天
第八字段:用户失效时间 同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间 到期后无法登录
第九字段:保留字段
添加用户账号:useradd
格式
useradd [选项].... 用户名
常用选项
选项 | 说明 |
-u | 指定用户的UID,要求该UID未被其他用户使用 |
-d | 指定用户的家目录 |
-e | 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式 |
-g | 指定用户的基本组 |
-G | 指定用户的附加组 |
-M | 不建立家目录 |
-s | 指定用户的登录shell |
-r | 建立系统用户 |
设置/更改用户口令:passwd
格式
passwd 用户名
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。
普通用户却只能执行单独的"passwd"命令修改自己的密码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)