2.16-2.27笔记

知识点

chattr,lsattr,set_uid,set_gid,stick_bit,find,软链接,硬链接,文件互传


详细信息

chattr命令

change file attributes on a Linux file system 修改文件的属性。

chattr +i 文件 给予文件i属性,使得文件不能增减改操作

chattr +a 文件 只能增加

[root@localhost /]# mkdir -v /test
mkdir: 已创建目录 "/test"
[root@localhost /]# cd /test
[root@localhost test]# touch shiyan.txt
[root@localhost test]# ll shiyan.txt 
-rw-r--r--. 1 root root 240 10月 21 23:36 shiyan.txt
[root@localhost test]# chattr +i shiyan.txt //给shiyan.txt添加chattr i属性
[root@localhost test]# lsattr !$
lsattr shiyan.txt
----i----------- shiyan.txt  //显示为一个i标志,表示添加成功!
[root@localhost test]# rm -rf shiyan.txt
rm: 无法删除"shiyan.txt": 不允许的操作  //现在执行rm命令发现操作不被允许!
[root@localhost test]# chattr -i shiyan.txt 
[root@localhost test]# rm -rf shiyan.txt  //删除文件的chattr i 属性后就可以正常操作了!
[root@localhost test]# ls 

如果操作对象是目录,又会是怎样!我们来做个小实验

[root@localhost ~]# mkdir /test
[root@localhost test]# cp /usr/bin/ls /test
[root@localhost test]# chattr +i /test
[root@localhost test]# touch .hudie
touch: 无法创建".hudie": 权限不够
[root@localhost ~]# lsattr /test
---------------- /test/ls
[root@localhost ~]# rm /test/ls 
rm:是否删除普通文件 "/test/ls"?y
rm: 无法删除"/test/ls": 权限不够
[root@localhost ~]# chattr -i /test/
[root@localhost ~]# lsattr -d /test/
---------------- /test/
[root@localhost ~]# touch /test/hudie
[root@localhost ~]# rm /test/ls
rm:是否删除普通文件 "/test/ls"?y
[root@localhost ~]# ls /test
hudie
[root@localhost test]# vi hudie 
[root@localhost test]# cat hudie
hunanldiejlej
[root@localhost test]# ll
-rw-r--r--. 1 root root 14 10月 23 22:08 hudie
[root@localhost test]# chmod 777 hudie 
[root@localhost test]# ll
-rwxrwxrwx. 1 root root 14 10月 23 22:08 hudie

==如果一个目录设置了chattr i属性则该目录不能删除新增文件或者目录,但是已经创建好的文件可以修改内容和属性!==

lsattr命令

list file attributes on a Linux second extended file system 一个简单的查看文件属性命令。为chattr应运而生!

[root@localhost test]# chattr +i /test
[root@localhost test]# lsattr /test
---------------- /test/111.txt
---------------- /test/222.txt
[root@localhost test]# lsattr -d /test
----i----------- /test
[root@localhost test]# lsattr -d .  
----i----------- .    //可以看到有个i属性!

特殊权限set_uid

[root@localhost test]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

查看/usr/bin/passwd这个文件发现他的所有者权限为rws,这个就是set_uid的作用。用户使用passwd这个命令的时候临时获得所有者的权限。

设置set_uid需要有2个条件

  • 必须是个二进制可执行文件
  • 必须有x权限

命令格式为:chmod u+s 文件 或者 chmod u=rws 文件

[root@localhost test]# ll .
-rw-r--r--. 1 root root 10 10月 21 23:51 111.txt
[root@localhost test]# chmod 777 111.txt 
[root@localhost test]# ll .
-rwxrwxrwx. 1 root root 10 10月 21 23:51 111.txt
[root@localhost test]# ll .
-rwsrwxrwx. 1 root root 10 10月 21 23:51 111.txt
[root@localhost test]# chmod u-s 111.txt 
[root@localhost test]# ll .
-rwxrwxrwx. 1 root root 10 10月 21 23:51 111.txt

如果一个文件没有x权限,然后又被添加了uid属性,则文件权限会变成S

[root@localhost test]# touch www.txt
[root@localhost test]# ll .
-rw-r--r--. 1 root root 0 10月 23 22:34 www.txt
[root@localhost test]# chmod 4644 www.txt 
[root@localhost test]# ll .
-rwSr--r--. 1 root root 0 10月 23 22:34 www.txt  //由于www.txt这个文件没有x权限,所有在赋予set_uid的时候会变成S

特殊权限set_gid

使用效果和set_uid差不多,set_uid是暂时拥有所有者权限,而set_gid是暂时拥有所属组权限。

[root@localhost test]# chmod g=rws 222.txt 
[root@localhost test]# ll 222.txt 
-rw-rwSr--. 1 root root 0 10月 21 23:50 222.txt

但是如果作用的目标是目录,那就会有点不同

[root@localhost 444]# chmod g=rws /test/444/
[root@localhost 444]# ls -ld .
drwxrwSr-x. 2 root grapess 6 10月 22 00:28 .
[root@localhost 444]# mkdir -pv 1/2/3
mkdir: 已创建目录 "1"
mkdir: 已创建目录 "1/2"
mkdir: 已创建目录 "1/2/3"
[root@localhost 444]# ll 1
drwxr-sr-x. 3 root grapess 15 10月 22 00:30 2
[root@localhost 444]# cd 1
[root@localhost 1]# touch hello.txt
[root@localhost 1]# ll
-rw-r--r--. 1 root grapess  0 10月 22 00:35 hello.txt

将一个目录添加set_gid权限后,在这个目录里创建的所有东西都属于这个group。好像某人创办了一个公司,公司员工生产的所有产品都属于这个公司!

特殊权限stick_bit

[root@localhost tmp]# ls -ld /tmp
drwxrwxrwt. 10 root root 4096 10月 22 00:39 /tmp

目录/tmp的权限为rwxrwxrwt 这个t就是stick_bit位。在该目录下所有人都有rwx的权限,但是操作的对象仅限自己的文件。别人的文件他没办法动!

软链接

相当于windows的快捷方式。软链接的文件类型标志为l

[root@localhost tmp]# ls -l /bin
lrwxrwxrwx. 1 root root 7 5月  12 19:04 /bin -> usr/bin
[root@localhost etc]# cp yum.conf /test/
[root@localhost etc]# cd /test
[root@localhost test]# ll
-rw-r--r--. 1 root root    970 10月 22 00:48 yum.conf
[root@localhost test]# vi yum.conf 
[root@localhost test]# ln -s yum.conf hello
[root@localhost /]# ls -il /test/
50377593 lrwxrwxrwx. 1 root root   8 10月 23 22:46 hello -> yum.conf
     331 -rw-r--r--. 1 root root 970 10月 23 22:46 yum.conf

==通过ls -i发现软链接的inode和源文件的inode是不一样的==

硬链接

说到硬链接就要提到inode的概念!

[root@localhost test]# ln yum.conf yum.hard
[root@localhost test]# ll
-rw-r--r--. 2 root root    970 10月 22 00:48 yum.conf
-rw-r--r--. 2 root root    970 10月 22 00:48 yum.hard
[root@localhost test]# ls -il
331 -rw-r--r--. 2 root root    970 10月 22 00:48 yum.conf
331 -rw-r--r--. 2 root root    970 10月 22 00:48 yum.hard

==通过ls -i可以看出2个文件的inode号是一样的,硬链接其实就是一个文件的另一个分身,但是分身的本质inode都是一样的,所以系统在向这个文件写入内容的时候就是在给该inode写入,而2个文件的inode是相同的,所以就可以同时写入了!==

硬链接只能给文件,不能给目录,而且不能跨分区

find命令

find {范围}{条件}

  • name 根据文件名查找
  • iname 不区分文件名大小写
  • size 根据文件大小查找
  • inum 根据i节点号查找
  • type 根据文件类型查找 f,d,l,c....
  • atime access 根据访问时间查找
  • ctime change 根据修改(属性修改)时间查找
  • mtime modify 根据修改(内容修改)时间查找
[root@localhost test]# find /etc -type l -name sm*
/etc/pam.d/smtp
/etc/pam.d/smartcard-auth
[root@localhost test]# find /etc -type l -name sm* -exec ls -l {} \;
lrwxrwxrwx. 1 root root 25 5月  12 19:06 /etc/pam.d/smtp -> /etc/alternatives/mta-pam
lrwxrwxrwx. 1 root root 17 5月  12 19:09 /etc/pam.d/smartcard-auth -> smartcard-auth-ac

实际应用中find命令会搭配其他命令使用!

格式为:find 『范围』『条件』 -exec 『其他命令』 {} \ ; // 注意:\和;之间没有空格,{}和\之间有空格

[root@localhost /]# find / -name hello -exec ln -s {} /hello.soft  \;
[root@localhost /]# ll
lrwxrwxrwx.  1 root root   11 10月 23 23:22 hello.soft -> /test/hello

window和linux文件互传

[root@localhost test]# yum install -y lrzsz

安装lrzsz服务,使用命令==sz==传文件到windows,使用==rz==传文件到linux

转载于:https://my.oschina.net/u/3997678/blog/2250393

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值