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-- :这是该文件的权限位。

第一个横杠:指定文件类型,表示该文件是一个普通文件。(所创建的文件绝大多数都是普通文件或符号链接文件)。

  1. d 目录。
  2. l 符号链接(指向另一个文件)。
  3. s 套接字文件。
  4. b 块设备文件。
  5. c 字符设备文件。
  6. p 命名管道文件。
  7. - 普通文件,或者更准确地说,不属于以上几种类型的文件。



除去最前面的横杠,一共是9个字符,他们分别对应9个权限位。通过这些权限位,可以设定用户对文件的访问权限。对这两个文件的精确解释是:

  1. rw-:前三位,文件属主可读、写
  2. r--:中间三位,组用户可读
  3. r--:最后三位,其他用户只可读

文件的权限位中中每一组字符中含有三个权限位:

  1. r 读权限
  2. w 写/更改权限
  3. x 执行该脚本或程序的权限

chmod命令的一般格式为:

chmod [who] operator [permission] filename

who的选项

  1. u 文件属主权限。
  2. g 属组用户权限。
  3. o 其他用户权限。
  4. a 所有用户(文件属主、属组用户及其他用户)。

operator选项

  1. + 增加权限。
  2. - 取消权限。
  3. = 设定权限。
原文地址:https://www.cnblogs.com/blogscc/p/7771562.html