Day13-文件查找find
导读
- 上周回顾
- 1.用户管理
- 2.组的管理
- 3.如何给用户提权
- 4.权限管理
- 今日内容
- 1.为什么要有文件查找
- 2.Windows如何实现文件查找
- 3.Linux如何实现文件查找
- 4.find命令查找语法
- 5.find针对文件名称、类型、大小、时间等方式进行查找文件
- 按名称查找
- 按文件大小查找
- 按文件类型查找
- 按修改时间进行查找
- 按用户和组进行查找
- 6.find动作处理
- 7.find逻辑运算符
- 今日总结
上周回顾
用户管理
1.用户基本概述
2.介绍创建用户会影响的文件
/etc/passwd
/etc/shadow
3.如何创建用户
useradd username
4.如何修改用户
usermod username [选项] [参数]
5.如何删除用户
userdel username
6.如何给用户设定密码
echo "passwd" |passwd username --stdin
7.用户创建流程
/etc/login.defs /etc/defaults/useradd
组的管理
1.组的基本概念
基本组:创建用户时使用-g指定基本组,基本组必须事先存在
私有组:创建用户时,不指定基本组,则默认创建同名的私有组
附加组:当基本组无法满足权限需求,可关联多个附加组
2.组的配置文件
/etc/group
/etc/gshadow
3.如何创建组
groupadd groupname
4.如何修改组
groupmod groupname [选项] [参数]
5.如何删除组
groupdel groupname
如何给用户提权
1.su 切换用户
交互式shell 输入一条命令,返回一条输出
非交互式shell 输入一条指令,批量的完成任务,无需人为干预
登录式shell 输入用户名和密码登录系统
非登录式shell 无需输入用户名和密码即可登录用户
登录式shell和非登录式shell加载的配置文件不一样
2.su username使用的是非登录式shell(有些环境变量没有加载,会导致执行失败)
3.su - username使用的是登录式shell(加载所有的环境变量)
su需要知道用户的密码,不安全
4.sudo 提权
提权的作用:让用户临时的使用root身份进行操作
首先必须先进行权限划分 -->root
其次将权限与用户进行关联 -->root
最后用户才能正常使用,或者提权 -->用户 sudo -l检查分配的权限是否合理
Ps:su切换用户时需要输入用户的密码,如果是root使用su则无限制
权限管理
1.权限:指用户能对系统操作的一种范围限制
2.用户和权限的关系
3.权限中的rwx是什么意思
r=4 可读
w=2 可写
x=1 可执行
4.对一个文件进行授权 chmod 755
5.权限中rwx对文件有什么限制
6.权限中rwx对目录有什么限制
7.授权基本规则
文件: chmod 644 chmod 600 为了安全
目录: chmod 755
命令: chmod 755 通常来说,命令的属主和属组都是root
8.变更一个文件的属主和属主 chown -R
9.特殊权限
Suid:为命令设定suid,当任何用户执行该命令时,都将以该命令的属主身份运行
Sgid:使多个用户共享一个组
Sbit:粘滞位,任何人都可以在该目录下创建文件,但只允许删除自己的,除root以外
10.特殊属性
chattr
i 锁住文件
a 仅能追加,但不允许其他操作
lsattr:查看文件特殊属性
11.Umask 控制默认权限
文件: 666-umask=最终权限
目录: 777-umask=最终权限
/etc/profile 会控制umask
12.重定向技术
重定向:将输出至屏幕的内容,重新指向到一个文件,或丢失
标准输入0 标准输出1 错误输出2
重定向怎么用
> 覆盖重定向
>> 追加重定向
2> 错误覆盖重定向
2>> 错误追加重定向
&> 混合输出覆盖重定向
&>> 混合输出追加重定向
13.管道技术
管道:将左边命令的输出-->管道-->传递给右边命令的输入
tee:将左边命令的输出-->|tee a.log -->传递给右边命令的输入
不影响管道的传递
会将左边命令的输出,写入到一个a.log文件中
xargs:将无法使用管道的命令支持使用管道
(将前者命令的结果作为参数传递给后者命令)
which useradd | xargs ls -l
Ps:操作文件看文件本身的权限,如果是删除移动复制等操作,需要看文件的上级目录是否给予了足够的权限,通常是看有没有w权限
今日内容
为什么要有文件查找
1.资料很多,忘记放在哪,所以需要通过查找的方式进行搜索
windows如何实现文件查找
1.计算机-->搜索框
linux如何实现文件查找
1.没有图形工具
2.使用命令工具搜索--->find
find命令查找语法
find [path] [options] [expression] [action]
查找 路径 选项 表达式 动作
find针对文件名称、类型、大小、时间等方式进行查找文件
按名称查找
find ./ -name "*eth0" -ls
find ./ -iname "*eth0" -ls #忽略大小写
按文件大小查找
find /etc/ -size +5M #查找大于5M的文件
find /etc/ -size -5M #查找小于5M的文件
find /etc/ -size 5M #查找等于5M的文件
按文件类型查找
f 文件
d 目录
s socket套接字文件
l 链接文件
c 字符设备
b 块设备
find ./ -type f -iname "*eth0" | xargs ls -l
按修改时间进行查找
find ./ -type f -mtime 7 #第7天
find ./ -type f -mtime +7 #七天以前的内容(保留最近七天的内容)
find ./ -type f -mtime -7 #最近七天的内容
按用户和组进行查找
find /home -user jack
find /home -group jack
find /home -user jack -group jacky
find / -nouser -nogroup
find动作处理
find默认动作是 -print
-print 默认
-ls 以长格式显示
-delete 删除列出的文件(仅删除空目录)
-ok 后面跟自定义shell命令(会提示)
-exec 后面跟自定义shell命令
\; 固定写法
[root@oldboy ~]# find /var/log/ -type f -name "*.log" -mtime +7 | xargs rm -rf
将find查询的文件结果,作为grep的参数
[root@oldboy ~]# find /etc/ -type f | xargs grep "root" --color=auto
find逻辑运算符
-a 与
-o 或
-not|! 非
find /home ! -user root
find ./ -type f -a \( ... -o ... \)
今日总结
1.find查找文件
文件名称
文件大小
文件类型
修改时间
用户用户组
2.find处理动作
-print 忽略
-ls 长格式显示,不能加参数
-delete 删除文件,删除目录必须是空目录
-ok 执行command命令,但会提示
-exec 执行command命令
3.find的逻辑运算
与 -a
或 -o
非 ! | -not