鸟哥的私房菜-文件与属性篇

了解文件属性之前先了解用户与用户组的概念。

一.用户与用户组

1.1 文件拥有者

文件拥有者可以看与修改文件的内容,也可以设置文件权限分享给其他人。

1.2 用户组

用户组的用户可以共享文件也可以拥有自己独立的空间。

扩展——

1.2.1 添加用户组

groupadd 选项 用户组

选项:

  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
实例:# groupadd group1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
实例:# groupadd -g 101 group2

此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

1.2.2 删除用户组

groupdel 用户组
实例:# groupdel group1

此命令从系统中删除组group1。

1.2.3 修改用户组

实例:groupmod 选项 用户组

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字。
实例1:# groupmod -g 102 group2

此命令将组group2的组标识号修改为102。

实例2:# groupmod –g 10000 -n group3 group2

此命令将组group2的标识号改为10000,组名修改为group3。

1.2.4 如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

$ newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

1.2.5 用户及用户组信息

账户相关信息命令:

/etc/passwd #账户信息
/etc/shadow #个人密码

1.3 其他人的概念

不是文件拥有者并且是该用户组的人统称为其他人。

二. 文件属性及权限

2.1 查看文件列表

以ls命令来了解文件属性

ls [选项] [目录名]

ls为list的缩写,即为列出列表的所有文件,选项可选

  • -a:列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录。
  • -al :长(long)。列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创建日期、文件是否是到系统其它地方的链接,以及链接的指向。
  • -aF : 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件。
  • -ar :逆向(reverse)。从后向前地列举目录中的内容。 
  • -aR : 递归(recursive)。该选项递归地列举所有目录(在当前目录之下)的内容。
  • -aS :大小(size)。按文件大小排序。
  1. 文件类型权限(第一个字符代表文件属性:[d]目录,[-]文件,[l]链接。接下来的字符以三个为一组,[r][w][x]分别代表读、写、可执行,注意:这三个权限位置不会变,如果没权限则为[-]减号。第一个组为文件拥有者具有的权限,第二组为与文件拥有者同一组用户的权限,第三组为非文件拥有者非本组的其他账号权限)。
  2. 链接数。
  3. 文件拥有者。
  4. 文件所属用户组。
  5. 文件大小(单位为kb,ls -lh,可显示大小,–block-size可指定单位)。
  6. 文件最后被修改的时间。
  7. 文件名。

2.2 修改文件属性与权限

  • chgrp:修改文件所属用户组。
  • chown:修改文件拥有者。
  • chomd [-R] xyz 文件或目录。

chmod:

-R:进行递归修改,连同子目录所有文件都会修改

读、写、可执行分别对应数字权限

  • r:4
  • w: 2
  • x:1
例:chmod -R 770 test 

代表给test文件拥有者、所属群组 读、写、可执行权限、其他人无任务权限