编辑文件各种权限

  • 目录
  • 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 ~]# 

如下图所示:

111438_Jkgr_3850968.png

111448_p43D_3850968.png

 

但是使用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命令显示如下图(红色)

101740_eP69_3850968.png

 

3.特殊权限set_gid

作用在组权限位上,显示如图所示(黄色)

102323_KAxF_3850968.png

[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

 

215214_IyGJ_3850968.png

 

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

163637_ez9n_3850968.png

 

从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

163853_dUxf_3850968.png

                                                                                       

 

                                                                                                                2018/5/14

 

 

 

转载于:https://my.oschina.net/u/3850968/blog/1811559

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值