特殊权限set_uid、set_gid、stick_bit、软链接、硬链接

特殊权限set_uid:作用在属主

//  1.s权限位表示set_uid,作用在可执行的二进制文件,使普通用户临时获得root权限
[root@yolks ~]# which passwd
/usr/bin/passwd
[root@yolks ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 '/usr/bin/passwd'
rw's'r-xr-x 

//  2.若给不可执行的文件加s权限,则对应位会变成S
[root@yolks ~]# ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117656 Nov  6  2016 /usr/bin/ls
[root@yolks ~]# chmod u-x /usr/bin/ls
[root@yolks ~]# ls -l /usr/bin/ls
-rw-r-xr-x. 1 root root 117656 Nov  6  2016 /usr/bin/ls
[root@yolks ~]# chmod u+s /usr/bin/ls
[root@yolks ~]# ls -l /usr/bin/ls
-rw'S'r-xr-x. 1 root root 117656 Nov  6  2016 /usr/bin/ls


// 1. 添加s权限
    chmod u+s filename
// 2. 去除s权限
    chmod u-s filename

特殊权限set_gid:作用在属组

// 1.作用在文件上表现为属组改变,在目录上则子目录也会继承属组
[root@yolks ~]# chmod g+s /usr/bin/ls
[root@yolks ~]# ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 Nov  6  2016 /usr/bin/ls

特殊权限stick_bit(防删除位)

// 此权限用来防止其他用户修改或删除自己创建的文件,只有创建者拥有以上权限
[root@yolks ~]# ls -ld /tmp/
drwxrwxrwt. 13 root root 4096 Jun  8 03:18 /tmp/

文件搜索

which查找可执行文件的绝对路径

只能查询PATH环境变量中出现的路径下的可执行文件

//   查询可执行命令的绝对路径
[root@pan-128 4_6]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls

whereis 查找文件

通过预先生成的一个文件列表库查找

  • whereis [-bms] [文件名称]
    • b : 只查找二进制文件
    • m: 只查找帮助文件(在man目录下的文件)
    • s : 只查找源代码文件
[root@pan-128 4_6]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

locate查找

  • 安装
yum install  -y  mlocate
  • 生成或更新文件列表库

注意:服务器正在运行时,增大服务器压力。不适合精准搜索

updatedb

find查询

用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

使用场景:

  • 查找文件
  • 根据条件删除一些日志文件等。

常用快捷键:

  • ctrl l 清屏,光标定位首行
  • ctrl d 相当于执行exit;logout;
  • ctrl d 行内有内容时一次删一个后面的字符
  • ctrl c 强制中断执行
  • ctrl u 清除剪切光标之前的内容
  • ctrl k 清除剪切光标及光标之后的内容
  • ctrl a||← 光标行首
  • ctrl e||→ 光标行尾

find使用:

1、根据名字查找
find 路径 -name “文件名字 ”或“使用通配符 * ”(需加上)    只知道名字
例:
find /etc/ -name "sshd_config"
find /etc/ -name "sshd*"
2、根据文件类型查找
find 路径 -type 文件类型 = d(目录) 、f(文件)、l(软链接文件)、s、c(字符串设备文件)、b(块设备文件)-name
例:
find /etc/ -type d -name "sshd_config"
find /etc/ -type f -name "sshd*"
3、根据时间查找
 -mtime(文件创建时间或更改时间)、-atime、-ctime +10、(默认单位为天)-mmin +_5 大于5分钟小于5分钟
find使用方法非常广,可以查天,年,月,日,分 还可以按列表形式显示
-o 或者什么
例:
find / -type f -mtime -1
查找,根目录下, f 类型,一天以内mtime有变动的文件(+1:当天以外,-1:当天)
find / -type f -mtime -1 -name "*.conf"
查找,根目录下, f 类型,一天以内mtime有变动的,且文件名以conf结尾的文件
find / -type f -mmin -60 -name "*.conf"
查找,根目录下, f 类型,小于60分钟内改动过,且文件名以conf结尾的文件
find / -type f -o -mtime -1 -o -name "*.conf"
查找,根目录下, f 类型,或者一天以内mtime有变动的,或者文件名以conf结尾的文件
4、查找硬链接
-inum 查找inode号
例:
find / -inum 33583395
查找,根目录下,inode号为33583395的文件
5、查找到文件后,直接显示出结果
-exec 将查找到的文件进行进一步操作
; 做一个循环
例:
find / -type f -mmin -60 -exec ls -l {} ;
查找,根目录下, f 类型,小于60分钟内改动过,把查找到的结果显示出来
find / -type f -mmin -60 -exec mv {} {}.bak ;
查找,根目录下, f 类型,小于60分钟内改动过,把查找的结果更改为以bak结尾的文件
6、根据文件大小查找
-size 可以查看 k(文件大小为k),M(文件大小为兆)
例:
find / -type f -size -10k -exec ls -l {} ;
查找,根目录下, f 类型,小于10k的文件,把查找到的结果显示出来
stat 查看文件的具体信息
stat 2.txt
三个时间属性:
Access time 为最近访问时间
Modify time 为最近创建或更改时间 (更改内容会改变时间)
Change time 为更改文件,更改权限,更改属组,属主时间(更改文件大小,也会改变)
如果只想找到当前目录下(不要子目录以及子目录的子目录)的文件或目录符合条件的需要加什么选项?
 -max depth 1

文件后缀名

  1. 扩展名类型 基本上,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就变成不能执行。 上述的这种问题最常发生在文件传送的过程中。例如你在网络上下载一个可执行文件,但是偏偏在你的 Linux系统中就是无法执行!呵呵!那么就是可能文件的属性被改变了。不要怀疑,从网络上传送到你的 Linux系统中,文件的属性与权限确实是会被改变的。
  2. Linux文件名长度限制: 在Linux底下,使用预设的Ext2/Ext3文件系统时,针对文件名长度限制为: 单一文件或目录的最大容许文件名为 255 个字符 包含完整路径名称及目录 (/) 之完整档名为 4096 个字符 是相当长的档名!我们希望Linux的文件名可以一看就知道该文件在干嘛的, 所以档名通常是很长很长。
  3. Linux文件名的字符的限制: 由于Linux在文字接口下的一些指令操作关系,一般来说,你在设定Linux底下的文件名时, 最好可以避免一些特殊字符比较好!例如底下这些:
  • ? > < ; & ! [ ] | \ ' " ` ( ) { } 因为这些符号在文字接口下,是有特殊意义的。另外,文件名的开头为小数点“.”时, 代表这个文件为隐藏文件!同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件档名的开头以 - 或 + 来命名。

链接文件

软链接文件

  • 优点:节省空间,方便使用;
  • 注意:
    • 尽量使用绝对路径;
    • 删除源,快捷也没用
[root@yolks ~]# ln -s /tmp/data /root/git
[root@yolks ~]# ls -l !$
ls -l /root/git
lrwxrwxrwx 1 root root 9 Jun  8 22:15 /root/git -> /tmp/data

硬链接文件

  • 特性:创建文件和其他文件inode号一样,称作相互硬链接
  • 注意: - 删除其中一个其他不受影响 - 不可对目录做硬链接 - 不可跨分区
[root@yolks ~]# ln 123.txt 123_head.txt
[root@yolks ~]# ls -l
total 4
-rw-r--r-- 2 root root    0 Jun  8 22:31 123_head.txt
-rw-r--r-- 2 root root    0 Jun  8 22:31 123.txt
lrwxrwxrwx 1 root root    9 Jun  8 22:15 git -> /tmp/data
drwxr-xr-x 2 root root 4096 Jun  6 21:43 shipan
[root@yolks ~]# ls -i
917527 123_head.txt  917524 git
917527 123.txt       917525 shipan

猜你喜欢

转载自my.oschina.net/yolks/blog/1824876