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.列表查看