第四章管理用户和文件权限.docx
《第四章管理用户和文件权限.docx》由会员分享,可在线阅读,更多相关《第四章管理用户和文件权限.docx(8页珍藏版)》请在冰豆网上搜索。
第四章管理用户和文件权限
第四章:
管理用户和文件权限
单词:
Identify:
确定Owner:
所有者Change:
更改 Ownership:
所有权 Modify:
修改 Daemon:
后台程序 Mode:
模式 Sticky:
粘的 Shadow:
阴影 Finger:
手指、查找器
管理用户和组账号
一、用户账号
超级用户:
root用户是Linux系统中默认的超级用户账号,对本机拥有至高无上的完全权限。
普通用户:
普通用户账号需要由root用户或其他管理员用户创建,拥有权限受到一定限制,一般只在用户自己的宿主目录下有完全权限。
程序用户:
在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。
二、组账号
基于某种特定联系将多个用户集合在一起,即构成一个用户组,用于表示该组内所有用户的账号称为组账号。
每一个用户账号至少属于一个组,这个组称为基本组(或私有组);如果该用户同时包括在其他组中,则这些组称为该用户的附加组(或公共组)。
三、UID和GID号
Linux系统中每一个用户账号都有一个数字形式的身份标记,称为UID(UserIdentity,用户标识号),对于系统核心来说,UID作为区分用户的基本依据,原则上每个用户的UID号应该是唯一的。
root用户账号的UID号为固定值0,而程序用户账号的UID号默认在1~499之间,500~60000的UID号默认分配给普通用户账号使用。
与UID类似,每一个组账号也有一个数字形式的身份标记,称为GID(GroupIdentity,组标识号)。
root组账号的GID号为固定值0,而程序组账号的GID号默认在1~499之间,普通组账号使用的GID号默认为500~60000。
用户账号管理
1.用户账号文件:
与用户账号相关的配置文件主要有两个,分别是/etc/passwd、/etc/shadow。
前者用于保存用户名称、宿主目录、登录Shell等基本信息,后者用于保存用户的密码、账号有效期等信息。
这两个配置文件中,每一行对应一个用户账户,不同的配置项之间用":
"号分隔。
passwd文件中的配置行格式
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户能够修改。
新增用户保存到passwd文件的末尾,每一行的内容包含了七个用冒号分割的配置字段。
从左到右各配置字段的含义如下所述。
第一字段:
用户账号的名称,也是登录系统时使用的名称。
第二字段:
密码占位符“X”。
第三字段:
用户账号的UID号。
第四字段:
所属基本组账号的GID号。
第五字段:
用户全名,可填写与用户相关的说明信息。
第六字段:
宿主目录,即该用户登陆后所在的默认工作目录。
第七字段:
登录Shell等信息,用户完成登录后使用的Shell。
shadow文件中的配置行格式
shadow文件又被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该严格限制。
默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件内容。
每一行的内容包含了九个用冒号分割的配置字段,从左到右个配置字段的含义如下所述。
第一字段:
用户账号名称
第二字段:
使用MD5加密的密码字串信息,当为"*"或"!
!
"时表示此用户不能登录到系统。
若该字段为空,则该用户无需密码即可登录到系统。
第三字段:
上次修改面膜时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数。
第四字段:
密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。
默认值为0,表示不进行限制。
第五字段:
密码最长有效天数,自本次修改密码后,进过该天数必须再次修改密码。
默认值为99999,表示不进行限制。
第六字段:
提前多少天警告用户口令将过期,默认值为7。
第七字段:
在密码过期之后多少天禁用此用户。
第八字段:
账号失效时间,此字段指定了用户作废的天数,默认值为空,表示账号永久可用。
第九字段:
保留字段,目前没有特定的用途。
useradd命令——添加用户账号
命令格式:
useradd[选项]用户名
-u:
指定用户的UID号,要求该UID号码未被其他用户使用。
-d:
指定用户的宿主目录位置。
-e:
指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
-g:
指定用户的基本组名(或使用GID号)。
-G:
指定用户的附加组名(或使用GID号)。
-M:
不建立使用者目录,即使/etc/login.defs系统档设定要建立使用者目录。
-s:
指定用户的登录Shell。
useradd命令在添加用户账号的过程中主要完成以下几项任务
1.在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录。
2.若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户同名的宿主目录,并在该目录中建立用户的初始配置文件。
3.若没有明确指定用户所属的组,则自动创建与该用户帐号同名的基本组账号,组账号的记录信息将保存到/etc/group、/etc/gshadow文件中。
passwd命令——为用户账号设置密码
使用passwd命令除了可以修改账号的密码外,还能够对用户账号进行锁定、解锁等操作。
(高管)
-d:
清空指定用户的密码,仅使用用户名即可登录系统。
-l:
锁定用户账户。
-S:
查看用户账号的状态(是否被锁定)。
-u:
解锁用户帐户。
root用户可以指定账号名称作为参数,对指定账号的密码进行管理。
但是普通用户只能执行单独的passwd命令修改自己的密码,而且普通用户设置自己的密码时,密码要求有一定的复杂性,否则系统可能拒绝进行设置。
usermod命令——修改用户账号属性
对于系统中已经存在的账号,可以使用usermod命令重新设置各种属性。
同样需要指定账号名称作为参数。
-u:
修改用户的UID号。
-d:
修改用户的宿主目录位置。
-e:
修改用户的失效时间,可使用YYYY-MM-DD的日期格式。
-g:
修改用户的基本组(或使用GID号)。
-G:
修改用户的附加组名(或使用GID号)。
-M:
不为用户建立并初始化宿主目录。
-s:
指定用户的登录Shell。
-l:
更改用户账号的登录名称(LoginName)。
-L:
锁定用户账户。
-U:
解锁用户账户。
userdel命令——删除用户账号
当系统中某个用户账号已经不再需要使用时,使用该命令加指定账号名称作为参数(添加-r选项时可以将该用户的宿主目录一并删除)删除用户。
用户账号的初始配置文件
在Linux系统中添加用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。
这些文件来自于账号模版目录/etc/skel/,基本上都是隐藏文件,较常用的厨师配置文件包括".bash_logout"、".bash_profile"、".bashrc"。
其中,".bash_profile"文件中的命令将在该用户每次登陆时被执行;".bashrc"文件中的命令会在每次加载/bin/Bash程序时(当然也包括登录系统)被执行;而".bash_logout"文件中的命令将在用户每次退出登录时被执行。
组账号管理
组账号文件:
与组账号文件相关的配置文件也有两个,分别是/etc/group、/etc/gshadow。
前者用于保存组账号名称、GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少用到)。
groupadd命令——添加组账号
使用groupadd命令可以添加一个组账号,需要指定GID号时,可以使用-g选项。
gpasswd命令——添加、删除组成员
gpasswd命令本来是用于设置组账号密码的,但是该功能极少使用,实际上更多地用来为指定组账号添加、删除用户成员,对应的选项分别为-a、-d。
使用-M选项时可以同时添加多个用户。
groupdel命令——删除组账号
当系统中的某个组账号已经不再使用时,可以使用groupdel命令删除该组。
用户和组账号查询
groups命令——查询某个用户账号所属的组
finger命令——查询用户账号的详细信息
users、w、who命令——查询当前登录到主机的用户信息。
管理文件/目录的权限和归属
使用ls命令的-l选项时,将以长格式显示出文件或目录的详细信息,其中包括了该文件的权限和归属等参数。
在文件或目录的详细属性信息中,第3、4个字段分别表示该文件或目录的属主、数组。
第一个字段表示该文件或目录的访问权限,如"drwx-xr-x"和"-rw-r--r--"。
权限字段由四部分组成,各自的含义如下:
第一个字符:
表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、减号"-"(普通文件)、字母"l"(链接文件)等。
第2~4个字符:
表示该文件属主对该文件的访问权限。
第5~7个字符:
表示该文件数组内各用户对该文件的访问权限。
第8~10个字符:
表示其它任何用户对该文件的访问权限。
设置文件/目录的权限
设置文件或目录的权限时,主要通过chmod命令进行,在设置某一类用户的访问权限时,可以采用两种形式的权限表示方法:
字符形式和数字形式。
r、w、x权限字符可分别为八进制数字4、2、1,表示一个权限组合时需要将数字累加。
例如:
rwx可用八进制数字7表示。
基本命令格式:
chmod[ugoa][+-=]文件或目录
chmodnnn文件或目录
PS:
ugoa分别代表用户、组、其他、所有。
+代表增加相应权限,-代表减少相应权限,=代表设置相应权限。
需要将不同类别的用户对文件或目录的权限设置为不同时,可以用逗号进行分割。
设置文件/目录的归属
需要设置文件或者目录的归属时,可以通过chown、chgrp命令进行。
前者可以同时修改文件或目录的属主或属组,而后者只能用于修改数组信息。
因此常用命令为前者。
chown命令格式:
chown属主[:
[属组]]文件或目录
使用附加权限
1.SET位权限:
多用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限。
执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。
为执行文件添加SET位权限同样可以通过chmod命令实现,使用u+s、g+s的权限模式分别用于设置SUID、SGID权限。
若使用数字形式,SUID对应八进制数字是4,SGID对于八进制数字是2,在权限模式中可采用"nnnn"的形式,如"4755"表示设置SUID权限,"6755"表示同时设置SUID、SGID权限。
2.粘滞位权限:
主要用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。
设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。
使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限。
将数字权限模式nnnn中的第一位数字改为1、0,也可以实现添加、移除粘滞位权限。