chattr命令
命令chattr的格式为:chattr+-=[文件或者目录]其中+、-和=分别表示增加、减少和设定,各个权限如下。
A 表示文件或目录的atime将不可以修改s:增加该属性后,会见个数据同步写入磁盘中
a:增加该属性后,表示只能追加不能删除,非root用户不能设定该属性
c:增加该属性后,表示自动压缩该文件,读取是会自动解压
i:增加该属性后,表示文件不能删除、重命名、设定链接、写入以及新增数据。
以上参数中a和i连个常用的权限,我们举例说明示范一下
[centos@centos02 ~]# chattr +i xi
[centos@centos02 ~]# touch xi/1.txt
touch: 无法创建"xi/1.txt": 权限不够
[centos@centos02~]# chattr -i xi
[centos@centos02 ~]# touch hch/1.txt
[centos@centos02 ~]# chattr +i xi
[centos@centos02 ~]# rm -f xi/1.txt
rm: 无法删除"xi/1.txt": 权限不够
示例中,给xi目录加了i权限后,即使是root用户,也不能在houmu目录中创建或删除1.txt.
接下来我们看下a权限的作用
[centos@centos02 ~]# chattr -i xi (删除i权限)
[rcentos@centos02 ~]# touch xi/3.txt
[centos@centos02 ~]# ls -lh xi
总用量 0
-rw-rw-r--. 1 root root 0 8月 1 08:26 1.txt
-rw-r--r--. 1 houmu root 0 8月 1 08:26 2.txt
-rw-rw-r--. 1 root root 0 8月 1 08:28 3.txt
[centos@centos02 ~]# chattr +a xi
[centos@centos02 ~]# rm -f xi/3.txt
rm: 无法删除"xi/3.txt": 不允许的操作
[centos@centos02 ~]# touch xi/4.txt
[centos@centos02 ~]# ls hch
1.txt 2.txt 3.txt 4.txt
上例中,xi目录增加a权限后,只可以在里面创建文件,而不能删除文件,文件同适用以上权限。
命令lsattr
lsattr命令是用来读取文件或者目录的特殊权限,格式为:lsattr-aR,我们看下a和R两个参数的定义
-a:类似于ls的-a参数,既连同隐藏文件一同列出
-R:连同子目录的数据一同列出
示例:
[centos@centos02 ~]# chattr +i hch/3.txt
[centos@centos02 ~]# chattr +a hch/4.txt
[centos@centos02 ~]# lsattr xi
---------------- xi/1.txt
---------------- xi/2.txt
----i----------- xi/3.txt
-----a---------- xi/4.txt
[centos@centos02t ~]# lsattr -aR xi
-----a---------- xi/.
---------------- xi/..
---------------- xi/123.txt
---------------- xi/1234.txt
----i----------- xi/456.txt
-----a---------- xi/789.txt
set_uid命令
set_uid 只能作用于二进制可执行文件,对普通文本文件无效
普通用户执行拥有该权限的二进制文件时,可以使普通用户临时拥有root权限(例如:更改密码的命令 /usr/bin/passwd 对除 root 以外的用户不可读、不可写和不可执行,但是普通用户同样可以使用该命令更改自己的密码)
[centos@centos02 ~]$ ls /rootls: 无法打开目录/root: 权限不够
chmod u+s /usr/bin/ls 赋予ls set_uid 加了个s
加了之后就可执行ls查看root目录了、字体也变成了红色如图
[centos@centos02 ~]$ ls /rootanaconda-ks.cfg
set_git
chmod u+s /usr/bin/ls(赋权临时拥有所有组权限)、set_git 让普通用户临时拥有所有组的权限、修改完会变成黄色如图
普通用户无法查看root用户目录
[centos@centos02 ~]$ ls /rootls: 无法打开目录/root: 权限不够
ls给赋予set_git后、chmod u+s /usr/bin/ls、ls就可以看root了因为所有组r-x有读得权限如下
[centos@centos02 ~]$ ls -ld /root/dr-xr-x---. 3 root root 147 5月 10 08:06 /root/
set_git对文件也可使用
chmod u+s houmu
[centos@centos02 ~]$ ls -ld houmu/drwxrwsr-x. 2 centos user1 6 5月 15 19:13 houmu/
houmu的所属组是user1、你赋予了目录set_git后、创建子目录子文件都是user1
ls -l houmu/ 查看houmu目录你会发现目录下的文件都是所属组user1
rw-rw-r--. 1 centos user1 0 5月 15 19:20 a.txt-rw-rw-r--. 1 centos user1 0 5月 15 19:17 la
set_git:权限的作用、可以作用在文件上、也可以作用在目录上、当作用在文件上和set_uid是类似的让执行这个文件的普通用户临时拥有所属组的身份、当作用在目录上、当你创建、子目录或者子文件的时候、创建的子目录和子文件所属组、和该目录的所属组保持一致。
stick_bit
stick_bit 防删除位
[centos@centos02 tmp]$ ls -l houmu-rwxrwxrwx. 1 centos centos 38 5月 15 19:38 houmu、现在的权限是全部人可读可写可运行、我们切换用户user1 切换用户命令su- user1(用户名)vi 、houmu会发现可修改、可是删除却不行如下[user1@centos@centos02 ~]$rm -f houmu rm:无法删除“houmu”:不允许的操作
概念:Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统
软链接:以路径的形式存在、类似于Windows操作系统中的快捷方式、软链接可以 跨文件系统 、硬链接不可以
ln -s 左边是你的原文件、后面才是你的软连接
ln -s /tmp/yum.log(源文件) /root/yum.log(软连接)
[centos@centos02 ~]$ ls -l /root 查询软连接的去处总用量 4-rw-------. 1 root root 1371 5月 9 23:36 anaconda-ks.cfglrwxrwxrwx. 1 root root 12 5月 15 20:01 yum.log -> /tmp/yum.log(去处)
ln命令会保持每一处链接文件的同步性、也就是说、不论你改动了哪一处、其它的文件都会发生相同的变化、做软连接尽量使用绝对路径
硬链接
1、硬链接,以文件副本的形式存在。但不占用实际空间。2、不允许给目录创建硬链接3、硬链接只有在同一个文件系统中才能创建
硬链接缓冲存放在ionde号里
[centos@centos02 houmu]$ ls -i、括号内ionde号(8866312) 1_heard.txt (8866312) a.txt 8866310 la
ln a.txt 1_heard.txt 创建硬链接
[centos@centos02 houmu]$ ls -l 硬链接的空间共同使用的存放在onde里总用量 0-rw-rw-r--. 2 centos user1 6 5月 15 19:20 1_heard.txt-rw-rw-r--. 2 centos user1 6 5月 15 19:20 a.txt-rw-rw-r--. 1 centos user1 0 5月 15 19:17 la
Try 'ln --help' for more information.[centos@centos02 houmu]$ ln /boot/config-3.10.0-693.el7.x86_64 /tmp/config.1ln: 无法创建硬链接"/tmp/config.1" => "/boot/config-3.10.0-693.el7.x86_64": 不允许的操作
因为这2个分区都有自己独立的ionde体系,它们各自有自己的分区有各自的ionde、做硬链接是不允许的
硬链接特性:可以对文件做不能对目录做、不能跨分区、硬链接可以删除因为它还有其它的文件使用了ionde、硬链接好比皮、这个皮可以删掉不受影响因为你还有其它的皮、当然你不能吧全部的皮都删掉最少保留一个!
光标
ctrl u 当前光标前的全部删掉
ctrl a 吧光标挪到最前
ctrl e 吧光标挪到最后
find
find /etc(路径)/ -type d(指定只要目录) -name "sshd"
find /etc(路径)/ -type f(指定只要文件) -name "sshd"
[centos@centos02 houmu]$ sudo find /etc/ -type f -name "sshd"/etc/sysconfig/sshd/etc/pam.d/sshd
stat 是用来查看文件的具体信息的
[centos@centos02 1]$ stat 2.txt 文件:"2.txt" 大小:0 块:0 IO 块:4096 普通空文件设备:802h/2050d Inode:8866284 硬链接:1权限:(0664/-rw-rw-r--) Uid:( 1000/ centos) Gid:( 1000/ centos)环境:unconfined_u:object_r:user_home_t:s0最近访问:2018-05-14 22:23:54.482448199 -0400最近更改:2018-05-14 22:23:54.482448199 -0400最近改动:2018-05-14 22:23:54.482448199 -0400创建时间:-
mtime
创建或者是更改文件内容的时间-1小于一天发生过更改的文件+1等于大于一天以内的
[centos@centos02 1]$ sudo find /etc/ -type f -mtime -1[sudo] centos 的密码:/etc/resolv.conf/etc/group/etc/gshadow/etc/passwd/etc/passwd-/etc/shadow/etc/shadow-/etc/group-/etc/gshadow-/etc/tuned/active_profile
find /inum +ionde号如下
[centos@centos02 ~]$ sudo find / -inum 8866312/home/centos/houmu/a.txt/home/centos/houmu/1_heard.txt
find /目录/ - type f -mmin(分钟) -122多少分钟
[centos@centos02 ~]$ find ~/ -type f -mmin -122/home/centos/.bash_history/home/centos/houmu/a.txt/home/centos/houmu/1_heard.txt
find / -type(只要指定的) -name() -mtime(改文件内容) -ctime(改的权限) -atime(访问的权限)-size(查看大小)