linux用户管理.ppt
《linux用户管理.ppt》由会员分享,可在线阅读,更多相关《linux用户管理.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 Red Hat Linux 9用户管理本章概述本章概述用户管理是Red Hat Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。所谓账号管理是指账号的新增、删除和修改、账号规划以及权限的授予等问题。本章主要阐述了Red Hat Linux 9的账户管理机制,包括用户管理和组管理。在本章的最后介绍了Red Hat Linux 9中常用的用户管理工具。5.1 认识用户和组在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。在Red Hat Linux中系统账号可分为两种类型:(1)用户账号:通常一个操作者拥
2、有一个用户账号,这个操作者可能是一个具体的用户,也可能是应用程序的执行者,比如apache、ftp账号。每个用户都包含一个惟一的识别码,即用户ID(UID,User Identity),以及组识别码,即组ID(GID,Group Identity)。在Linux系统中可以有两种用户账号:管理员root用户和普通用户。(2)组账号:一组用户账号的集合。通过使用组账号,可以设置一组用户对文件具有相同的权限。管理员以组为单位分配对资源的访问权限,例如读取、写入或执行的权限,从而可以节省日常的维护时间。5.1 认识用户和组 1. 标标准用户户在Red Hat Linux 9安装的过程中,系统会自动创建
3、许多用户账号,而这些默认的用户就称为“标准用户”。这些用户账号除了“root”代表超级用户之外,其余账号都是系统账号,也就是应用程序在执行时的身份。需要注意的是,标准账号是操作系统安装时,自动建立的用户启动相应的应用程序,超级用户在向系统添加普通用户的时候,不能和系统中已有的标准用户同名。系统中的部分标准账号见下表。5.1 认识用户和组用户名称用户ID组ID主目录使用的shellroot00/root/bin/bashbin11/bin/sbin/nologindaemon22/sbin/sbin/nologinadm34/var/adm/sbin/nologinlp47/var/spool/
4、lpd/sbin/nologinsync50/sbin/bin/syncshutdown60/sbin/sbin/shutdownhalt70/sbin/sbin/haltmail812/var/spool/mail/sbin/nologinnews913/etc/newsuucp1014/var/spool/uucp/sbin/nologinoperator110/root/sbin/nologinLinux系统的部分标准账号5.1 认识用户和组 2. 2. 标准组标准组在Red Hat Linux 9安装的过程中,系统除了会自动创建默认的用户账号外,也会新增“标准组”账号。同样,除了“ro
5、ot”组是用来组织管理者之外,其余的账号都是提供给应用程序在执行时使用。Red Hat Linux 9的部分标准组见下表。组名称组ID(GID)组成员root0rootbin1root,bin,daemondaemon2root,bin,daemonsys3root,bin,admadm4root,bin,daemontty5disk6rootlp7daemon,lpLinux系统的部分标注组账号5.2 root 账号Linux系统中的root账号通常用于系统的维护和管理,它对Linux操作系统的所有部分具有不受限制的访问权限。值得注意的是,系统真正关心的并不是该账号的用户名,而是该账号的用户
6、ID,即UID。/etc、passwd文件中定义的超级用户UID为0,也就是说,如果某个账号的uid为零,系统将会认为该用户就是超级用户。在Linux中超级用户登录系统的时候,系统不会对该用户进行存取限制和安全性验证,所以超级用户root可以操作任何人的文件或者就像文件的拥有者一样管理文件。5.2 root 账号在大多数版本的Linux中,都不推荐直接使用root账号登录系统。当系统管理员需要从普通用户切换到超级用户时,可使用su或su -命令,然后输入root账号的密码即可,而不用重新登录。例如,使用su命令切换用户:tommyhost tom$ su 在tom账号下使用su命令Passwo
7、rd: 输入root账号密码rootmyhost tom# 进入root账号使用su 命令切换用户:tommyhost tom$ su - 在tom账号下使用su命令Password: 输入root账号密码rootmyhost root# 进入root账号5.2 root 账号需要返回原来的普通用户账号时,直接输入exit命令即可。如果要进入别的普通用户账号,可在su命令后直接加上其他账号,然后输入密码。su和su 命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户的主目录。输入后,系统将提示输入相应用户的口令,只有输入的口令正确才能完成身份的转换。如果su命
8、令后没有携带用户名,系统默认从当用户切换到超级用户,并提示用户输入超级用户口令。5.3 管理用户账号 5.3.1 Linux的影子密码码体系5.3.1 Linux的影子密码体系在Linux的早期版本中,用户的账号数据,包括用户名、用户ID、组ID、用户的主目录和用户使用的shell等都保存在/etc/passwd文件中。由于该文件对于任何用户都是可读的,因而存在口令安全隐患。在RedHat Linux 9中,为了确保用户的口令安全,在/etc/passwd文件中不再保存用户的口令数据,用户的口令被加密后存放在/etc/shadow文件中,passwd文件仍然保持了所有用户的可读性,而shado
9、w文件只有root账号才可读。这种机制称为影子密码体系。在默认安装RedHat Linux 9的时候,shadow文件中的口令使用MD5加密。5.3 管理用户账号 5.3.1 Linux的影子密码码体系1 1用户账号信息用户账号信息/etc/passwd/etc/passwd通常在Linux中的所有账户信息都记录在/etc/passwd中,该文件的存取属性为644,也就是对所有用户可读,但只用root组中的用户才能修改。在/etc/passwd文件中,每一行都代表一个用户的账号信息,而每个用户的信息都是以“:”来分隔不同的字段记录,其中包含7个字段,见下表。字段1字段2字段3字段4字段5字段6
10、字段7用户名口令UIDGID账号信息主目录登录shellrootx00root/root/bin/bash/etc/passwd中包含的字段5.3 管理用户账号 5.3.1 Linux的影子密码码体系各字段的含义如下: 用户名:是用户登录系统时的登录名,它由root或是具有和root相同权限的管理员指定,每个用户在登陆系统时都必须使用指定的登录名。 口令:即用户的登录系统时使用的密码。通常该字段是一个“x”,表示是一个经过加密处理的口令,加密后的密码给放置在/etc/shadow文件中,且该文件只能被root组的账号访问。如果该字段显示“*”则表示对应账号停用。 UID:每个账号唯一的识别号,
11、最大可谓65535。UID在500之前的账号是提供系统服务使用的,管理员新增的第一个普通用的UID为500,然后依次是501、502以此类推。5.3 管理用户账号 5.3.1 Linux的影子密码码体系 GID:组账号的唯一的识别号。用户组的信息被存放在/etc/group文件中,root组的GID为0。管理员创建的第一个组的GID为500,然后依次是501、502以此类推。 账号信息:主要存放用户的附加信息,如用户名称、电话或该用户的详细说明等。用户可以使用finger命令来查看该字段的内容,还可以利用chfn命令来修改其内容。 主目录:用户登录后直接进入的目录,在默认的状态下,每个用户都有
12、一个主目录。root用户的主目录为/root,管理员创建的用户的主目录通常为/home/,如tom用户主目录为/home/tom。5.3 管理用户账号 5.3.1 Linux的影子密码码体系 登录shell:用户在登录系统时使用的shell,Red Hat Linux 9默认使用的是/bin/bash,用户可以使用chsh命令更改自己的登录shell。如果用户只是系统通过该用户账号获取系统的某种服务,而不希望该用户能够登录Linux工作站,可以将此登录shell修改为/bin/false、/bin/true、/dev/null和/sbin/nologin等其中之一。2. 2. 用户口令文件用户
13、口令文件/etc/shadow/etc/shadow在Linux系统中通常使用影子口令机制(Shadow Password),用户的身份信息被存放在/etc/passwd文件中,用户的口令信息加密后保存在另一个文件/etc/shadow中,并只设置root账号的可读属性,因而大大提高了系统的安全性能。 5.3 管理用户账号 5.3.1 Linux的影子密码码体系在/etc/shadow文件中有9个字段,每个字段使用“:”分隔。其中保存了用户名、加密后的口令等信息。各字段的含义见下表。字 段说 明1用户账号名称,如root2用户加密后的口令。如果该字段的值为“!”和“*”,则表示该用户当前没有密
14、码,也不能登录系统,这些用户通常是标准账号。其他的用户密码都是经过MD5加密后的内容。另外,用户任何时候都不能通过直接修改该字段的方法,来更变用户口令3由1970年1月1号算起,到最后一次修改密码的时间间隔(以日为单位)4密码自上次修改后,要间隔多少天数后才能再次被修改,如果为0则无限制/etc/shadow中包含的字段5.3 管理用户账号 5.3.1 Linux的影子密码码体系5密码自上次修改后,最多间隔多少天数后密码必须被修改6如果密码有时间限制,那么在过期前多少天向用户发出警告,默认为7天7如果密码设置为必须修改,到期后仍未修改,系统自动关闭账号的天数8从1970年1月1号算起,到账号过
15、期的天数9系统保留,尚未使用使用影子密码机制可以提供以下的优点:(1)将原本/etc/passwd文件中的密码移至/etc/shadow文件中,而shadow文件只允许管理员root账户读取,可以提5.3 管理用户账号 5.3.1 Linux的影子密码码体系高系统的安全性。而且其中的密码是采用MD5算法加密的,root账户也无法直接获得口令的内容,但是root账户可以变更用户密码或停用每个账户。(2)可记录密码变更的时间。(3)可以设置密码使用的时间,以避免用户的密码变更过于频繁。(4)可以使用/etc/login.defs文件来设置密码的安全性原则,例如密码的最小长度或密码最短的使用时间等。
16、 用户管理的工作包括建立一个合法的账号、设置和管理用户的口令、修改账号的属性以及在必要时删除账号。虽然在绝大部分的类UNIX系统中,都支持直接修改/etc/passwd文件来管理账号的信息,但是,如果存在/etc/shadow文件,这种方式便会失效。5.3 管理用户账号 5.3.2 setuid和setgid5.3.2 setuid和setgid用户存储用户信息的/etc/passwd文件只有超级用户才能进行修改,而用于存储用户口令的文件/etc/shadow甚至只有超级用户才可以访问。只有在普通用户执行passwd命令的时候,能够读取和修改/etc/passwd和/etc/shadow文件,
17、才能使普通用户修改自己的口令。为了解决在用户修改口令时,文件系统存取权限矛盾,Linux给/usr/sbin/passwd命令设置了setuid属性。setuid是一种文件的拥有者具备的特殊属性,它使得被设置了setuid位的程序无论被哪个用户启动,都会自动具有文件拥有者的权限,在Linux中典型拥有setuid属性的文件就是/usr/bin/passwd程序,见下图。通常setuid属性只会设置在可执行的文件上,因为尽管理论上可以给不可执行的文件加上setuid属性,但是这样做通常是没有意义的。5.3 管理用户账号 5.3.2 setuid和setgid文件属性中的s占据的位即为setuid
18、位,“s”代表对应的文件被设置了setuid属性,因为passwd程序的拥有者是超级用户root,因此passwd程序执行的时就自动获取了超级用户的权限,所以无论是哪个用户执行了passwd程序都可以修改系统的口令文件。要给一个文件加上setuid属性,可以使用如下的命令:chmod u+s 或chmod 4xxx passwd文件的setuid属性5.3 管理用户账号 5.3.2 setuid和setgid其中,u+s表示给文件的拥有者添加setuid属性,其属性字为4000,xxx代表文件原来的存取属性。setgid与setuid类似,只是setgid是文件归属的组具备的特殊属性,具有se
19、tgid的可执行文件运行时,自动获取文件对应的组权限,因为组权限不像用户权限那样精确,所以使用setgid的程序很少。要给某个文件添加setgid属性,可以命令:chmod g+s 或chmod 2xxx 其中,g+s表示给文件的归属组添加setgid属性,其属性字为2000,xxx代表文件原来的存取属性。setuid和setgid属性都是对正常的Linux安全机制开的后门,原则上,只有在明确的非用不可的功能中才使用它们。特别是,具有超级用户权限的setuid属性的应用程序经常是系统遭受攻击的目标。因此要千万慎用。5.3 管理用户账号 5.3.3 使用命令行管理用户户5.3.3 使用命令行管理
20、用户1 1添加用户账号添加用户账号在RedHat Linux 9中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。useradd命令的使用格式如下:useradd 参数 新建用户账号常用参数和含义见下表。参 数含 义-d 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录useradd命令的参数及含义5.3 管理用户账号 5.3.3 使用命令行管理用户户例5.1 建立jack账号,其主目录为/home/tom、归属于tom组、账号信息为gene
21、ral user、用户shell为/bin/bash、账号有效期到2008年12月1日。命令的执行过程如图所示。-s 设置用户登录系统时使用的shell,默认为/bin/bash-g 指定用户所属的组,该组的GID必须是在/etc/group文件中登记过的,即该组已存在。如果不使用该参数,系统自动建立用户同名的组,并将该用户纳入该组-c 用于指定账号信息字段的内容-u 指定用户的UID-e 指定账号的有效期限,格式为YYYY-MM-DD5.3 管理用户账号 5.3.3 使用命令行管理用户户 rootmyhost root# useradd d /home/tom g 500 -c “gener
22、al user” s /bin/bash e 2008-12-1 jack2 2变更用户口令变更用户口令在Linux系统中,每个用户除了拥有账号外,还应该拥有相应的口令。系统管理员root应该在创建用户账号的时候为每个用户指定一个初始密码,用户利用此密码登录系统后,再自行修改。用户应该选择一个自己容易记忆的口令,同时还应该保证该密码的健壮性。useradd命令示例5.3 管理用户账号 5.3.3 使用命令行管理用户户 由于入侵者可以使用自动化的工具软件多次尝试登录系统,简单的口令很容易被破解,因此,一个健壮性高的口令应该具备以下特点:不包含个人信息,不存在键盘顺序规律,不使用字典中的单词,最好
23、包含非字母符号,长度不小于8位,同时还用方便记忆。在RedHat Linux 9中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。该命令的常用格式为:passwd 参数 用户名常用的参数及含义如表所示。5.3 管理用户账号 5.3.3 使用命令行管理用户户例5.2 使用passwd的-stdin参数为例5.1中建立的jack账户设置初始口令。在终端中输入如下命令,结果如图所示。rootmyhost root# passwd jack -stdin参 数含 义-d删除用户口令,此后该用户登录系统是无需口令-l临
24、时锁定用户账号,该账号此后无法登录系统,直到解锁-u解除账号的锁定-stdin在用户设置口令的时候,通常并不显示内容,并且需要用户输入两次口令以便验证两次输入是否一致。使用该参数表示在用户设置口令的时候,显示口令内容,同时只需要用户输入口令一次。passwd命令的参数及含义5.3 管理用户账号 5.3.3 使用命令行管理用户户 例5.3 tom登录系统后,更变自己的口令。命令执行的过程如下图所示。rootmyhost tom# passwdroot账号设置jack用户初始口令tom用户变更自己口令5.3 管理用户账号 5.3.3 使用命令行管理用户户 3 3查看用户信息查看用户信息1) who
25、ami命令该命令用户查看当前系统当前账号的用户名。由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。该命令的使用格式如下:whoami2) who命令该命令用于查看当前所有登录系统的用户信息,使用格式如下:who 选项常用的参数及含义如下表所示。5.3 管理用户账号 5.3.3 使用命令行管理用户户 例5.4 使用who命令查看当前登录系统的用户详细信息。在终端中输入如下命令,结果如图所示。rootmyhost root# who uH参 数含 义-m或am I只显示运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 用户 管理
限制150内