概述

在Linux系统中,根据系统管理的需要将用户账号分为不同的类型,其拥有的权限,担任角色也不同,主要包括超级用户、普通用户和程序用户。

1用户账号 超级用户:root用户是Linux系统中默认的超级用户账号,类似于windows系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。

普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。

程序用户:在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。

2组账号

基于某种特定联系将多个用户集合在一起,构成一个用户组,用于表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组。若该用户同时还包括在其他的组中,这个组称为该用户的附加组。

3UID和GID号

Linux系统中的每一个用户账号都有一个数字形式的身份标记,称为UID,UID作为区分用户的基本数据,原则上每个用户的UID号应该是唯一的。root用户账号的UID号为固定值0,而程序用户账号UID号默认为1~499,500~60000的UID号默认分配给普通用户使用。

与UID相类似,每一个组账号也有一个数字形式的身份标记,称为GID,root组账号的GID号为固定值0,而程序组账号的GID号默认为1~499,500~60000的GID号默认分配给普通组使用。

4用户账号文件

与用户账号相关的配置文件主要有两个,分别是/etc/passwd、/etc/shadow。前者用于保存用户名称、宿主目录、登录shell等基本信息,后者用于保存用户的密码、账号有效期等信息。两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用冒号“:”进行分隔。

1)passwd文件中的配置行格式

系统中所有用户的账号基本信息都保存在/etc/passwd文件中,该文件是文本文件,任何用户都可以读取文件中内容。


[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# tail -1 /etc/passwd
ftpadmin:x:502:503::/home/ftpadmin:/bin/bash
[root@localhost ~]#

在passwd 文件开头的部分,包括超级用户root及各程序用户的账号信息,系统中新增加的用户账号信息将保存到passwd文件的末尾。passwd文件的每一行美容中,包含了七个用冒号“:”分隔的配置字段。

第1字段:用户账号的名称。也是登录系统时使用的识别名称。

第2字段:经过加密的用户密码字串,或者密码占位符“x”。

第3字段:用户账号的UID号。

第4字段:所属基本组账号的GID号。

第5字段:用户全名。

第6字段:宿主目录,即该用户登录后所在的默认工作目录。

第7字段:登录shell等信息。

2)shadow文件中的配置行格式

shadow文件被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制。默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。


[root@localhost ~]# head -2 /etc/shadow
root:$1$zvbfAo4p$mg5k7oNqxBxzDyQYd.dB3/:17307:0:99999:7:::
bin:*:15980:0:99999:7:::
[root@localhost ~]# tail -1 /etc/shadow
ftpadmin:$6$xf828o4R$ApMz8RE4mV43E7JAsgr9d63B3jEapVqYBpSc7aPTkvcnL8lRGaJhTP.OVI2pq1kHJRGFdqMIvHpTLQgzGT0El0:17308:0:99999:7:::
[root@localhost ~]#

shadow文件的每一行内容中,包含了九个用冒号“:”分隔的配置字段。

第1字段:用户账号名称。

第2字段:使用MD5加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无需密码即可登录系统。

第3字段:上次修改密码的时间。

第4字段:密码的最短有效天数。默认为0,表示不进行限制。

第5字段:密码的最长有效天数。默认为99999,表示不进行限制。

第6字段:提前多少天警告用户口令将过期,默认为7.

第7字段:在密码过期之后多少天内禁用此用户。

第8字段:账号失效时间,默认为空号,表示账号永久可用。

第9字段:保留字段,目前没有特定用途。

5添加、删除、修改用户账号命令汇总

6查看目录和文件的属性

在Linux文件系统的安全模型中,为系统中的文件或目录赋予了两个属性:访问权限和文件所有者,简称为“权限”和“归属”。其中,访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用户账号)、属组(拥有该文件的组账号)。Linux系统根据文件或目录的访问权限,归属来对用户访问数据的过程进行控制。

使用带“-l”选项的ls命令时,将以长格式显示出文件或目录的详细信息,其中包括了该文件的权限和归属等参数。


[root@localhost ~]# ls -ld /etc /etc/passwd
drwxr-xr-x. 130 root root 12288 10月 19 16:03 /etc
-rw-r--r--    1 root root  1876 5月  22 2017 /etc/passwd
[root@localhost ~]#

/etc目录和/etc/passwd文件都属于root用户、root组;而第一个字段的数据表示该文件或目录的访问权限,“drwxr-xr-x”和“-rw-r--r--”权限字段由四部分组成。

第1个字符:表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、“-”(普通文件)、字母“|”(链接文件)等;

第2~4个字符:表示该文件的属主用户(user)对该文件的访问权限。

第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。

第8~10个字符:表示其他任何用户(Other)对该文件的访问权限。

权限字符r、w、x用于文件表示可读、可写、可执行。

r、w、x权限字符可分别表示为八进制数字4、2、1,表示一个权限组合时需要将数字进行累加;例如“rwx”采用累加数字形式表示成“7”,而“rwxr-xr-x”由三个权限段组成,因此表示为“755”。

chmod [ugoa...] [+-=] [rwx] 文件或目录...或者chmod nnn 文件或目录...

“ugoa”表示该权限设置所针对的用户类型。“u”代表文件属主,“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户。

“+-=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=”代表仅设置对应的权限。

“rwx”是权限的字符组合形式,也可以拆分使用;

chmod命令的“-R”选项递归修改指定目录下的所有子项的归属;

chown命令可以只设置属主和属组,也可以同时设置属主、属组。

chown 属主[:[属组]] 文件或目录...

同时设置属主、属组时,用户名和组名之间用冒号“:”进行分隔。如果只设置属组时,需使用“:组名”的形式;

如果只需要设置目录或文件的属主,直接以用户名表示归属即可,递归修改目录归属同样可以使用“-R”选项。