2018.7.31课堂笔记

一.隐藏权限:

1.1 命令chattr (change attribute)的格式为:chattr [+-=] (选项) (文件或目录名),其中+代表增加,-代表减少,=代表设定.

常用选项:

a:增加该属性后,只能追加不能删除,非root用户不能设定该属性.

i:增加该属性后,文件不能删除,改名设定链接写入和新增数据.

示例命令如下:

i属性:

[root@localhost /]# mkdir wang 创建一个随意的目录
[root@localhost /]# chattr +i wang 给这个目录加上i属性
[root@localhost /]# touch wang/yuanke.txt 在这个目录下创建yuanke.txt文件
touch: 无法创建"wang/yuanke.txt": 权限不够 (创建失败由于加了i属性所以无法操作) 
[root@localhost /]# chattr -i wang (去除i属性)
[root@localhost /]# touch wang/yuanke.txt (去除i属性之后再创建文件)
[root@localhost /]# ls /wang (创建成功)
  yuanke.txt

 
root@localhost /]# chattr +i wang (再次添加i属性)                            

[root@localhost /]# rm -r /wang (尝试删除目录)
rm:是否进入目录"/wang"? y
rm:是否删除普通空文件 "/wang/yuanke.txt"?y
rm: 无法删除"/wang/yuanke.txt": 权限不够(即使在root用户下也是无法删除权限不够)
[root@localhost /]# chattr -i wang (去掉i属性)
[root@localhost /]# rm -r /wang (再次删除)
rm:是否进入目录"/wang"? y
rm:是否删除普通空文件 "/wang/yuanke.txt"?y
rm:是否删除目录 "/wang"?y
[root@localhost /]# ls /wang
ls: 无法访问/wang: 没有那个文件或目录 (删除成功)

 

a属性:

[root@localhost /]# mkdir wang (创建目录)
[root@localhost /]# touch wang/yuanke.txt (在wang目录下创建yuanke.txt)
[root@localhost /]# chattr +a wang (给目录加上a属性)
[root@localhost /]# rm wang/yuanke.txt
rm:是否删除普通空文件 "wang/yuanke.txt"?y
rm: 无法删除"wang/yuanke.txt": 不允许的操作 (删除失败)

1.12命令lsattr (list attribute),该命令用于读取文件或目录的特殊权限,使用格式为:lsattr(选项)(文件名目录名)

常用选项:

-a:连同隐藏文件一起列出

-R:连同子目录数据一同列出

-d:查看目录本身

示例命令:

[root@localhost /]# chattr +a wang/yuanke.txt
[root@localhost /]# lsattr yuanke.txt
[root@localhost /]# lsattr wang/yuanke.txt
-----a---------- wang/yuanke.txt
 

[root@localhost /]# lsattr -aR wang
---------------- wang/.
---------------- wang/..
-----a---------- wang/yuanke.txt
----i----------- wang/1.txt
---------------- wang/2.txt


 [root@localhost /]# lsattr -d /wang
---------------- /wang

 

二.特殊权限:

set_uid:针对于二进制可执行文件(可以用file查看)可以临时获得所有者的权限.

file命令的格式为:file (选项)(参数)

示例如下:    


[root@localhost /]# file /usr/bin/ls la
/usr/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]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
la:          cannot open (No such file or directory)
[root@localhost /]# file /usr/bin/ls cp
/usr/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]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
cp:          cannot open (No such file or directory)
[root@localhost /]# file /usr/bin/ls more
/usr/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]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
more:        cannot open (No such file or directory)

类似于以上说明的文件就是二进制可执行文件.

set_uid命令格式:chmod u+s (文件) chmod u-s(文件)

查看:

[root@localhost /]# which passwd (查找passwd路径)
/usr/bin/passwd
[root@localhost /]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
这里的s指的就是就是set_uid权限,可以让用户使用这个命令的时候临时获得所有者的权限.

set_gid:该权限可以作用在二进制可执行文件上或目录上,当作用在文件上时作用跟set_uid一样,它会使文件在可执行阶段具有文件所属组的权限。目录被设置这个权限后,任何用户在目录下创建的文件都具有和该目录所属组相同的组.

set_gid命令格式:chmod g+s (文件或目录) chmod g-s(文件或目录)

 

sticky_bit:可以理解为防删除位,设置后即使用户对目录具有写权限也不能删除其他用户的文件

 

sticky_bit命令格式为:chmod 0+t (目录)chmod 0-t (目录)

set_uid 4
set_gid 2
stick_bit 1
chmod u+s==chmod 4755

 

三.软链接与硬链接

软连接:类似于Windows下的快捷方式
用命令ls-l查看属性位l的文件就是链接文件。
做软链接尽可能使用绝对路径

软连接的命令格式:
ln -s (源文件)(目的文件)

我们来查看一个软链接:

[root@localhost /]# ls -l /bin
lrwxrwxrwx. 1 root root 7 7月  31 00:44 /bin -> usr/bin

软链接就是前面的/bin

示例如下:

[root@localhost ~]# touch ruanlianjie 创建测试用的文件
[root@localhost ~]# ln -s ruanlianjie ruanlianjie1 创建软连接
[root@localhost ~]# ls
anaconda-ks.cfg  ruanlianjie  ruanlianjie1 (创建成功)
[root@localhost ~]# ll ruanlianjie1
lrwxrwxrwx 1 root root 11 7月  31 01:48 ruanlianjie1 -> ruanlianjie (成功显示正常)
 

 

硬链接文件

概念:硬链接不支持对目录做硬链接,只支持对文件做。
即便是硬链接源地址被删除,也不受影响,相当于windows复制。
inode号如果相同有N个文件,也不会占用空间,因为数据都存在了inode里面。
文件可以做硬链接但是不能跨分区
命令如下 :ln (源地址)(目的地址)

示例如下:

[root@localhost ~]# touch ruanlianjie2 
[root@localhost ~]# ln ruanlianjie2 ruanlianjie3
[root@localhost ~]# ls -li
总用量 4
33644576 -rw-------. 1 root root 1116 7月 31 00:47 anaconda-ks.cfg
34586935 -rw-r--r--  1 root root    0 7月  31 01:45 ruanlianjie
34586936 lrwxrwxrwx  1 root root   11 7月  31 01:48 ruanlianjie1 -> ruanlianjie
34586937 -rw-r--r--  2 root root    0 7月  31 01:51 ruanlianjie2
34586937 -rw-r--r--  2 root root    07月  31 01:51 ruanlianjie3 
 

四.find命令:

find使用格式为:find (路径)(参数)

find命令通过指定查询的条件和索引,把相符的文件或目录列出来

-atime +n/-n 表示访问或执行文件大于或小于n天的文件

-ctime +n/-n 表示写入,更改inode属性的时间大于或小于n天的文件

-mtime +n/-n 表示写入时间大于或小于n天的文件

搜索文件命令还有which,whereis(不常用),locate
组合键解释:
Ctrl+a: 光标移动到命令最前;

Ctrl+e:光标移到命令最后面

Ctrl+L:清屏

Ctrl+u:删除光标前面所有的命令

Ctrl+d:退出一个终端

inode(索引点)用来存放档案及目录的基本信息,包括时间信息,文档名,所有者及所属组.

示例如下:

[root@localhost ~]# find /etc/ -name "sshd_config"
/etc/ssh/sshd_config
[root@localhost ~]# find /etc/ -name "sshd*"
/etc/systemd/system/multi-user.target.wants/sshd.service
/etc/sysconfig/sshd
/etc/ssh/sshd_config
/etc/pam.d/sshd
[root@localhost ~]# find /etc/ -type f -name "sshd*"
/etc/sysconfig/sshd
/etc/ssh/sshd_config
/etc/pam.d/sshd

-mtime:创建时间

-ctime:更改文件权限

-atime:最近访问,更改文件

修改文件权限是-ctime ;修改文件内容为-mtime,更改内容之后ctime一定会变;-atime表示访问这个文件的时间

[root@localhost ~]# stat wang.txt
  文件:"wang.txt"
  大小:0             块:0          IO 块:4096   普通空文件
设备:803h/2051d    Inode:34586938    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-07-3102:39:14.561934397 +0800
最近更改:2018-07-31 02:39:14.561934397 +0800
最近改动:2018-07-31 02:39:14.561934397 +0800
创建时间:-
[root@localhost ~]# find / / -type f -mtime -1 (文件太多节选)
/wang/yuanke.txt
/wang/1.txt
/wang/2.txt
 

find / -inum xxxx 查找硬链接.

当你想要查找最近几小时的时候可以使用命令 -min -分钟

当你想要列举出来的时候后面在加-exec ls -l {} \ ;

示例如下:

[root@localhost ~]# find /root/ -type f -mmin -120
/root/ruanlianjie
/root/ruanlianjie2
/root/ruanlianjie3
/root/wang.txt
[root@localhost ~]# find /root/ -type f -mmin -120 -exec ls -l {} \;
-rw-r--r-- 1 root root 0 7月  31 01:45 /root/ruanlianjie
-rw-r--r-- 2 root root 0 7月  31 01:51 /root/ruanlianjie2
-rw-r--r-- 2 root root 0 7月  31 01:51 /root/ruanlianjie3
-rw-r--r-- 1 root root 0 7月 31 02:39 /root/wang.txt

后面还可以跟大小 -size xxk

示图如下:

[root@localhost ~]# find /root/ -size -10k -mmin -120 -exec ls -l {} \;
总用量 4
-rw-------. 1 root root 1116 7月  3100:47 anaconda-ks.cfg
-rw-r--r--  1 root root    0 7月  31 01:45 ruanlianjie
lrwxrwxrwx  1 root root   11 7月  31 01:48 ruanlianjie1 -> ruanlianjie
-rw-r--r--  2 root root    0 7月  31 01:51 ruanlianjie2
-rw-r--r--  2 root root    0 7月  31 01:51 ruanlianjie3
-rw-r--r--  1 root root    0 7月  31 02:39 wang.txt
-rw-r--r-- 1 root root 0 7月  31 01:45 /root/ruanlianjie
lrwxrwxrwx 1 root root 11 7月 31 01:48 /root/ruanlianjie1 -> ruanlianjie
-rw-r--r-- 2 root root 0 7月  31 01:51 /root/ruanlianjie2
-rw-r--r-- 2 root root 07月  31 01:51 /root/ruanlianjie3
-rw-r--r-- 1 root root 0 7月  31 02:39 /root/wang.txt

五.文件名后缀:

文件名后缀不太严谨,后缀名可自定义.

在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义

转载于:https://my.oschina.net/u/3856250/blog/1921394

你可能感兴趣的:(操作系统,运维)