用户、组、权限
目录:
用户、组、权限
3A:身份认证、密码认证、审计
生物认证、随机验证码
用户
linux基于用户身份对资源访问进行控制
用户账号:超级用户、普通用户、程序用户
组账号:基本组(私有组)、附加组(公共组) (必须要有基本组,有且唯一。附加组可有可无可多个)
UID:用户标识号 GID:组标识号
用户账号类型:
每一个用户通过user id(UID)来唯一标识的新建用户1-60000自动分配
管理员:root,0 超级管理员uid必定是0
程序用户:uid 1-999 (centos7) (1-499是centos6)
普通用户uid:1000-60000(centos7)(cenots6 500+)
/etc/passwd 用户账号文件

7段用冒号隔开
root:用户名
x:密码占位符
0:uid
0:组id。GID
root:备注
/root家目录
/bin/bash:登录shell环境
/etc/shadow 密码文件 密码、账号有效期等信息
passwd -d 清空密码

1:用户名
2:密码(双感叹号标识被锁定,用户无法登录,空表示可以不用密码登录、*也无法登录)
3、19261:自1970-1-1 到改密码的日期
4:修改密码最小天数 0表示无限制,4表是4天后才可以改密码
5、99999:密码有效期 不限期限99999
6、 7:提前N天提醒你密码快到期了
7、:宽限天数。7,密码到期以后还能再用7天
8、: 如果写了n,19262 表示失效时间。失效后用户锁定,无法登录
9、:保留位 目前没什么用 无实际效果
命令:
useradd
(对新建用户的设置,对已有的用户无法设置
useradd [选项] 用户名
常用选项:
常用选项:
-u 指定uid号
-d 指定家目录位置 //家目录要不存在
-e 失效时间 // -e yy-mm-dd
-g 基本组
-G 附加组
-M 不创建家目录
-s 指定sh类型
/sbin/nologin 不让人登录

下列shell都可以指定

-c(添加备注信息) useradd



-r 生成一个随机的系统用户(不生成家目录)

passwd命令
passwd 用户名 //直接改名 不加用户就是改当前用户
passwd [选项] 用户名
常用选项
-d 清空密码 不使用密码也可以直接登录用户
-l 锁定用户
-S 查看用户账户的状态(是否被锁定)
-u 解锁用户
usermod命令
对已有用户进行修改属性
usermod [选项] 用户名
选项:
-l 修改用户名 user -l b a (用户a改成用户b)(修改的名字在前,原来的在后)
-L 锁定用户
-U 解锁用户
-u、-d、-e、-g、-G、-s与useradd命令中的含义相同
chage 修改密码信息 chage 用户名
userdel删除用户账号
userdel [选项] 用户
-r 家目录一起删了
-f 强制
用户账号的初始配置文件
文件来源:
新建用户账号时,从/etc/skel目录中复制过来的
主要的用户初始配置文件:

bashrc/bash_profile 启动时进行操作的命令
bash_logout 退出后进行操作
组账号文件
groupadd命令
groupadd [-g GID ] 组账号名

创建GDI为1000的组账号:market
gpasswd命令
设置账号密码(极少用)、添加/删除组成员
gpasswd [选项] 组账号名
-d 删除组内成员
-a 加1个成员
gpasswd -a 用户 组名
-M 定义组成员列表,以逗号分隔
groupdel
groupdel 组账号名
查询账号信息:
groups 用户名
id 用户名
finger
yum install finger(要安装)
finger 用户名 //查看用户详细信息
w
w [选项] [用户名] //查询已登录到主机的用户信息
-h 不显示输出信息的标题
-l 用长格式输出
-s 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
-V 显示版本信息

who
who [选项] [file]
-a
|
列出所有信息,相当于所有选项。
|
-b
|
列出系统最近启动的时间日期。
|
-l
|
列出所有可登陆的终端信息。
|
-m
|
仅列出关于当前终端的信息,who -m 命令等同于 who am i。
|
-q
|
列出在本地系统上的用户和用户数的清单。
|
-r
|
显示当前系统的运行级别。
|
-s
|
仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。
|
-u
|
显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。
|
-T 或 -w
|
显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。
|
w、who的区别
相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。
文件/目录的权限和归属
访问人群:
1、所属组u
2、所属组g
3、其他人o
访问权限:
读取r 4
写入w 2
可执行x 1(文件夹的最小权限x,没x啥也不行,删除是可以的)
chmod命令
chmode 数字 文件名(还有1种,但是推荐直接记这种)
-R递归
chmod -R 777 /data 指data目录下文件的权限去掉
umask
umask 数字 //umask011(可以修改)
出来的数字是反的 →拿777/666 减去 umask数字得到的就是初始权限
为什么文件是666,为了安全,文件没有执行权限 不能一开始就执行那样万一是病毒呢
文件落地最高权限 666
文件夹落地最高权限 777
chown
chown 更改属主和属组(文件属谁)
chown 用户名.或者:隔开 组名 文件名
-R递归 (使用方法同chmod)
三种特殊权限
suid
当使用passwd命令处理文件时,当前用户就是这个文件的属主
chmod u+s /usr/bin/vim (这样普通用户使用vim的时候就很恐怖了,危险,要使用)
[root@localhost aa]#ll /usr/bin/passwd
#此处s表示当使用这个命令程序时,把当前用户当成文件的所属主
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
SGID(同suid,不过他是面对组)
#SGID
[root@localhost aa]#chmod g+s /usr/bin/vim
[root@localhost aa]#ll /usr/bin/vim
-rwxr-sr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
Sticky位
#具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
#在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
#sticky 设置在文件上无意义
t
粘贴位 除了属主和root 别人不能删除文件夹里的文件
tmp 临时文件 所有用户的临时文件
[root@localhost aa]#chmod o+t /opt/aa
# 添加Sticky 位
[root@localhost opt]#chmod o-t /opt/aa
#减少Sticky 位
超级管理员,别人没读写,超级管理员有,别人没执行,超级管理员没
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)