17. # chattr 隐藏权限
1)# chattr +i, 文件或目录就不可以做任何更改包括添加内容 (# vi file name),更改时间,删除, 重命名,创建覆盖等等;同时“# chattr -i”消除i权限
2)#chattr +a, 只允许追加 (用“# >>”命令),不允许其他任何操作包括文件或目录内容更改,重命名,删除
注:加给目录加i权限后也不能对目录下子文件或子目录的更改,也不可删除,重命名移动或新建文件;但目录a权限允许在目录下新建文件但不可删除移动文件
3)用“# lsattr file name/directory name”可以用来查看是否有加隐藏权限(-i/-a);但用lsattr 查看目录时,其实是查看目录下面的子目录及文件,如想查看目录本身则可以加-d,变成# lsattr -d directory name
-R 追加的是目录及目录下的子目录子文件属性
18. # set_uid
1)当我们查看usr/bin/passwd文件的权限时, 可以发现如下
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
蓝色的s就为set_uid的权限,是指如果普通用户或所属组用户使用带有set_uid的命令,可以暂时拥有该命令所有者的权限,但前提是该文件为可执行的二进制文件(除文本文件)例如改密码,密码的文件在/etc/shadow/, 用ls -l查看文件时可以发现权限为000,非所有者的用户不可操作,但是用了set_uid权限之后,在普通用户修改密码时,就可以暂时的拥有root的权限。
2)设置set_uid使用#chmod u(user)+s filename即可; 也可以# chmod u=rwsx file name, 如果不加x权限,再查看文件权限时s就会变成S, 但其实不影响普通用户操作。
撤掉set_uid权限是则使用# chmod u-s file name
可以给目录设置set_uid权限,但意义不大
19. #set_gid
1)这个命令跟set_uid的功能相近,只是作用在所属组用户上,是所属组用户可以暂时拥有该命令所有者的权限(文件&目录)
# chmod g+s file name
当作用在文件时跟set_uid的用法近似
当作用的目录上时,创建子目录和子文件的所属组和该目录的所属组保持一致
20.stick_bit
主要作用在目录上
以/tmp/为例,当我们查看tmp目录的详细信息是发现如下details
drwxrwxrwt. 17 root root 4096 7月 18 14:31/tmp/
此时的“t”就是stick_bit权限,说明任何用户对此文件进行修改,但是不可删除,也叫防删除位,除root用户,其他用户无法删除
注:当普通用户要删除文件时,文件所在的目录的权限决定了文件是否可以删除
21. 软连接
类似windows的快捷方式, /lib64/
# ln -s original file_name target file_name for soft link, 来创建软链接文件,也适用于目录
注:做软链接尽量使用绝对路径
注:软链接的巧用,当文件空间不够时可以使用,先把原文件log1 copy到空间丰富的文件log 2中,删除原来文件,在用原文件的路径对文件1进行软链接 # ln -s log2 log1
22. 硬链接文件
只支持对文件做硬链接,不能跨分区,但可删除,硬链接文件和原文件share一个inode, 并且真正的文件内容存在inode上,硬链接文件可以用来做备份且不占空间:
1 删除一个,还有一个,相对来说安全,但靠硬链接备份文件,不合适。
2 硬链接本质上还是一个文件,所以你建立多个硬链接文件,空间占用还是一份。所以说,它可以节省空间。
命令为 #ln original file name target file name
23. # find,搜索命令
1)其他的搜索命令如下:
注:快捷键的使用
ctrl l -把光标定位在屏幕第一行
ctrl d-退出一个终端
ctrl c-撤销命令
ctrl u-删除前面内容
ctrl e-可以把光标移到命令最后
ctrl a-可以把光标移到命令最开始
2)# find的基本用法, “# find /directory_name/ -name "file-name"”, 如果用模糊搜索"file-name"位置写“*”,则可搜索出带关键字的全部目录和文件;如果要指定搜索目录或者文件,可以在命令“-name”的前面加“-type f(file)”、“-type d(directory)”, "-type"之后可以加任何文件类型 如“l/c/s/b文件”
3)# find ,常用的“-type/mtime/name/o”
# stat file_name 可以看出文件的具体信息,如下
文件:"666.txt"
大小:210 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:33575311硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2018-07-18 16:03:00.190164160 +0800 (atime)
最近更改:2018-07-18 16:02:52.334129636 +0800 (mtime)
针对于对文件内容的编辑改动,更改时间改变,ctime也会改变
最近改动:2018-07-18 16:06:21.073046944 +0800(ctime)
改动文件名,文件权限,大小,所属组等
创建时间:-(mtime)
注:# echo 加字符串 >> file_name,表明把字符串追加到了文件中
# find /directory_name/ -type f/d -a/c/mtime +-时间range(例如+1-一天之前;-1 - 一天之内)用这个命令就可以搜索出在某个目录下在一定时间范围内的被访问、更改、改动或创建的目录或文件,限定条件为并列关系;
“-o”表示或者,限定条件不是并列关系,是选择的关系,搜索结果满足其中之一限定即可
4)“# find / -inum ” 可以用来用inode number 来搜索硬链接文件
5)# find /tmp/ -type f -mmin -120 -exec ls -l {} \;
{}表示列举出来的文件
24. 文件名后缀
linux操作系统下的文件名后缀不如在Windows中严禁,并不是后缀是什么就可表示这个文件是什么文件类型并且可以自定义文件后缀
用# echo $LANG, 可以查看当前默认的系统语言,其实在一开始设置系统时,就已经设置的语言为UTF-8 (可以支持中文)
25. 在Xshell终端下实现linux与Windows的文件互传
1)输入# yum install -y lrzsz 进行安装软
2)linux的文件传到windows上,输入# sz file_name或文件路径,便可弹出一个浏览文件夹的对话框,选择想要保存的磁盘地址,确定之后就使得linux文件传到了Windows上
3)如果想要把Windows上得文件上传到linux上去时,输入# rz, 点击enter, 就出现了一个对话框显示Windows的文件,点击想要互传的文件,确定,就可以传到linux的当前目录