第二章下预习笔记
2.17 隐藏权限lsattr_chattr
设置隐藏权限 chattr
chattr +i 1.txt lsattr 查看隐藏权限
删除隐藏权限
chattr -i 1.txt
文件加上i 权限 无法修改,删除,更改名字,修改文件时间
当让任何人无法修改,删除,更改文件名,更改时间的时候使用
可以追加文件 chattr +a 1.txt
可以更改时间信息 touch 1.txt
不能删除 改名 改文件内容
删除a权限 chattr -a 1.txt
lsattr -d 111 列出目录本身的权限
lsattr +i 111 给目录添加i权限
也是无法删除目录,改名,创建文件
删除目录权限 lsattr -i 111
chatrr +a 111 给目录添加a权限
可以在目录下touch一个文件,并追加内容到文件里面
目录添加i权限不会影响目录下文件的权限
可以追加内容到这个文件里面
lsattr -R 111
可以列出目录下子文件的权限
lsattr -a /root
可以列出目录下所有文件的权限,包括隐藏文件
2.18 特殊权限set_uid
passwd
普通用户可以更改自己的密码
s权限可以让普通用户临时拥有该命令所有者的身份
前提是一个二进制的文件
增加s权限 chmod u+s /usr/bin/ls
删除权限 chmod u-s /usr/bin/ls
大写S root和普通用户也可以执行ls命令,缺少x权限,加上小写x的执行权限就变成了小s
普通用户看的other有没有执行权限,s只是一个set_uid
目录也可以加s权限,目录不需要执行,加上没有任何意义
2.19 特殊权限set_gid
把ls命令还原到原始的权限
chmod g+s /usr/bin/ls ls命令增加set_gid权限
普通用户临时拥有所属组的身份
[[email protected] ~]# su - user1
Last login: Sat Jul 28 06:50:27 EDT 2018 on pts/1
[[email protected] ~]$ ls /root/
111 1.txt 2.txt anaconda-ks.cfg.1
set_gid 权限也可作用于目录上
chmod g+s 234 目录添加set_gid权限
当作用于目录上创建的子文件和子目录的所属组和该目录的所属组保持一致
[[email protected] ~]# mkdir 234
[[email protected] ~]# chmod g+s 234
[[email protected] ~]# ls -ld 234
drwxr-sr-x 2 root root 6 Jul 29 08:34 234
[[email protected] ~]# chown :user1 234
[[email protected] ~]# !ls
ls -ld 234
drwxr-sr-x 2 root user1 6 Jul 29 08:34 234
[[email protected] ~]# touch 234/aminglinux
[[email protected] ~]# ls -l 234/
total 0
-rw-r--r-- 1 root user1 0 Jul 29 08:37 aminglinux
[[email protected] ~]# mkdir 234/am
[[email protected] ~]# ls -l 234/
total 0
drwxr-sr-x 2 root user1 6 Jul 29 08:38 am
-rw-r--r-- 1 root user1 0 Jul 29 08:37 aminglinux
[[email protected] ~]# chmod g-s 234
[[email protected] ~]# touch 234/aminglinux111
[[email protected] ~]# !ls
ls -l 234/
total 0
drwxr-sr-x 2 root user1 6 Jul 29 08:38 am
-rw-r--r-- 1 root user1 0 Jul 29 08:37 aminglinux
-rw-r--r-- 1 root root 0 Jul 29 08:39 aminglinux111
[[email protected] ~]# mkdir 234/am1
[[email protected] ~]# !ls
ls -l 234/
total 0
drwxr-sr-x 2 root user1 6 Jul 29 08:38 am
drwxr-xr-x 2 root root 6 Jul 29 08:39 am1
-rw-r--r-- 1 root user1 0 Jul 29 08:37 aminglinux
-rw-r--r-- 1 root root 0 Jul 29 08:39 aminglinux111
[[email protected] ~]# ls -ld 234
drwxr-xr-x 4 root user1 66 Jul 29 08:39 234
2.20 特殊权限 stick_bit
防删除位
作用是防止别人删除自己的文件,root用户除外
[[email protected] ~]# ls -ld /tmp
drwxrwxrwt. 46 root root 4096 Jul 28 03:12 /tmp
[[email protected] tmp]$ touch aming
[[email protected] tmp]$ ls -l aming
-rw-rw-r-- 1 user1 user1 0 Jul 29 09:05 aming
[[email protected] tmp]$ vi aming
[[email protected] tmp]$ chmod 777 aming
[[email protected] tmp]$ !ls
ls -l aming
-rwxrwxrwx 1 user1 user1 23 Jul 29 09:06 aming
[[email protected] ~]# su - aming
[[email protected] ~]$ cd /tmp/
[[email protected] tmp]$ vi aming
[[email protected] tmp]$
[[email protected] tmp]$ rm -f aming
rm: cannot remove ‘aming’: Operation not permitted
普通用户对文件和目录没有写的权限,为什么可以删除呢?
是看该文件和目录所在的目录又没有写权限,而不是看要删除的文件本身的权限
如文件1.txt 所在目录的权限是777,所以可以删除
如果加上t 就可以防止删除
[[email protected] tmp]$ mkdir user1
[[email protected] tmp]$ chmod 777 user1
[[email protected] tmp]$ ls -ld user1
drwxrwxrwx 2 aming aming 6 Jul 29 09:11 user1
[[email protected] tmp]$ cd user1/
[[email protected] user1]$ touch 1.txt
[[email protected] user1]$ mkdir 234
[[email protected] user1]$ ll
total 0
-rw-rw-r-- 1 user1 user1 0 Jul 29 09:13 1.txt
drwxrwxr-x 2 user1 user1 6 Jul 29 09:13 234
[[email protected] user1]$ rm -r 1.txt
rm: remove write-protected regular empty file ‘1.txt’? y
[[email protected] user1]$ rm -r 234
rm: remove write-protected directory ‘234’? y
[[email protected] user1]$ pwd
/tmp/user1
[[email protected] user1]$ ls -ld .
drwxrwxrwx 2 aming aming 6 Jul 29 09:15 .
2.21 软链接文件
[[email protected] tmp]# ls -l /bin
lrwxrwxrwx. 1 root root 7 Jul 13 13:51 /bin -> usr/bin
文件本身里面存了另外一个文件的路径或着是目录
作用是可以节省空间
ln -s 源文件 目标地址
ln -s /tmp/yum.log /root/111/yum.log
[[email protected] tmp]# ln -s /tmp/yum.log /root/111/yum.log
[[email protected] tmp]# ls -l /root/111
total 16
-rw-r--r-- 1 root root 0 Jul 28 02:54 1.tx~
-rw-r--r-- 1 root root 211 Jul 28 02:57 1.txt
-rw-r--r-- 1 root root 12288 Jul 28 02:54 1_txt.swp
drwxr-xr-x 2 root root 6 Jul 28 02:50 222
-rw-r--r-- 1 root root 0 Jul 28 02:54 4913
lrwxrwxrwx 1 root root 12 Jul 29 09:55 yum.log -> /tmp/yum.log
创建目录的软链接
[[email protected] tmp]# ln -s /tmp/aming /root/111/aming2
[[email protected] tmp]# ls -l !$
ls -l /root/111/aming2
lrwxrwxrwx 1 root root 10 Jul 29 10:02 /root/111/aming2 -> /tmp/aming
相对路径软链接
弊端:仅在当前目录下,如果把软链接文件拷贝到其它服务器,或者是目录改名,软链接就会出现问题
做软链接尽量使用绝对路径
[[email protected] tmp]# ln -s yum.log aminglinux.log
[[email protected] tmp]# ls -l !$
ls -l aminglinux.log
lrwxrwxrwx 1 root root 7 Jul 29 10:04 aminglinux.log -> yum.log
案例讲解:假如一个目录空间快满了,有一个服务会不停的写日志
2.22 硬链接文件
硬链接不支持对目录做硬链接,也不能跨分区,只支持对文件做硬链接
两个文件相互为硬链接,不存在源和目标
直接能看的文件可以看作是一张皮,做硬链接相当于做了两张皮,真正存文件信息的在inode里面。
文件可以做硬链接,但是不能跨分区
2.23 find 上 命令
whereis locate
yum -y install mlocate
updatedb
快捷键
ctrl + l 清屏 ctrl + d 退出一个终端 相当于exit logout
ctrl + c 取消 ctrl + u 往前删 ctrl + e 光标定位到行尾
ctrl + a 光标定位到行首
-type 选项是指定文件的选项
-name 选项指定文件的名字
d 目录
f(-) 文件 (相当于ls -l 看到的减号)
l 软链
s socket 文件
c 字符串
b 块设备
2.24 find 命令中
find / -type -name
-mtime 创建或更改文件内容的时间
-ctime 最近更改时间
-atime 最近访问时间
stat 查看文件的具体信息的
-atime -1 一天以内的
-atime +1 一天以前的
-o 或者
2.25 find命令下
查找文件的硬链接
find / -inum inode号
-imun 指定文件的inode号
find /root/ -type f -mmin -60
-mmin 指定分钟数
查找一个小时以内更改过的文件
find /root/ -type f -mmin -60 -exec ls -l {} \;
查找一个小时以内更改过的文件并用ls命令查看文件
-exec 是find的选项
{} 包括前面列出的文件
;分号需反斜杠脱义
find /root/ -type f -size +10K -exec ls -lh {} \;
-size 指定文件的大小
k 小写 kb
M 大写兆
2.26 文件名后缀
linux命令严格区分大小写
Linux的文件名后缀可以自定义,但不代表文件的类型,同样的文件命名成同样的类型,是大家约定俗成的,方便大家管理文件。
date 查看时间命令
[[email protected] ~]# date
Mon Jul 30 04:49:50 EDT 2018
echo $LANG 查看系统默认语言
[[email protected] ~]# echo $LANG
en_US.UTF-8
modify 是修改文件内容的时间
change 是更改inode的时间
2.27 linux和windows 互传文件
yum -y install lrzsz
linux上的文件传到windows sz 文件
Windows文件传到linux上 rz r代表remount远程