第三课预习笔记

2.17 隐藏权限lsattr_chattr

chattr命令用来改变文件属性,这些属性共有以下8种模式:

    a:让文件或目录仅供附加用途;
    b:不更新文件或目录的最后存取时间;
    c:将文件或目录压缩后存放;
    d:将文件或目录排除在倾倒操作之外;
    i:不得任意更动文件或目录;
    s:保密性删除文件或目录;
    S:即时更新文件或目录;
    u:预防意外删除。

参数有:

-R:递归处理,将指令目录下的所有文件及子目录一并处理;
-v<版本编号>:设置文件或目录版本;
-V:显示指令执行过程;
+<属性>:开启文件或目录的该项属性;
-<属性>:关闭文件或目录的该项属性;
=<属性>:指定文件或目录的该项属性。

lsattr命令用于查看文件的第二扩展文件系统属性,(-d)查看目录权限(-R)级联查看。

文件 +i 权限后vi 、rm 、touch、 mv 等操作都会禁止。

参数 a 权限,只能追加内容:

[root@liang-02 ~]# chattr -i 1.txt 
[root@liang-02 ~]# chattr +a 1.txt 
[root@liang-02 ~]# !rm
rm -f 1.txt 
rm: 无法删除"1.txt": 不允许的操作
[root@liang-02 ~]# !mv
mv 1.txt 2.txt
mv: 无法将"1.txt" 移动至"2.txt": 不允许的操作
[root@liang-02 ~]# !touch
touch 1.txt
[root@liang-02 ~]# echo "111111" >> 1.txt 
[root@liang-02 ~]# cat 1.txt 
111111
[root@liang-02 ~]# 

当作用的对象是目录时,给目录增加 a、i 权限后,对目录本身的rm、mv 等操作都会禁止,而对其子目录做修改是允许的

 

 

2.18-2.20 特殊权限set_uid、set_gid、stick_bit

set_uid 权限是一种特殊权限,当普通用户需要临时拥有一个程序或二进制文件的执行权限时,

可以对程序或文件设置一个set_uid(linux系统中 /usr/bin/passwd 就是这样的一个文件,它可以让普通用户修改自己的密码)。

例如,普通用户用 ls 没有查看 root 文件的权限,这时就可以用 chmod 给 ls 设置一个set_uid权限 s,让它可以 ls /root/ 。

set_gid 跟setuid类似,当一个文件所属组加上 s 权限后,普通用户就拥有了此文件所属组的权限

例如,当 ls 文件所属组没有加 s 权限之前的权限是 r-x

加上之后其它用户变为 r-s 普通用户就可以使用它的所属组权限了

set_gid作用在目录上的时候,如果把目录的所属组更改了(例如改成 liang),那么在目录下创建的子

目录和子文件的所属组都会更改(这里会改为 liang)

stick_bit 防删除位,Linux系统中 /tmp/ 就是有stick_bit位的目录。

当一个普通用户在 /tmp/ 下创建了一个文件,另一个普通用户是不可以删除的(root除外),但可以更文件改内容。

[liang@liang-02 ~]$ touch /tmp/liangtext
[liang@liang-02 ~]$ vi /tmp/liangtext 
[liang@liang-02 ~]$ chmod 777 /tmp/liangtext 
[liang@liang-02 ~]$ ll /tmp/liangtext 
-rwxrwxrwx 1 liang liang 37 10月 20 17:05 /tmp/liangtext
[liang@liang-02 ~]$ su - 
密码:
上一次登录:六 10月 20 16:38:07 CST 2018pts/0 上
[root@liang-02 ~]# su - user1
最后一次失败的登录:六 10月 20 17:05:59 CST 2018pts/0 上
最有一次成功登录后有 2 次失败的登录尝试。
[user1@liang-02 ~]$ vi /tmp/liangtext 
[user1@liang-02 ~]$ rm -f /tmp/liangtext 
rm: 无法删除"/tmp/liangtext": 不允许的操作
[user1@liang-02 ~]$ 

普通用户user1 在 /tmp/ 下创建了目录/tmp/user1/之后,其它用户(liang)在该目录(/tmp/user1/)下又创建了自己的目录(或文件),user1用户是可以删除的。

因为user1目录的other权限是rwx允许其它用户删除它的子目录(文件)的。

2.21 软链接文件

软链接

       软链接也称之为符号连接(Symbolic Link)。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在软链接中,文件实际上

是一个文本文件,其中包含的有另一文件的位置信息。

       ln命令 用来为文件创件连接,连接类型分为软连接(符号连接)和硬连接两种,默认的连接类型是硬连接。如果要创建软连接必须使用"-s"选项。

软连接接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给软链接文件设置存取权限是没有意义的。

        #ln    -s    源文件    软链接

        在创建软链接时我们最好用绝对路径,软链接文件一般比较小(Byte级别的)。

        软链接也可以作用在目录上。

        如果软链接文件不存在了,软链接所指向的文件会变成红色闪烁状态

        这里我们将个小案例,假设有个服务,他的日志文件是 /boot/anli.log 服务在不停地运行,不断地向日志文件里写内容,但/boot 目录空间是

有限的,一旦写满的话就会出现问题,导致服务器系统故障。解决办法是 把 /boot/anli.log 先拷贝到空间比较大的 / 目录下,然后把之前的日志文

件删除,紧接着在原来目录下做一个软链接文件指向拷贝到 / 目录的日志文件。

2.22 硬链接文件

       硬连接指通过索引节点(i节点)来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。

在Linux中,多个文件名指向同一索引节点(i节点)是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接

到重要文件,以防止“误删”的功能。

       硬链接同样也 ln 命令来创建

        #ln    源文件    硬链接

       硬链接不能作用于目录

2.23-2.25 find命令

        我们常见的查找文件命令 which、whereis、locate、find。

        linux常用的快捷键:ctrl+l 清屏、ctrl+d 退出终端、ctrl+c 终止当前操作、ctrl+u向前删除、ctrl+f向后删除、ctrl+a光标到行首、ctrl+e光标到行最后

        find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,

则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

       相关参数

  • -amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
  • -atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
  • -cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
  • -ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
  • -depth:从指定目录下最深层的子目录开始查找;
  • -exec<执行指令>:假设find指令的回传值为True,就执行该指令;
  • -gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
  • -group<群组名称>:查找符合指定之群组名称的文件或目录;
  • -ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
  • -iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
  • -inum<inode编号>:查找符合指定的inode编号的文件或目录;
  • -ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
  • -links<连接数目>:查找符合指定的硬连接数目的文件或目录;
  • -iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
  • -maxdepth<目录层级>:设置最大目录层级;
  • -mindepth<目录层级>:设置最小目录层级;
  • -mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
  • -mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
  • -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • -size<文件大小>:查找符合指定的文件大小的文件;
  • -type<文件类型>:只寻找符合指定的文件类型的文件;
  • -uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
  • -version或——version:显示版本信息;
  • -o:多个参数或关系

    #find    路径    参数   

查找 /etc 目录下 以.conf结尾的文件(不加路径的话默认当前目录)

关于linux系统的时间戳

  • 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
  • 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
  • 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

stat命令 查看文件的具体信息

在/etc下查找一天以内访问过的文件,并且以 .conf 结尾的文件

-exec 参数

find 常用的参数有以下几个:-type、-name、-size、-atime、-mtime、-ctime、-exec、-inum、-o等。

2.26 文件名后缀

       基本上,Linux的文件是没有所谓的扩展名的,一个Linux文件能不能被执行,与他的第一栏的十个属性有关, 与档名根本一点关系也没有。这个观念跟Windows的情况不相同喔!在Windows底下, 能被执行的文件扩展名通常是 .com .exe .bat等等,而在Linux底下,只要你的权限当中具有x的话,例如[ -rwx-r-xr-x ] 即代表这个文件可以被执行。

       不过,可以被执行跟可以执行成功是不一样的~举例来说,在root家目录下的install.log 是一个纯文本档,如果经由修改权限成为 -rwxrwxrwx 后,这个文件能够真的执行成功吗? 当然不行~因为他的内容根本就没有可以执行的数据。所以说,这个x代表这个文件具有可执行的能力, 但是能不能执行成功,当然就得要看该文件的内容.

虽然如此,不过我们仍然希望可以藉由扩展名来了解该文件是什么东西,所以,通常我们还是会以适当的扩展名来表示该文件是什么种类的。底下有数种常用的扩展名:

        *.sh : 脚本或批处理文件 (scripts),因为批处理文件为使用shell写成的,所以扩展名就编成 .sh 

        *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不同的压缩软件,而取其相关的扩展名!

        *.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件。 .html 的文件可使用网页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算后的网页结果。

         基本上,Linux系统上的文件名真的只是让你了解该文件可能的用途而已,真正的执行与否仍然需要权限的规范才行。例如虽然有一个文件为可执行文件,如常见的/bin/ls这个显示文件属性的指令,不过,如果这个文件的权限被修改成无法执行时,那么ls就变成不能执行。

2.27 Linux和windows互传文件

        用yum install -y lrasz 来安装命令 sz、rz。

       # sz (发送文件到电脑)
       # rz (从电脑上传文件到linux服务端)

sz、rz 命令只能在xshell、securecrt上使用

转载于:https://my.oschina.net/u/3993922/blog/2250488

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值