十年运维系列之基础篇 - Linux
作者:曾林
联系:[email protected]
版权:文章未经同意请勿转载
一、引言
在Linux的安全模型中,一个用户可以拥有(own)文件和目录。当一个用户拥有一个文件或者目录时,它将对该文件或者目录的访问权拥有控制权。反过来,用户又归属于一个群组,该群组由一个或者多个用户组成,组中用户对文件和目录的访问权限由其所有者授予。除了可以授予群组访问权限之外,文件所有者也可以授予所有用户一些访问权限,在Linux术语中,所有用户是指整个世界。使用id命令可以获得用户身份标识的相关信息。
查看id命令的输出结果。在创建用户账户的时候,用户将被分配一个称为用户id(userid)或者uid的号码。为了符合人们的使用习惯,用户id和用户登录名一一映射。同时用户将被分配一个有效组id(primary group ID)或者称之为gid,而且该用户也可以归属于其他的群组。
那么这些信息从何而来呢?类似于Linux系统中的很多情况,这些信息来源于一系列的文本文件。用户账户定义在文件/etc/passwd中,用户组定义在文件/etc/group中。在创建用户账户和群组时,这些文件随着文件/etc/shadow的变动而修改,文件/etc/passwd中都定义了对应用户的登录名、uid、gid、账户的真实姓名、主目录以及登录shell信息。如果查看文件/etc/passwd和文件/etc/group的内容,那么将会发现除了普通用户账户的信息之外,文件中还有对应于超级用户(uid为0)和其他不同种类的系统用户的账户信息。
许多类Linux系统会把普通用户分配到一个公共的群组中(比如,users),然后现在的linux操作则是创建一个独一无二的,只有一个用户的群组,而且组名和用户的名字相同。这使得特定类型的权限分配变得更加容易。