Linux——/etc/passwd文件(管理用户和组)

时间:2024-10-10 12:09:16

         Linux系统是多用户多任务的分时操作系统,要能做到不同的用户能同时访问不同的文件,允

许不同的用户从本地登录或远程登录,这时用户必须拥有一个合法的账号,Linux系统正是通过账

号来实现对用户的访问进行控制的,因此,需要对用户与组进行有效的管理。用户的账号一方面能

帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用

户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和用户口令。用户

在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录。

           Linux下的用户可以分为三类:超级用户、系统用户和普通用户超级用户的用户名root,

它具有一切权限,只有进行系统维护(例如建立用户等)或其他必要情形下才用超级用户登录,以避

免系统出现安全问题。系统用户是Linux系统正常工作所必需的内建的用户,主要是为了满足相应

的系统进程对文件属主的要求而建立的,系统用户不能用来登录,如bin、daemon、adm、lp等用

户。

        

        添加账号就是在系统中创建一个新的账号,然后为新账号分配用户的ID、用户所属的组、主

目录和登录的shell等资源。需要注意的是,新增加的账号是被锁定的,不能使用,只有为其设置密

码后才可以使用该账号。 

       

         Linux学习到用户管理,其实我们发现Linux的灵活与安全性事通过一个个的配置文件来完成

的。用户管理中非常重要的三个配置文件,存放账号的文件/etc/passwd、存放密码的文

件/etc/shadow、存放用户组信息的文件/etc/group。

        /etc/passwd是系统识别用户的一个文件,做个不恰当的比喻,/etc/passwd是一个花名册,系

统所有的用户都在这里有登录记载;当我们以J这个账号登录时,系统首先会查阅/etc/passwd文

件,看是否有J这个账号,然后确定J的UID,通过UID来确认用户和身份,如果存在则读

取/etc/shadow影子文件中所对应的J的密码;如果密码核实无误则登录系统,读取用户的配置文

件。

        Linux系统中的每个用户都在/etc/passwd文件中有一个与之相对应的记录行,记录了该用户的

一些基本操作。/etc/passwd文件对任何用户都是可读的。

使用vim /etc/passw

        在/etc/passwd中,每一行都表示的是一个用户的信息;一行有7个部分;每个部分用“:”号分割。

        说明:/etc/passwd 文件结构

        这个文件的构造是这样的:每一行都代表一个账号,有几行就代表有几个账号在你的系统

中。 不过需要特别留意的是,里头很多账号本来就是系统正常运作所必须要的,我们可以简称他

为系统账号,例如 bin, daemon, adm, nobody 等等,这些账号请不要随意的删除他。

        第一字段:用户名

        用户名的字符串一般不超过8个字符,且由大写字母、小写字母和数字组成,用户名中不能包

含特殊字符,如“:”,因为冒号在/etc/passwd文件中代表分隔符,并且不建议使用“.”、“-”和“+”。

        第二字段:口令(密码)

        第三字段:UID

        也就是用户ID,是标示用户的一个整数,一般情况下与用户名是一一对应的。

 

        如果几个用户名对应同一个UID,Linux内核会将其解析成同一个账号,但他们可以拥有不同

的口令,登录之后使用不同的主目录和登录不同的Shell,也就是说用户名是给人看的,Linux内核

真正识别的是UID。 

        通常UID的取值范围是0-65535,新的版本中账号最多可以达到4294967295个,至于这个最

大值可以在/etc/查到。

         

 id 范围 该 ID 使用者特性

        0(系统管理员)

        当 UID 是 0 时,代表这个账号是系统管理员。所以当你要让其他的账号名称也具有 root 的权限

时,将该账号的 UID 改为 0 即可。 这也就是说,一部系统上面的系统管理员不见得只有 root。不

过,很不建议有多个账号的 UID 是 0 。容易让系统管理员混乱。

        1~999(系统账号)

        保留给系统使用的 ID,其实除了 0 之外,其他的 UID 权限与特性并没有不一样。

        默认 1000 以下的数字让给系统作为保留账号只是一个习惯。

        由于系统上面启动的网络服务或背景服务希望使用较小的权限去运作,因此不希望使用 root

的身份去执行这些服务, 所以我们就得要提供这些运作中程序的拥有者账号才行。这些系统账号

通常是不可登入的。

根据系统账号的由来,通常这类账号又约略被区分为两种:

        1~200:由 distributions 自行建立的系统账号;

        201~999:若用户有系统账号需求时,可以使用的账号 UID。

        1000~60000(可登入账号):给一般使用者用的。

        第四字段:GID

记录用户所属用户组的ID简称GID;GID对应着/etc/group中的一条记录。    

        第五字段:用户名全称(用户信息说明)

这是可选的,可以不设置。

        第六字段:主文件夹(家目录)

        用户的主目录所在位置;root账号的主文件夹是/root,所以当root登录之后就会立刻登录

到/root目录。如果你有个账号的使用空间特别大,你想要将该账号的主文件夹移动到其他的硬盘,

可以修改这个字段,也就是主文件夹。

fairy这个用户的主文件夹是:/home/fairy

        第七字段:用户所用SHELL的类型

        用户登录之后需要启动一个进程,负责将用户的操作传递给内核,这个进程就是用户登录到

系统后的命令解释器或命令翻译程序,也就是shell,shell是用户与Linux系统之间交互的接口。

fairy和root都用的是bash;所以设置为/bin/bash;