- 目录
- 1.隐藏权限lsattr_chattr
- 2.特殊权限set_uid
- 3.特殊权限set_gid
- 4.特殊权限stick_bit
- 5.硬链接文件
- 6.find命令
- 7.文件名后缀
- 8.LInux和windows互传文件
1.隐藏权限lsattr_chattr
chattr是用来增加隐藏权限的命令。
用man chattr查看chattr的用法。
帮1.txt增加i权限后发现编辑后无法保存。
[root@localhost ~]# man chattr
[root@localhost ~]# chattr +i /tmp/xiaoqi/1.txt
[root@localhost ~]# vi /tmp/xiaoqi/1.txt
[root@localhost ~]#
如下图所示:
但是使用ls -l命令查看文件是有读写权限的,所以用lsattr查看隐藏权限。
再新建一个2.txt文件查看隐藏权限发现什么都没有。
[root@localhost ~]# ll /tmp/xiaoqi/1.txt
-rw-r--r--. 1 root root 0 5月 12 16:24 /tmp/xiaoqi/1.txt
[root@localhost ~]# lsattr /tmp/xiaoqi/1.txt
----i----------- /tmp/xiaoqi/1.txt
[root@localhost ~]# touch /tmp/xiaoqi/2.txt
[root@localhost ~]# lsattr /tmp/xiaoqi/2.txt
---------------- /tmp/xiaoqi/2.txt
chattr +i权限将造成无法写入,无法改名,无法删除,无法使用touch命令。
[root@localhost ~]# rm /tmp/xiaoqi/1.txt
rm:是否删除普通空文件 "/tmp/xiaoqi/1.txt"?y
rm: 无法删除"/tmp/xiaoqi/1.txt": 不允许的操作
[root@localhost ~]# mv /tmp/xiaoqi/1.txt 3.txt
mv: 无法将"/tmp/xiaoqi/1.txt" 移动至"3.txt": 不允许的操作
[root@localhost ~]# touch /tmp/xiaoqi/1.txt
touch: 无法创建"/tmp/xiaoqi/1.txt": 权限不够
chattr -i取消特殊权限。
[root@localhost xiaoqi]# chattr -i 1.txt
chattr +a命令,只可以追加。不可更改,不可重命名。
[root@localhost xiaoqi]# chattr +a 1.txt
[root@localhost xiaoqi]# rm 1.txt
rm:是否删除普通文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作
[root@localhost xiaoqi]# cd
[root@localhost ~]# head -n2 /etc/passwd >/tmp/xiaoqi/1.txt
-bash: /tmp/xiaoqi/1.txt: 不允许的操作
[root@localhost ~]# head -n2 /etc/passwd >> /tmp/xiaoqi/1.txt
[root@localhost ~]# cat /tmp/xiaoqi/1.txt
sdsa:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# head -n2 /etc/passwd >> /tmp/xiaoqi/1.txt
[root@localhost ~]# cat /tmp/xiaoqi/1.txt
sdsa:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
可使用touch命令
[root@localhost ~]# touch /tmp/xiaoqi/1.txt
[root@localhost xiaoqi]# ll 1.txt
-rw-r--r--. 1 root root 136 5月 13 11:35 1.txt
chattr -a命令取消只可追加命令。
[root@localhost xiaoqi]# chattr -a 1.txt
[root@localhost xiaoqi]# lsattr 1.txt
---------------- 1.txt
lsattr是用来查看目录下文件的隐藏权限,lasttr -d用来查看目录的隐藏权限。
[root@localhost tmp]# lsattr xiaoqi
---------------- xiaoqi/ls2
---------------- xiaoqi/xiaoqi2
---------------- xiaoqi/123
---------------- xiaoqi/1.txt
---------------- xiaoqi/222.txt
---------------- xiaoqi/test
---------------- xiaoqi/xiaoqi3
---------------- xiaoqi/2.txt
[root@localhost tmp]# lsattr -d xiaoqi
---------------- xiaoqi
当给目录加上i权限后,和文件效果一样,不可修改,移动,删除;可以修改目录下已经存在文件。
[root@localhost tmp]# chattr +i /111
[root@localhost tmp]# lsattr -d /111
----i----------- /111
[root@localhost tmp]# rmdir /111/
rmdir: 删除 "/111/" 失败: 不允许的操作
lsattr -R可以查看目录下子目录和子目录下文件的隐藏权限。
[root@localhost tmp]# lsattr -R xiaoqi
---------------- xiaoqi/ls2
---------------- xiaoqi/xiaoqi2
xiaoqi/xiaoqi2:
---------------- xiaoqi/123
---------------- xiaoqi/1.txt
---------------- xiaoqi/222.txt
---------------- xiaoqi/test
xiaoqi/test:
---------------- xiaoqi/xiaoqi3
xiaoqi/xiaoqi3:
---------------- xiaoqi/2.txt
lsattr -a可以产看所有隐藏文件的隐藏权限。
[root@CentOS ~]# lsattr -a
---------------- ./.
---------------- ./..
---------------- ./.bash_logout
---------------- ./.bash_profile
---------------- ./.bashrc
---------------- ./.cshrc
---------------- ./.tcshrc
---------------- ./anaconda-ks.cfg
---------------- ./.bash_history
---------------- ./.ssh
2.特殊权限set_uid
set_uid权限的作用
[root@CentOS ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
表示为rws。当普通用户执行这个命令时临时拥有命令所有者的权限。数字表示为4
前提是可执行的二进制文件。
file命令查看是否二进制文件
[root@localhost ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped
[root@localhost ~]# file /usr/bin/yum
/usr/bin/yum: Python script, ASCII text executable
给ls增加set_uid权限
[root@CentOS ~]# chmod u+s /usr/bin/ls
[root@CentOS ~]# ll !$
ll /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[xiaoqi@CentOS ~]$ whoami
xiaoqi
[xiaoqi@CentOS ~]$ ls /root
ls: 无法打开目录/root: 权限不够
[xiaoqi@CentOS ~]$ ls /root
anaconda-ks.cfg
[xiaoqi@CentOS ~]$
减去set_uid权限
[root@CentOS ~]# chmod u-s /usr/bin/ls
[root@CentOS ~]# ll !$
ll /usr/bin/ls
-rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
其他用户不再拥有临时权限
[xiaoqi@CentOS ~]$ ls /root
ls: 无法打开目录/root: 权限不够
如果使用chmod u=rws 命令则会发现权限中的s变成S,这是由于没有执行权限导致的,但是不影响临时权限的使用。
[root@CentOS ~]# chmod u=rws /usr/bin/ls
[root@CentOS ~]# ll /usr/bin/ls
-rwSr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[xiaoqi@CentOS ~]$ ls /root
ls: 无法打开目录/root: 权限不够
[xiaoqi@CentOS ~]$ ls /root
anaconda-ks.cfg
ps:当可执行的二进制文件拥有set_uid权限时使用ls -l命令显示如下图(红色)
3.特殊权限set_gid
作用在组权限位上,显示如图所示(黄色)
[root@CentOS ~]# chmod g+s /usr/bin/ls
[root@CentOS ~]# ll /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[xiaoqi@CentOS ~]$ ls /root
anaconda-ks.cfg
普通用户有用所属组的临时权限。数字表示为2
当给一个目录增加set_gid权限后在目录下创建新的文件所属组会跟着set_gid权限所在的目录保持一致。
[root@CentOS ~]# mkdir 123
[root@CentOS ~]# ll -d 123
drwxr-xr-x 2 root root 6 5月 14 10:34 123
[root@CentOS ~]# chown :xiaoqi 123
[root@CentOS ~]# !ll
ll -d 123
drwxr-xr-x 2 root xiaoqi 6 5月 14 10:34 123
[root@CentOS ~]# chmod g+s 123
[root@CentOS ~]# !ll
ll -d 123
drwxr-sr-x 2 root xiaoqi 6 5月 14 10:34 123
[root@CentOS ~]# touch 123/1.txt
[root@CentOS ~]# ll 123
总用量 0
-rw-r--r-- 1 root xiaoqi 0 5月 14 10:36 1.txt
[root@CentOS ~]# chmod g-s 123
[root@CentOS ~]# touch 123/12.txt
[root@CentOS ~]# ll 123
总用量 0
-rw-r--r-- 1 root root 0 5月 14 10:37 12.txt
-rw-r--r-- 1 root xiaoqi 0 5月 14 10:36 1.tx
增加权限后创建文件和目录所属组一致,取消权限后创建文件为root所属组。
4.特殊权限stick_bit
防止别人删除自己的文件,root用户除外。数字表示为1
tmp文件夹拥有这个权限
[root@CentOS ~]# ll -d /tmp
drwxrwxrwt. 13 root root 4096 5月 14 10:30 /tmp
表现权限为rwt,即为只能操作自己的文件。
[root@CentOS tmp]# touch xiaoqi
[root@CentOS tmp]# ll
总用量 4
-rwx------. 1 root root 836 5月 7 22:44 ks-script-723_SW
drwx------. 3 root root 17 5月 7 16:04 systemd-private-2c5503e4a0194416900536c4eba49a9c-vmtoolsd.service-xUcoCq
drwx------ 3 root root 17 5月 14 09:18 systemd-private-5c04aeef49f24624a7f75e70ca44bdf3-vmtoolsd.service-9s6pId
drwx------ 3 root root 17 5月 11 09:12 systemd-private-b37e78675a0c4de09a1544d6d7d82d41-vmtoolsd.service-9uFf3B
drwx------. 3 root root 17 5月 7 22:46 systemd-private-c0498eff592e4b79b05623ed0e3e5077-vmtoolsd.service-jo4uWT
-rw-r--r-- 1 root root 0 5月 14 10:55 xiaoqi
drwxr-xr-x 2 root root 6 5月 11 15:23 xiaoqi1
-rw-------. 1 root root 0 5月 7 22:35 yum.log
[root@CentOS tmp]# vi xiaoqi
[root@CentOS tmp]# chmod 777 xiaoqi
[root@CentOS tmp]# ll xiaoqi
-rwxrwxrwx 1 root root 130230 5月 14 10:56 xiaoqi
[xiaoqi@CentOS ~]$ cd /tmp
[xiaoqi@CentOS tmp]$ vi xiaoqi
[xiaoqi@CentOS tmp]$ rm -f xiaoqi
rm: 无法删除"xiaoqi": 不允许的操作
其他用户可以修改,但是不可以删除该文件。
当用户想操作其他用户目录下的文件时看的是目录的权限,而不是目录文件的权限。
问:如何增加stick_bit权限???
chmod o+t =chmod 1原来的权限数字
4.软连接文件
软连接类似于windows的快捷方式
软连接方便查找,可以让一个文件在多个目录下查看(创建多个快捷方式)
软连接可以跨磁盘和分区(硬链接不可以(不同磁盘可能用相同的inode号))
[root@CentOS tmp]# ll /bin
lrwxrwxrwx. 1 root root 7 5月 7 22:35 /bin -> usr/bin
在文件本身中存了另外一个文件的路径目录,路径越长文件越大。
ln -s命令做软连接
[root@CentOS tmp]# ln -s /tmp/yum.log /root/123/yum.log
[root@CentOS tmp]# ll /root/123/
总用量 0
-rw-r--r-- 1 root root 0 5月 14 10:37 12.txt
-rw-r--r-- 1 root xiaoqi 0 5月 14 10:36 1.txt
lrwxrwxrwx 1 root root 12 5月 14 11:47 yum.log -> /tmp/yum.log
软连接也可以连接目录
[root@CentOS tmp]# ln -s /tmp/xiaoqi /root/123/xiaoqi2
[root@CentOS tmp]# ll /root/123/
总用量 0
-rw-r--r-- 1 root root 0 5月 14 10:37 12.txt
-rw-r--r-- 1 root xiaoqi 0 5月 14 10:36 1.txt
lrwxrwxrwx 1 root root 11 5月 14 11:49 xiaoqi2 -> /tmp/xiaoqi
lrwxrwxrwx 1 root root 12 5月 14 11:47 yum.log -> /tmp/yum.log
做软连接尽量使用绝对路径。相对路径做软连接当移动文件会出现错误。
删除软连接目录时后面不可以加 / !!!
4.1软连接做磁盘扩容
系统中有2个分区:A 、B ,其中A的空间快占满了,还需要写入一个文件到A分区,但是A的空间以及无法写入这个文件。但是B的空间是足够的,此时可以把文件写入B中,在A中做一个该文件的软连接。
把A中一个文件X 用mv命令移动到B中 ,ln -s /B/X /A/X ,接下来再往X中写数据就会把数据存在B下,同时在A下面可以访问X 。
5.硬链接文件
硬链接不支持目录:
[root@CentOS xiaoqi1]# mkdir xiaoqi
[root@CentOS xiaoqi1]# ln xiaoqi
ln: "xiaoqi": 不允许将硬链接指向目录
硬链接和源文件inode号相同,源文件和对象互为硬链接;
[root@CentOS xiaoqi1]# ll
总用量 4
-rw-r--r-- 1 root root 623 5月 14 14:16 1.txt
[root@CentOS xiaoqi1]# ln -s 1.txt 1_soft.txt
[root@CentOS xiaoqi1]# ln 1.txt 1_heard.txt
[root@CentOS xiaoqi1]# ll
总用量 8
-rw-r--r-- 2 root root 623 5月 14 14:16 1_heard.txt
lrwxrwxrwx 1 root root 5 5月 14 14:16 1_soft.txt -> 1.txt
-rw-r--r-- 2 root root 623 5月 14 14:16 1.txt
硬链接是指向同一个inode,可以删除,不会影响到其他的硬链接。
文件做硬链接不可以跨分区:
[root@CentOS ~]# ln /boot/config-3.10.0-514.el7.x86_64 /tmp/config1
ln: 无法创建硬链接"/tmp/config1" => "/boot/config-3.10.0-514.el7.x86_64": 无效的跨设备连接
分区之间都有独立的inode体系,不同分区可能各自有相同的inode号。
6.find命令
搜索命令有which,whereis,locate。
ctrl u删除光标前所有内容,ctrl e会把光标移到最后,ctrl a把光标移到最开始。
find命令在指定目录精确搜索和模糊搜索
[root@CentOS ~]# find /tmp/ -name "xiaoqi"
/tmp/xiaoqi1/xiaoqi
/tmp/xiaoqi
[root@CentOS ~]# find /tmp/ -name "xiao*"
/tmp/xiaoqi1
/tmp/xiaoqi1/xiaoqi
/tmp/xiaoqi
/tmp/xiaoqi3
find命令在指定目录只搜索目录
[root@CentOS ~]# find /tmp/ -type d -name "xiao*"
/tmp/xiaoqi1
/tmp/xiaoqi1/xiaoqi
/tmp/xiaoqi3
find命令在指定目录只搜索文件
[root@CentOS ~]# find /tmp/ -type f -name "xiao*"
/tmp/xiaoqi
find命令在指定目录搜索软链接文件
[root@CentOS ~]# find /tmp/ -type l
/tmp/xiaoqi1/1_soft.txt
修改文件权限是-ctime ;修改文件内容为-mtime,更改内容之后ctime一定会变;-atime表示访问这个文件的时间。
查找在/etc/文件夹下一天内修改过的文件
[root@CentOS ~]# find /etc/ type f -mtime -1
/etc/
/etc/resolv.conf
/etc/group
/etc/gshadow
/etc/group-
/etc/gshadow-
/etc/passwd
/etc/shadow
/etc/sysconfig
/etc/sysconfig/network-scripts
/etc/cron.daily
/etc/tuned/active_profile
find: 'type': No such file or directory
find: 'f': No such file or directory
通过inode号查找文件
[root@CentOS ~]# cd !$
cd /tmp/xiaoqi1
[root@CentOS xiaoqi1]# ln 1_heard.txt /tmp/1.txt.bak
[root@CentOS xiaoqi1]# cd ..
[root@CentOS tmp]# ls -i 1.txt.bak
17128305 1.txt.bak
[root@CentOS tmp]# cd
[root@CentOS ~]# find / -inum 17128305
/tmp/xiaoqi1/1_heard.txt
/tmp/1.txt.bak
查找并列出240分钟内修改的文件
[root@CentOS ~]# find /tmp/ -type f -mmin -240 -exec ls -l {} \;
-rw-r--r-- 2 root root 623 May 14 14:16 /tmp/xiaoqi1/1_heard.txt
-rwx------ 1 root root 8 May 14 14:56 /tmp/xiaoqi1/1.txt
-rw-r--r-- 2 root root 623 May 14 14:16 /tmp/1.txt.bak
需多加练习,研究!!!exec xargs
查找root下小于10k的文件
[root@CentOS ~]# find /root/ -size -10k
/root/
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
/root/.cshrc
/root/.tcshrc
/root/anaconda-ks.cfg
/root/.bash_history
/root/.ssh
/root/.ssh/authorized_keys
/root/.ssh/known_hosts
/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
/root/123
/root/123/1.txt
/root/123/12.txt
/root/123/yum.log
/root/123/xiaoqi2
[root@CentOS ~]# find /root/ -type f -size -10k -exec ls -lh {} \;
-rw-r--r--. 1 root root 18 Dec 29 2013 /root/.bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 /root/.bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 /root/.bashrc
-rw-r--r--. 1 root root 100 Dec 29 2013 /root/.cshrc
-rw-r--r--. 1 root root 129 Dec 29 2013 /root/.tcshrc
-rw-------. 1 root root 1.4K May 7 22:44 /root/anaconda-ks.cfg
-rw-------. 1 root root 957 May 11 17:49 /root/.bash_history
-rw-r--r--. 1 root root 398 May 8 10:50 /root/.ssh/authorized_keys
-rw-r--r-- 1 root root 174 May 8 11:21 /root/.ssh/known_hosts
-rw------- 1 root root 1.7K May 9 11:12 /root/.ssh/id_rsa
-rw-r--r-- 1 root root 393 May 9 11:12 /root/.ssh/id_rsa.pub
-rw-r--r-- 1 root xiaoqi 0 May 14 10:36 /root/123/1.txt
-rw-r--r-- 1 root root 0 May 14 10:37 /root/123/12.txt
7.文件名后缀
在linux下的后缀名不代表这个文件的类型。
8.LInux和windows互传文件
安装lrzsz
[root@CentOS ~]# yum install -y lrzsz
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.shu.edu.cn
* extras: mirrors.shu.edu.cn
* updates: mirrors.shu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 lrzsz.x86_64.0.0.12.20-36.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
==============================================================================================
Package 架构 版本 源 大小
==============================================================================================
正在安装:
lrzsz x86_64 0.12.20-36.el7 base 78 k
事务概要
==============================================================================================
安装 1 软件包
总下载量:78 k
安装大小:181 k
Downloading packages:
lrzsz-0.12.20-36.el7.x86_64.rpm | 78 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : lrzsz-0.12.20-36.el7.x86_64 1/1
验证中 : lrzsz-0.12.20-36.el7.x86_64 1/1
已安装:
lrzsz.x86_64 0:0.12.20-36.el7
完毕!
[root@CentOS ~]# touch a.txt
[root@CentOS ~]# sz a.txt
从windows传到linux
[root@CentOS ~]# rz
[root@CentOS ~]# ll
总用量 8
drwxr-xr-x 2 root xiaoqi 63 5月 14 11:49 123
-rw-------. 1 root root 1422 5月 7 22:44 anaconda-ks.cfg
-rw-r--r-- 1 root root 0 5月 14 16:37 a.txt
-rw-r--r-- 1 root root 3441 5月 8 10:18 default
2018/5/14