Shell 学习
一:文件安全与权限
1、文件大小和簇
[root@controller temp]# touch temp
[root@controller temp]# ll
total 4
-rw-r--r-- 1 root root 1834 Nov 2 11:48 passwd
-rw-r--r-- 1 root root 0 Nov 2 11:49 temp
譬如说前面说的 total 4 是如何计算出来:
首先我们要先了解你所用的文件系统的IO BLOCK(中文叫作簇)为多少,在你所使用的这个文件系统的IO BLOCK大小是4096 Bytes。
他意义是文件系统最小的读写及分配单位,每次读写操作你都不能小于这个尺寸。即使你的文件是只有一个字节。而且文件在硬盘上的存储也是以这个为单位,就是说如果文件尺寸小于这个值,那么它在磁盘上占用的空间就是4096字节。
占用空间的具体算法是:(进一(文件尺寸/4096))×4096。根据这个你就可以计算出你所列举的例子中的文件的空间使用状况:1834除以4096,大约等于0.27,进一法取得为1,就是说文件在磁盘上占用了1个BLOCk,每个BLOCK为4K,所以这两个文件占用的空间就是4K。
这个规则也适合于目录,不过不会出现为0的目录,即使是空目录
[root@controller temp]# cp /etc/httpd/conf/httpd.conf .
[root@controller temp]# ls
httpd.conf passwd temp
[root@controller temp]# ll
total 16
-rw-r--r-- 1 root root 11744 Nov 2 11:52 httpd.conf
-rw-r--r-- 1 root root 1834 Nov 2 11:48 passwd
-rw-r--r-- 1 root root 0 Nov 2 11:49 temp
httpd.conf文件 大小为11744字节 换算成簇 11744/4096 进一 为3 所以total 大小为 3x4K+4=16
2、文件权限
-rw-r--r-- :这是该文件的权限位。
第一个横杠:指定文件类型,表示该文件是一个普通文件。(所创建的文件绝大多数都是普通文件或符号链接文件)。
- d 目录。
- l 符号链接(指向另一个文件)。
- s 套接字文件。
- b 块设备文件。
- c 字符设备文件。
- p 命名管道文件。
- - 普通文件,或者更准确地说,不属于以上几种类型的文件。
除去最前面的横杠,一共是9个字符,他们分别对应9个权限位。通过这些权限位,可以设定用户对文件的访问权限。对这两个文件的精确解释是:
- rw-:前三位,文件属主可读、写
- r--:中间三位,组用户可读
- r--:最后三位,其他用户只可读
文件的权限位中中每一组字符中含有三个权限位:
- r 读权限
- w 写/更改权限
- x 执行该脚本或程序的权限
chmod命令的一般格式为:
chmod [who] operator [permission] filename
who的选项
- u 文件属主权限。
- g 属组用户权限。
- o 其他用户权限。
- a 所有用户(文件属主、属组用户及其他用户)。
operator选项
- + 增加权限。
- - 取消权限。
- = 设定权限。