网络服务器配置与管理(第3版)
上QQ阅读APP看书,第一时间看更新

2.5 工作任务6——Linux用户及权限管理

工作任务6

2.5.1 任务目的

Linux操作系统用户也是一些服务的默认本地用户,如FTP、Postfix等服务。新星公司决定搭建属于自己的Linux服务器,信息中心决策层认识到,对于初次接触服务器技术的管理员来说,必须熟练掌握Linux用户及权限的管理技能。因此公司决定开展培训,让管理员掌握Linux用户及用户组管理、权限管理的操作技能。

2.5.2 任务规划

新星公司开展Linux用户及用户组管理、权限管理的培训,培训的内容包括认识CentOS 7的用户文件、用户组文件,掌握用户及用户组管理工作技能和权限管理工作技能。

2.5.3 Linux用户文件

Linux用户文件包括/etc/passwd、/etc/shadow两个文件。

1./etc/passwd用户账户文件

Linux用户被划分为3类:根用户、系统用户和普通用户。根用户(root用户)也称为超级用户,root用户名不允许修改。root用户是系统的所有者,对系统拥有最高的权限,可以对所有文件、目录进行访问,可以执行系统中的所有程序。系统用户是Linux系统正常工作所必需的内建用户。普通用户是为了让使用者能够使用Linux系统资源而建立的,它的权限由系统管理员规定。

在CentOS 7操作系统中,每一个用户都有一个唯一的身份标识,称为用户ID(UID)。root用户的UID为0,系统用户的UID介于1和999之间,普通用户的UID大于或等于1000。

Linux系统所有用户的信息保存在/etc/passwd文件中,该文件中每个用户占用一行,每行有7个字段,各字段之间用“:”隔开。其格式如下。

username:用户名,是用户所在系统的标识,通常长度不超过8个字符,由字母、数字、下画线或句点组成。

password:密码,该字段存放加密后的用户密码,通常用一个特殊字符“x”表示,真正的密码已转移到/etc/shadow文件中。

UID:用户标识号,UID是系统中的唯一标识号,必须是整数,通常和用户名一一对应。

GID:用户组标识号,该字段记录用户所属的基本用户组。

userinfo:个人信息,该字段记录用户的真实姓名、电话、地址和邮编等个人信息,各项之间用“,”分隔。该字段内容可以为空。

home:用户属主目录,该目录是用户登录系统后的默认目录,普通用户的属主目录是/home目录下的同名目录,root用户的属主目录为/root。

shell:用户以文本方式登录系统后启动的shell。

2./etc/shadow用户密码文件

操作系统将用户的口令加密之后放在另一个文件/etc/shadow中,并且对该文件设置严格的权限,只有root用户可以读取该文件。在/etc/shadow文件中,每个用户密码占用一行,每行有9个字段,各字段之间用“:”分隔。其格式如下。

username:用户的登录名。

encypted password:已加密的用户口令(即密码)。

number of days:从1970年1月1日到上次修改密码的天数。

minimum password life:两次修改密码之间至少要经过的天数。

maximum password life:密码有效期的最大天数,如果是99999,则表示密码永不过期。

warning period:在密码失效前,提醒用户密码即将失效的天数。

disable account:密码过期之后,停用该账户的天数。

account expiration:账户失效、禁止登录的时间。

reserved:该字段暂未使用,系统保留。

2.5.4 Linux用户管理命令

用户管理主要包括添加新用户、修改用户密码和删除用户等操作。

1.添加新用户

useradd命令用于创建新用户,只有超级用户root才能使用此命令。使用useradd命令创建用户后,应利用passwd命令为新用户设置密码。例如,添加用户bob、mary。

2.修改用户密码

通过passwd命令可以完成为新用户设置密码。例如,为刚才创建的用户设置密码。

修改用户的密码需要两次输入以进行确认。密码是保证系统安全的一个重要措施,在设置密码时,不要使用过于简单的密码。Linux中输入密码的时候,没有任何字符提示,这有别于Windows系统有“*”或其他符号提示。

3.删除用户

userdel命令可删除用户,只有超级用户root才能使用此命令。例如,删除用户bob、mary。

2.5.5 Linux用户组文件

Linux用户组文件是/etc/group文件。用户组的信息保存在/etc/group文件中,所有用户都可读取该文件,该文件存储着用户组的相关信息。在/etc/group文件中,每个组占用一行,每行有4个字段,各字段之间用“:”分隔。其格式如下。

组名:用户组在系统中的标识。

组密码:用户组的密码,由于安全原因,相应内容已转到gshadow文件中,在此用“x”表示。一般不设置组密码。

用户组标识(GID):组ID,其数值在系统内必须唯一。

组成员列表:组内的成员,多个成员之间用“,”分隔。

2.5.6 Linux用户组管理

用户组的管理主要包括用户组的添加、修改和删除等操作。这些操作与系统中的/etc/group文件密切相关。

1.添加用户组

groupadd命令用于添加新用户组。其命令格式如下。

例如,添加一个新的用户组student。

用户组添加成功后,该组的信息将保存在/etc/group文件中。

2.删除用户组

groupdel命令用于删除用户组。其命令格式如下。

例如,删除用户组student。

3.修改组成员

gpasswd命令用于修改组内成员。其命令格式如下。

其中,选项“-a”实现向组内添加用户,选项“-d”实现从组中删除用户。用户必须是系统中已经存在的,若用户不存在,必须先用useradd命令添加。组名也必须是已经存在的,若组不存在,必须先用groupadd命令添加。

1)将用户mary、bob添加到组student中。

2)将用户bob从组student中删除。

需要指出的是,Linux系统在添加用户的时候,会自动生成一个同名用户组。

2.5.7 Linux权限管理

Linux的文件或目录被一个用户拥有时,这个用户称为该文件的所有者,同时该文件还被指定的用户组拥有,这个用户组称为文件所属组。文件的权限由权限标志来决定,权限标志决定了文件的所有者、文件的所属组、其他用户对文件访问的权限。

1.使用ls命令查看目录或文件的权限

使用ls命令加“-l”选项(或使用ll命令),可以查看目录或文件的参数。

普通文件在文本界面下用白色表示,目录文件用蓝色表示。

第一列的第一个字符表示文件的类型,“-”表示普通文件,“d”表示目录,“l”表示链接文件。第2~10个字符表示文件或目录的权限,这9个字符每3个一组。第一组表示目录或文件所有者的权限,r表示读权限、w表示写权限、x表示执行权限、-表示没有权限;第二组表示所有者同组的用户权限;第三组表示其他用户的权限。

第三列表示文件的所有者,第四列表示文件所属的组。

2.chown命令

Linux为每个文件都分配了一个文件所有者,称为文件主,对文件的控制取决于文件主或root用户。文件的所有关系是可以改变的,chown命令用来改变某个文件或目录的所有权。chown命令的格式如下。

“用户”可以是用户名或用户UID,“组”可以是组名或GID,“文件名”是以空格分隔的文件列表,可以用通配符标识文件名。“:”与组名之间没有空格。例如:

3.文字表示法修改权限

Linux系统中的每个文件和目录都有访问权限,用它来确定谁可以通过何种方式对文件或目录进行访问与操作。访问权限分为3种不同类型的用户:文件所有者(u)、同组用户(g)、可以访问系统的其他用户(o)。

访问权限规定了3种访问文件或目录的方式:读(r)、写(w)、执行(x)。

chmod命令用于改变文件或目录的访问权限,用户可用该命令控制文件或目录的访问权限。只有文件主或root用户才有权用chmod命令改变文件或目录的访问权限。chmod命令的格式如下。

其中,u表示文件所有者、g表示同组用户、o表示其他用户、a表示所有用户,+表示增加权限、-表示减掉权限、=表示赋予权限。例如:

4.数字表示法修改权限

指定文件的权限还有一种更方便、更实用的方法,称为数字表示法,也就是用0~7这8个数字来表示文件的权限。在Linux中,和一个文件相关的有3种类型的用户:u、g、o。而每一类用户又有3种访问权限:r、w、x。把具体的访问权限用二进制数来表示,就可以得到每一类用户的权限的数字化表示形式。

如果文件text的权限是“rw-r--r--”,分别表示了u、g、o用户的权限。其中,所有者权限是“rw-”,同组用户的权限是“r--”,其他用户的权限是“r--”。可以将r、w、x看成二进制数,如果有,则用1表示,没有则用0表示,那么“rw-r--r--”可以表示成“110 100 100”。这一串二进制数中每3位数一组,共3组,分别表示了3类用户的权限。将二进制数中每3位一组转换为十进制数,就得到“644”。那么文件text的权限用数字形式表示就是644。

更简单的表示方法是将r、w、x权限分别用4、2、1来表示,没有权限则是0,则上述示例中每类用户的权限相加也会得到文件text的权限为644。

用数字来表示文件的权限是非常方便的,特别是在命令的书写中。在上面的例子中,假如要修改文件text的权限为“rw-rw-r--”,即将文件权限设置为664,则可以用以下命令来修改。

Linux系统中,文件的默认最高权限为666,目录的默认最高权限为777。

2.5.8 拓展与提高

工作任务6拓展与提高

下面通过一个综合案例来说明Linux用户管理、权限管理。要求:以root账户登录系统,新建jinan用户、city用户组,将jinan用户添加到city用户组;新建/root/sdcet文件,设置/root/sdcet文件的所有者为jinan、属组为city;设置/root/sdcet文件的权限为jinan用户可读、写、执行,city用户组可读、写,其他成员可读、写。

1.用户及用户组设置

2.更改文件所有者

3.更改文件权限

4.列表查看