3.19预习任务:
2.17 隐藏权限lsattr/chattr
2.18 特殊权限set_uid
2.19 特殊权限set_gid
2.20 特殊权限stick_bit
2.21 软链接文件
2.22 硬连接文件
2.23/2.24/2.25 find命令
2.26 文件名后缀
2.27linux和windows互传文件
rename 文件的时候为什么 ctime 会改变?
inode详解:
一、隐藏权限lsattr 与 chattr
chattr 附加权限
+i 的使用情况:不允许任何人对文件进行操作
chattr +i 1.txt 给文本1.txt加附加权限
chattr -i 1.txt 给文本1.txt去掉附加权限
可以通过lsattr 1.txt查看隐藏权限
此时无法对文件进行编辑
head -n 2 /etc/passwd > 1.txt 当把passwd前两行给1.txt写入时,也无法写入
mv 1.txt 2.txt 改名时,也无法操作
rm 1.txt 删除时,也不允许
在vi时,会自动创建一个缓存文件1.txt~,在保存退出后,会把写入的内容覆盖原来的文件,此文件删除,如果加了隐藏权限,会导致原文件无法保存,就会保存一个缓存文件
touch 1.txt 在touch时,也无法操作,touch会更改文件的创建时间
chattr +a 1.txt a权限只能在文件末尾追加内容还有touch,不能删除、更改、移动
head -n 2 /etc/passwd >> 1.txt 追加内容
查看123目录的隐藏权限
lsattr 123/ 查看的是123目录下面的子目录和子文件
lsattr -d 123 通过-d 查看目录本身
chattr +i 123/ 给目录 加 i 权限,加上之后和给文件加 i 权限是一样的效果
chattr +a 123/ 给目录 a 权限,只能追加
chattr +i 123/ 给目录 i 权限 ,不能再该目录下新建文件,但是可以给目录下已经存在的文件写入内容
touch 123/2.txt 在123目录下创建子文件也相当于追加
head -n 2 /etc/passwd >> 123/2.txt 可以把passwd的前两行直接写入到2.txt
lsattr -R 123 查看123目录下的子目录和子目录下面的文件
不在-R只显示一层目录
lsattr -a /root/ -a 可以查看目录下的隐藏文件和目录
二、特殊权限set_uid
set_uid -> s 小s 目录也可以设置,但是没有意义
只有此处有set_uid权限
作用: 保障普通用户临时拥有该命令所有者的身份,文件的前提是二进制的可执行文件。除了所有者之外的其他用户,当执行带有set_uid命令时,在执行的一瞬间就会被临时赋予该命令的所有者的身份 。
使用su - user1 切换到user1用户
使用root用户给ls设置一个set_uid权限, chmod u+s /usr/bin/ls
去掉set_uid ,chmod u-s /usr/bin/ls
到user1用户中查看,此时user1用户可以使用ls命令,并且root目录权限没有变动,因为给了ls命令set_uid 权限,才可以看到,临时拥有了root用户的权限
使用另一个方法添加小s(set_uid)权限,chmod u=rws /usr/bin/ls
此时这里的权限是S(大S),是因为没有x 权限,加上x权限,就变成小s了,如果是S(大S),user1普通用户也不受影响
三、特殊权限set_gid
此权限位作用在 ‘组’ 权限位上,也是小 s
chmod g+s /usr/bin/ls set_gid和set_uid作用在文件的时候,功能基本相同,只是角色不同,set_uid 是普通用户临时拥有所有者的身份,set_gid是普通用户临时拥有所属组的身份,所属组是root下面的用户的权限
set_gid 还可以作用在目录上,当作用在文件上时,和set_uid的作用类似
root用户去创建文件或目录时,所有者和所属组都是root,不动系统的前提下,当给目录设置了set_gid时,创建的子文件和子目录的所属组会跟着父级目录(set_gid权限的目录)保持一致
四、特殊权限stick_bit
这里的t 就是stick_bit权限,也叫防删除位,此权限靠父级目录设置的
stick_bit作用:防止别人删除自己的文件,root用户除外
使用user2创建目录user2,并给777权限,不设置stick_bit删除位,user1可以在user2目录下创建目录和文件,也可以删除user2目录下的文件和目录,因为user2目录是777的权限并且没有设置stick_bit删除位
五、软链接文件
软链接:路径越长,软连接文件的大小就越大,软连接做绝对路径
软连接创建
ln -s /tmp/yum.log /root/123/yum.log ( ln -s 源文件 软连接文件 )
软连接还可以链接目录
设置相对路径的软连接:ln -s yum.log tobe.log(不建议使用,做软连接尽量使用绝对路径)
df -h 查看磁盘分区
当磁盘或分区容量快满时,可以做软连接解决
六、硬链接
可以对文件做硬链接,不支持对目录做硬链接,不能跨分区
特性:创建的文件inode号相同,这两个相互的为硬链接文件
当源文件删除时,软连接找不到源文件就出问题了,但是硬链接时没问题的,inode号变成了1,真正的文件在inode
七、find命令
locate+命令 (模糊搜索) 通过yum install -y mlocate安装
此时需要updatedb,在使用
快捷键:
ctrl u 把光标之前的内容删除
ctrl e 把光标移动到最后
ctrl a 把光标移动到开头
find
find /etc/ -name "sshd_config"
find /etc/ -type d -name "sshd*" 根据文件类型是目录的去搜索
find /etc/ -type f -name "sshd*" 根据文件类型是文件的去搜索
find /etc/ -type l 搜索软连接文件 c类型,字符串设备.s类型socket文件。b类型,块设备文件
stat 3.txtr 查看文件的具体信息
mtime:创建时间->最近更改(改内容)
ctime: 最近改动(改权限)
atime: -> 最近访问
如果更改文件内容,ctime的时间一定会变
find /etc/ -type f -mtime -1 查看一天之内发生过更改的文件
find /etc/ -type f -mtime -1 -name "*.conf" /etc/目录下,类型是文件的并且醉经改动时间一天内的并且名字是.conf的文件,这里都是并且的关系
find /etc/ -type f -o -mtime -1 -o -name "*.conf" -o 表示或者
find / -inum 33583028 使用inum 加inode号,找文件的硬链接
find /root/ -type f -mmin -60 搜索60分钟之内做过修改的文件
find /root/ -type f -mmin -60 -exec ls -l {} \; 搜索60分钟之内做过修改的文件,并列出来;exec 是find的一个选项
find /root/ -type f -mmin -60 -exec mv {} {}.bak \; 把60分钟内做过修改的文件查找出来,并把文件名更改,一个{}是一个文件,改成后缀带.bak
find /root/ -type f -size -10k -exec ls -lh {} \; 查找文件大小小于10k的文件,+10k找大于10k的文件,10后面一定要跟单位
find ./ -inum 38869041 | xargs cat
八、文件名后缀
*.php ------是能用php语言解释器进行解释,能用浏览器打开的文件;
*.so -------这类是库文件; *.doc *.obt --------这是OpenOffice 能打开的文件;.bz2 ------bzip2的压缩文件
.gz ------gzip的压缩文件
.tar ------tar打包文件(是包文件不是压缩文件)
.tbz------tar打包并用bzip压缩文件
.tgz-----tar打包并用gzip压缩的文件
.au -----audio文件
.gif -----gif图象文件
.html/.htm-----HTML文件
.jpg-----JPEG图象文件
.pdf------电子文档(PDF格式的)
.png-----PNG图象文件
.ps------postscinpt文件(打印格式文件)
.txt------纯文本文件
.wav-----audio文件
.xpm-----图象文件
.conf-------配置文件
.lock-------LOCK文件(用来判断一个文件或设备是否被使用)
.rpm------REDHATPackage.Manager文件(套件包或软件包)
.c -------C源程序代码文件
.cpp------C++源程序代码文件
.h -------C或C++程序的头文件
.o------程序目标文件
.pl------perl脚本文件
.so-----类库文件
九、Linux和windows互传文件
yum install -y lrzsz 安装好之后才可以使用sz和rz
xshell中使用sz命令把linux的文件传到windows sz 3.txt.bak,使用rz命令可以把windows的文件传到linux,直接rz回车即可
本次操作中遇到的问题:
在操作时出现了乱码的情况,使用的是putty,因为客户端字符集设置问题导致的,更改了字符集
自行百度解决~: