linux用户登录与账户管理.ppt

上传人:sh****n 文档编号:3343872 上传时间:2019-12-12 格式:PPT 页数:136 大小:2.22MB
返回 下载 相关 举报
linux用户登录与账户管理.ppt_第1页
第1页 / 共136页
linux用户登录与账户管理.ppt_第2页
第2页 / 共136页
linux用户登录与账户管理.ppt_第3页
第3页 / 共136页
点击查看更多>>
资源描述
第三章用户登录与账户管理,Linux作为多用户、多任务的操作系统,其系统资源是所有用户共享的。任何要使用系统资源者必须先在系统内登记、注册,即开设用户账户,该账户包含用户名、口令、所用的shell、使用权限等等;为了计算机系统的安全,Linux会对每一个要求进入系统的用户验证他们的用户名和口令,如果验证通过则用户登录成功,否则系统拒绝登录。,31用户登录,根据用户在本地终端还是通过网络登录Linux系统,分为用户的终端登录和远程登录。这里的网络可以是局域网,如学校计算机实验室;也可以是网际网,如Internet。311终端登录当成功启动系统后,如果系统运行级为5,则登录时会看到如图3-1所示界面;如果运行级为3,则登录时会看到如图3-2所示界面。用户必须先后输入用户名、口令才可以登录Linux系统。,图3-1运行级5的登录界面,图3-2运行级3的登录界面,如果以超级用户的root账户登录,则终端提示符为#。如果以普通用户登录,则终端提示符为$。在Linux系统中超级用户拥有最高权限,例如、可以删除、修改系统中所有的目录和文件;而且在命令方式下删除的内容是不可恢复的。为了系统安全、避免由于误操作带来的损失,建议若非系统管理需要,一般不要以超级用户的root账户登录。Linux系统提供了六个虚拟控制台终端,每个虚拟终端都可以登录系统。这六个虚拟终端之间用组合键Ctrl+Alt+Fx进行切换,Fx表示F1到F6键。如果系统运行级是5,则任何时候要返回到图形界面只要按Ctrl+Alt+F7即可。,312远程登录所谓“远程登录”是指用户在某一台计算机上通过网络登录其他联网的计算机系统,使用该系统中的资源,如执行命令、查找文件等,以达到资源共享的目的。相互连通的计算机可以是处于同一个局域网、城域网和广域网,甚至世界上任何一台连接到Internet的计算机。当用户发出远程登录请求时,Linux系统会像在本地终端登录一样要求用户输入用户名和口令;一旦登录成功,如果你有足够的权限、你的计算机就像远程哪台计算机的终端一样,你通过键盘所发出的命令,就会在该远程计算机上执行、执行的结果会通过网络显示在你的显示器上。,在Linux操作系统中,实现远程登录的命令主要有:telnet、rsh、rlogin和ssh,它们要在系统提供相应服务的基础上使用;换句话说、要使用远程登录必须先开启所用远程登录命令对应的服务,例如、要使用telnet命令就要先开启系统的telnet服务。一般这些系统服务没有必要全部开启,这样既浪费系统资源、造成运行速度降低又可能留下安全隐患,可以根据实际使用哪些命令来开启相关的系统服务。有关系统服务的查看、开启和关闭请参阅第二章的有关章节。本章仅仅介绍远程登录的使用,不涉及远程登录的安全问题。,3121telnet命令telnet命令是最常用的远程登录命令,但是它只能在基于终端的环境下使用,即要么在虚拟控制台终端上使用、要么在XWindow系统的终端窗口中使用。telnet命令的选项和参数很多,但在实际使用中往往只要用到其基本用法。这里我们先介绍如何最基本地使用该命令,然后给出该命令的完整用法。基本用法:$telnethost其中,host是你要登录到的远程计算机的名字或IP地址。,以下是使用telnet命令基本用法的示例:rootlocalhostroot#telnet192.168.248.133Trying192.168.248.133.Connectedto192.168.248.133(192.168.248.133).Escapecharacteris.RedHatLinuxrelease9(Shrike)Kernel2.4.20-8onani686login:zxjPassword:Lastlogin:SunFeb415:12:32from192.168.248.131zxjlocalhostzxj$cd/zxjlocalhost/$lsbindevhomelibmiscoptroottftpbootusrbootetcinitrdlost+foundmntprocsbintmpvarzxjlocalhost/$cd/homezxjlocalhosthome$lslost+foundzxjzxjlocalhosthome$logoutonnectionclosedbyforeignhost.,在这个示例中,使用telnet命令远程登录到IP地址为192.168.248.133的计算机上;当连接成功后显示Linux的发行版本号和内核版本号,并要求用户输入用户名和口令。如果用户超过一定的时间没有输入,则系统自动断开连接。如果用户输入的用户名和口令正确,则登录系统成功并自动进入该用户目录。这时用户的计算机就像远程计算机的一个终端,根据用户所拥有的权限就可以执行相应的命令。例如、切换到根目录下、执行ls命令时会看到在远程计算机上显示的目录和文件就像在自己计算机终端上登录的一样。当完成所需要的操作后,使用logout命令退出远程登录,即可关闭与远程计算机的连接,回到自己的系统中。实际上,telnet命令是TELNET协议的用户接口。,完整用法:telnet-8-E-F-K-L-Stos-Xauthtype-a-c-d-eescapechar-f-krealm-luser-ntracefile-r-xhostport如果telnet命令不带任何命令选项,则进入telnet命令模式、显示telnet提示符,执行?或help命令可以查询所有可用的命令;执行?命令名或help命令名,则显示该命令的在线帮助信息。表3-1列出了telnet命令的选项和说明。,3122rlogin命令rlogin命令与telnet命令无论在使用方法还是选项功能上都非常类似;它也是用来在远程计算机上登录。如果登录成功,就可以在远程计算机上执行该注册账户权限所允许的任何操作。基本用法:$rloginrhost其中,rhost是你要登录到的远程计算机的名字或IP地址。完整用法:低版本rlogin命令:rlogin-8EL-echar-lusernamerhost,高版本rlogin命令:rloginrhost-ec-8-c-a-f-F-ttermtype-n-7-PN|-PO-d-krealm-x-L-lusername从rlogin命令的完整用法可以看到,该命令中的rhost参数是必需的,代表远程主机名或IP地址;其他的是命令选项且是可选的。表3-2列出了rlogin命令的选项和说明。该版本的rlogin命令与低版本的rlogin命令在选项个数和功能上有较大的差别。,3123rsh命令rsh命令用来启动远程计算机上的shell并让该shell执行权限范围内指定的命令。基本用法:$rshhostcommand其中,host是你要登录到的远程计算机的名字或IP地址,而command为要远程计算机shell执行的命令。如果省略了参数command,则rsh命令将调用rlogin命令登录到远程计算机上。完整用法:低版本rsh命令:rsh-dn-lusernamehostcommand,高版本rsh命令:rshhost-lusername-n-d-krealm-f|-F-x-PN|-POcommand从rsh命令的完整用法可以看到,该命令中的host参数是必需的,其他的是命令选项且是可选的。表3-3列出了rsh命令的选项和说明。,rsh命令连接指定的远程计算机,并在它上面执行指定的命令。rsh命令将本地计算机上的标准输入复制到远程计算机的标准输入,因此在本地计算机上可以输入在远程计算机上执行命令所需要的输入数据。而且、rsh命令还将远程计算机上的标准输出复制到本地计算机的标准输出中、将远程计算机上的标准错误输出复制到本地计算机的标准错误输出中,因此在本地计算机上就可以看到远程计算机上命令执行的情况。此外、rsh命令还将本地计算机的中断、退出和终止信号传送到远程计算机,以控制远程计算机上命令的执行。当指定的命令在远程计算机上执行完时,rsh命令就正常终止。,在rsh命令中,如果shell元字符没有用引号括起来,则表示对本地计算机进行操作;如果用引号括起来,则表示对远程计算机进行操作。所谓元字符是指对shell而言有特殊意义的字符,如*、?、|、;、localfile表示在远程计算机上用cat命令查看远程计算机上的remotefile文件,并采用附加重定向元字符重定向到本地计算机的localfile文件。如果命令中的元字符加上引号,如下:rshhostcatremotefile“”otherremotefile表示在远程计算机上用cat命令查看远程计算机上的remotefile文件,并采用附加重定向到远程计算机host的otherremotefile文件。,3124ssh客户端命令ssh(SSH客户端)是一个为实现在远程计算机上登录,并在其上执行命令的程序。由于rlogin和rsh命令的安全性问题,它们将被ssh命令代替。ssh可以在不安全网络上的两台非信任(不可靠)的计算机之间提供安全的加密通信;X11连接和任意的TCP/IP端口也能在安全的信道上转发。ssh命令建立连接并在日志文件中记录指定的主机名。用户必须采用几种方法中的一种向远程计算机证明自己的身分,这几种方法依赖于所使用的协议版本。,基本用法:ssh-llogin_namehostname|userhostnamecommand其中、hostname或userhostname是你要登录到的远程计算机的名称、IP地址或域名,login_name是登录的注册用户名,而command为要远程计算机shell执行的命令。完整用法:ssh-afgknqstvxACNTX1246-bbind_address-ccipher_spec-eescape_char-iidentity_file-llogin_name-mmac_spec-ooption-pport-Fconfigfile-Lport:host:hostport-Rport:host:hostport-Dporthostname|userhostnamecommand表3-4列出了ssh命令的选项和说明。,32管理用户账户,每一个登录Linux系统的用户在系统中都应该有对应的注册账户,这些账户记录了用户的信息,如用户名、登录口令、用户目录所在的位置、所用的shell、建立时间、权限等信息。用户账户管理包括:添加用户、设置口令、删除用户、修改用户属性和权限等。因此、账户管理是系统管理员重要的日常工作之一。,321添加用户超级用户的账户在Linux系统安装时已经创建了,但超级用户的权限太大不适合给普通用户使用,否则会对Linux的系统安全造成威胁;因此,所有要使用Linux操作系统所管理资源的普通用户都要向超级用户或拥有超级用户权限的系统管理员申请一个用户账户,以便登录系统。这对于超级用户或系统管理员而言就是添加用户。添加用户的方式既可以在字符终端下,也可以在图形界面下。本节先介绍字符终端下的添加用户方法,这种方式也有多种方法,如使用终端命令、修改配置文件、编写shell脚本程序等。,3211终端命令添加用户添加用户最常用的命令就是useradd命令,该命令的参数和选项很多;早期的版本中该命令建立的用户账户没有设置用户的口令,必须在账户建好后再用passwd命令设置口令,但在RedHatLinux9.0中对该命令做了修改,增加了-ppasswd参数,无论是否使用-p参数系统都默认调用crypt函数自动生成一个随机的初始口令,锁住该账户以禁止用户访问。当然、超级用户或系统管理员也可以用该参数取消初始口令,把设置口令的工作由新用户自己来完成。使用useradd命令所建立的用户账户信息实际上保存在/etc/passwd文本文件中,而加密的用户账户信息则保存在/etc/shadow文件中。,基本用法:useradd-dhome_dir-sshell用户名该命令中用户名参数是必需的,-dhome_dir选项和-sshell选项是可选的;如果不使用可选项,则系统自动用默认值。默认的用户工作主目录是/home/用户名,即Linux系统会自动在/home目录下创建一个以用户名命名的目录作为用户的工作主目录,并向该目录复制.bash、.logout、.bash、.profile、.bashrc、.gtkrc文件和.kde目录;系统默认用户使用的shell是bash。例如、如下的命令将添加一个名为zxj的新用户:#useraddzxj该用户的工作主目录为默认的目录,使用的shell也是默认的;如果用户不想要默认的设置,则必须在命令中明确指定-d和-s参数。,完整用法:useradd-ccomment-dhome_dir-eexpire_date-finactive_time-ginitial_group-Ggroup,.-m-kskeleton_dir|-M-n-o-ppasswd-r-sshell-uuidlogin_name或useradd-D-gdefault_group-bdefault_home-edefault_expire_date-fdefault_inactive-sdefault_shell当使用中不带-D命令选项时,useradd命令用命令行中指定的值和系统默认的值来建立一个用户账户。该账户信息会添加到系统相应的文件中,如/etc/passwd、/etc/shadow文件;系统会建立用户工作目录,并复制初始化配置文件到该目录。除非在命令行中使用-n选项,否则系统将为每个用户建立一个组群并加入到系统中。这种用法系统不会显示默认的参数和选项内容。,当使用中带-D命令选项时,要么显示当前系统默认的参数选项内容,要么通过命令行中设定的-g、-b、-e、-f、-s选项的内容来修改系统默认的选项内容。换句话说、这种用法只是显示或修改系统默认的参数和选项,它并不能真的添加用户。例如、执行以下命令#useraddD则可能显示:GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skel思考:如果执行useraddDg200s/bin/csh命令后,再次执行useraddD将显示什么?表3-5列出了useradd命令的选项和说明。,添加用户另一个常用的命令就是adduser命令。在其他版本的Linux系统中,该命令是一个脚本程序,采用友好的交互方式,只要输入adduser回车、按系统提示信息的要求输入即可。使用者可以无需记忆复杂、繁多的参数选项,而是让使用者回答一系列的问题来设置新用户的各项信息,包括用户的密码等,使用较为方便。但在RedHatLinux中,adduser命令则是useradd命令的符号连接,两者实际上是同一个命令;如果在/usr/sbin目录下执行lsladduser命令,则可以看到它是连接到useradd命令。,3212修改文件添加用户用useradd命令添加用户,实际上就是向/etc/passwd、/etc/shadow和/etc/group文件中写入信息。因此、该方法就是利用任意一个文本编辑器直接打开passwd等文件(在/etc目录下)修改,passwd文件的每一行有7个域、且由冒号“:”分隔,每行就是一个用户的账户信息。若要添加用户,只要在文件中写入相应的条目。但是这种方法不会自动创建用户工作目录、不会自动修改shadow和group文件,所以超级用户或系统管理员一定要记住为新用户创建相应的工作目录,并把一些必要的用户配置文件复制到该用户目录下;还要按规则修改shadow和group文件。采用这种方法(包括后面将要介绍的通过修改文件删除用户、修改属性)时,要求系统管理员必须对Linux系统非常熟悉,否则很容易漏掉一些操作,造成用户账户中数据的丢失或者无法正常使用。因此、建议初学者要慎重采用该方法。有关group文件的说明参见3.3节。,passwd文件的格式:Loginname:passwd:userID:groupID:userfullname:homedirectory:loginshell每个域的具体含义如下:Loginname:用户向系统登录时输入的用户名。该用户名的命名规则是:只能字母、数字和下划线组成,而且只能以字母开始,虽然以下划线开始也能创建用户账户,但系统不允许登录;用户名的长度不超过32个字符,否则提示为无效的用户名;同一系统中用户名必须是唯一的。passwd:为了用户账户的安全,Linux系统对用户的口令和其他信息做了加密处理,并保存在/etc/shadow文件中;因此在passwd文件的passwd域不会明文显示口令,只是以字符“x”表示该用户存在登录口令;如果用户账户在创建时没有口令,则该域为空。,userID:是系统内部识别用户的标识,Linux把用户分为系统用户和普通用户,一般系统用户由系统进程、服务守护进程和超级用户等组成,分配给它们的用户ID一般在099之间,普通用户的ID默认从500开始递增、最大可以到60000。除非在用useradd命令添加用户时使用了-r参数选项,否则添加的都是普通用户;如果使用了-o参数选项,则用户的ID并非是唯一的,可能几个用户有相同的用户ID,但系统把它们看成是同一个用户。UserID默认值的设置在/etc目录下的login.defs文件中。groupID:用户所属组群的标识,其含义与用户ID类似;用户组ID的默认值也是从50060000。GroupID默认值的设置在/etc目录下的login.defs文件中。,userfullname:用户全名。该域实际上是对登录用户名的注释,该域的内容会被加到电子邮件地址的前面。例如、任何从该用户账户发送的电子邮件将在对方显示:“userfullname”。homedirectory:该域是创建用户账户时设定的用户工作目录,用户在登录系统时自动进入该目录,用户建立的文件一般默认保存在该目录下。loginshell:该域是创建用户账户时设定用户所使用的shell。所谓shell就是用户与操作系统内核之间的接口,是系统命令的解释程序。在Linux系统中有多种shell可供用户选择,例如,bash(GNUBourne-AgainShell)、sh(BourneShell)、csh(CShell)、ksh(KornShell)等等,但系统默认的shell是bash。虽然各种shell的基本功能相同,但有些命令只能在特定的shell下执行。,shadow文件的格式与passwd文件的格式是一样的,只不过除了用户名域没有加密外其他各个域都是加密保存的。为了更好地理解passwd和shadow文件的作用,学会如何通过修改配置文件添加用户;以下给出一个具体的passwd和shadow文件作为对比示例。passwd示例文件:root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown.zxj:x:500:500:zxj:/home/zxj:/bin/bashzx:x:501:501:zx:/home/zx:/bin/bash,shadow示例文件:root:$1$cHa/5oEc$/yPWnS1ra4LuKyUMPQuTP1:13484:0:99999:7:bin:*:13484:0:99999:7:daemon:*:13484:0:99999:7:adm:*:13484:0:99999:7:lp:*:13484:0:99999:7:sync:*:13484:0:99999:7:shutdown:*:13484:0:99999:7:.zxj:$1$AipulblD$tgWgt13zBDMMXjUw1pQwB1:13484:0:99999:7:zx:$1$7JbYNEAF$mp7Cq8Afc3RBqHb0LFwNz1:13553:0:99999:7:从passwd和shadow示例文件可以看到:文件的每行有7个域,每个域之间用“:”分隔;每行就是一个完整用户账户信息;前面各行为系统用户、超级用户属于系统用户,它的用户ID和组ID都是0,超级用户的工作目录是/root。最后两行为添加的普通用户。本例省略了中间其他系统用户各行。对比这两个文件思考它们不同在哪里?,理解了这两个文件的格式及各个域的含义,通过修改它们来添加用户就非常容易。首先,手工添加时只要按规定的格式(各个域的顺序、分隔符)、以行为单位输入并保存即可,口令域可以不填、账户启用时由系统管理员或用户自己用passwd命令设置;用户ID和组ID只要按当前普通用户的UID和GID最高号数递增;另外,要创建用户工作目录、且目录名要与登录用户名相同,路径一般在/home目录下;shell可以根据需要选择,一般用/bin/bash即可。其次,在/etc/shadow文件中添加login_name:这一行。最后,还要在/etc/group文件中添加该用户组对应的行。,322设置口令使用useradd命令添加用户时,如果使用-p“”参数选项,则还未设置口令,因此、为了安全,该账户在使用前还要设置口令。如果使用非-p“”参数选项,则系统自动生成的口令只是暂时禁止使用该账户,必需重新设置口令后普通用户才能使用该账户。设置口令既可以在字符终端下完成,也可以在图形界面下完成。,3221口令设置规则口令设置的好与坏,直接关系到用户账户是否容易被入侵、用户工作目录的资料是否安全,如果是超级用户,则还关系到整个系统的安全。因此、设置口令是一项非常重要的工作。要设置一个好的口令,必须要注意:口令不要用:用户名字或宠物名容易与用户相关联的任何东西,如生日、住址等。字典中的单词上面任何一个的倒序。与用户有关联的东西或它的倒序容易被猜中;字典中的单词或其倒序易遭暴力破解。口令要:有足够长度,每增长一位、被破解的可能性会降低几个数量级。用混有数字、特定字符的组合。用一些对自己容易记住,但是对别人又难以猜到的数字、字符组合。用输入较快的数字、特定字符的组合。不要记录下密码。经常改变密码。,3222口令设置命令设置口令的命令是passwd,如果要用该命令为其他用户设置口令,则只能由超级用户或有超级用户权限的系统管理员才能完成;如果是普通用户会受到权限的限制则只能改变该用户自己的口令。基本用法:passwduser_name基本用法中的用户名如果省略,则设置的是当前已经登录用户的口令;如果设置的是新添加的用户,则必需指定该用户的用户名。例如、为新添加的用户x10设置口令:rootlocalhost/#useraddx10添加新用户账户rootlocalhost/#passwdx10设置新口令Changingpasswordforuserx10.系统显示为x10用户改变口令信息Newpassword:提示输入新口令Retypenewpassword:提示确认新口令passwd:allauthenticationtokensupdatedsuccessfully.修改成功rootlocalhost/#,为新用户设置口令与为老用户改变口令在用法上没有什么的差别,只是系统显示的信息不同而已;例如、改变口令时的提示信息是要求输入当前的口令。在按提示要求输入口令时,如果口令太简单、例如只有数字或字母;或者口令长度太短、例如长度少于6个字符,则Linux系统为了账户安全都会拒绝接受并要求重新输入。注意:如果执行过pwunconv命令,则为新用户账户设置口令时系统会有错误提示信息,一定要再执行pwconv命令后才能设置;这种情况下用编辑器打开/etc/shadow文件时看不到任何信息。pwconv命令是开启用户的投影口令;pwunconv命令是关闭用户的投影口令。,完整用法:passwd-k-l-u-f-d-nmindays-xmaxdays-wwarndays-iinactivedays-Susername其中、用户名参数的规则与该命令的基本用法相同;其他为命令选项。表3-6列出了passwd命令的选项和说明。,3223应用举例参考示例1:某用户的登录名为x10,由于忘记了口令请求系统管理员帮助。解决方法之一:系统管理员以超级用户身份登录系统,执行:#passwddx10#sux10再由该用户自己执行passwd命令,重新设置账户口令。解决方法之二:系统管理员以超级用户身份登录系统,执行:#vi/etc/passwd找到该用户在passwd文件中的记录行,删除口令域中的“x”标记并保存。执行:#sux10再由该用户自己执行passwd命令,重新设置账户口令。,参考示例2:某用户的登录名为x11,由于出差暂时离开请求系统管理员锁住账户。解决方法:系统管理员以超级用户身份登录系统,执行:#passwdlx11#exit待该用户出差返回后由系统管理员解锁,执行:#passwdux11,323成批添加用户作为系统管理员经常会遇到这样的问题,就是有连续、成批的用户要在系统中建立用户账户,例如、学校计算机实验室某个学期有某年级某班的几十名学生要通过网络远程登录到学校Lniux服务器进行shell编程实验。在这种情况下,如果采用useradd命令在服务器上添加学生账户,则只能一个一个地添加,不仅速度慢而且还容易出错。在RedHatLinux9.0版本中提供了一个新的添加用户的命令newusers,利用它就可以实现快速、便捷地成批添加用户。当然、也可以编写shell脚本程序来实现,这将在第八章shell编程中介绍。,3231newuser命令这个newusers命令从一个文本文件中读取用户名和明文口令对,并用这些信息去更新若干已存在的用户组群或者去建立一些新的用户。该文本文件的每一行与标准的口令文件的每一行有相同的格式,但有以下例外。pw_passwd加密后的口令域,该域将被加密并用作加密口令的新值。pw_age代理信息域,如果用户已经存在,该域将会忽略影子口令。pw_gid组群ID域,该域可以是现存组的名字,在这种情况下指定的用户将被添加为一个成员。如果给出一个不存在号数的组,则使用该号的新组将被建立。pw_dir工作目录域,该域将作为一个目录实体检查、如果它不存在,则建立一个同名的新目录。该目录的所有权将由建立与更新它的用户设置。,要注意的是newusers命令所读取的文本文件必须妥善地保存,因为它包含有未加密的口令信息。命令用法:newusersnew_users参数new_users是可选的、如果指定,则它是一个与passwd口令文件格式相同的文本文件,并由newusers命令读取它;如果不指定,则系统从标准输入设备上接受输入,输入的格式也必须按照passwd文件的格式,输入完成后以Ctrl+D结束返回系统提示符。在采用以下passwd文件格式时:Loginname:passwd:userID:groupID:userfullname:homedirectory:loginshell要特别注意passwd域,如果指定该域,则它是以明文形式存在(在所读取的文本文件中或终端输入时)的口令;如果不指定该域,则新建立的用户账户口令是系统随机自动生成的,必须由超级用户或系统管理员删除口令或重新设置口令,这可以用下一小节将要介绍的chpasswd命令进行口令的成批更新。,3232应用示例问题提出:要在学校计算机实验室的Linux服务器上建立1个班(50人)的学生账户,为每个学生分配登录用户名、口令、UID、GID、用户工作目录和登录所用的shell。问题分析:显然,对于这个问题最好的解决方法就是成批地创建用户账户。解决方法:首先,编辑一个passwd文件格式的、包含所有要创建用户账户信息的文本文件;把该文件命名为n_user.txt保存。参考文件如下:jb040101:stu0401:701:701:/home/jb040101:/bin/bashjb040102:stu0401:702:702:/home/jb040102:/bin/bashjb040103:stu0401:703:703:/home/jb040103:/bin/bash.jb0401049:stu0401:749:749:/home/jb040149:/bin/bashjb0401050:stu0401:750:750:/home/jb040150:/bin/bash最后,执行命令:#newusersn_user.txt一次性完成了50个学生账户的建立,这里n_user.txt文件中的口令stu0401就是以后学生登录系统的初始口令,登录后自己可以再修改;虽然这里是以明文形式存在,但在Linux的/etc/passwd和/etc/shadow文件中都已经是加密的。,324成批修改口令在成批地添加了用户后,可能还要成批地修改用户账户的口令。例如、在用newuser命令和用户信息文本文件添加用户时没有指定口令域,则必须重新设置口令用户才能登录系统。在RedHatLinux9.0版本中提供了一个新的修改用户口令的命令chpasswd,利用它就可以实现快速、便捷地成批修改用户口令。,3241chpasswd命令这个chpasswd命令从标准输入设备上读取由用户名和口令对组成的文件,并用这些信息去更新已存在的用户组群。该文件中每行的格式为:user_name:password要注意的是chpasswd命令所读取的文件必须妥善地保存,因为它包含有未加密的口令信息。另外、指定的用户必需存在。命令用法:chpasswd-e参数选项-e是可选的,如果不指定该参数选项,则改变后的口令就是chpasswd命令所读取文件中password域的明文信息,但在Linux系统中的/etc/passwd和/etc/shadow文件中显示的是已经加密的口令;如果指定该参数选项,则改变后的口令就是chpasswd命令所读取文件中password域明文信息的加密形式,但在Linux系统中的/etc/shadow文件中显示的是原口令的明文信息,由于加密是系统随机生成口令,所以一般不用带-e参数选项。由于该命令是从标准输入设备上读取文件,所以可以采用从键盘输入或者采用文件输入重定向。如果用键盘输入,则输入的格式也必须按照“user_name:password”的格式,输入完成后以Ctrl+D结束返回系统提示符。,3242应用示例问题提出:更改上一小节应用示例中50名学生账户的口令。问题分析:显然,对于这个问题最好的解决方法就是成批地修改用户账户口令。解决方法:首先,编辑一个文本文件,它只要包含所有要修改口令的用户的用户名和新口令,每行对应一个用户;把该文件命名为n_uspw.txt保存。参考文件如下:jb040101:stujsjjb040102:stujsjjb040103:stujsj.jb0401049:stujsjjb0401050:stujsj最后,执行命令:#chpasswdn_uspw.txt一次性完成了50个学生账户口令的修改,这里n_uspw.txt文件中的口令stujsj就是以后学生登录系统的初始口令,登录后自己可以再修改。注意、如果采用-e参数选项,则学生就无法用stujsj口令登录系统了,因为系统是把stujsj加密后作为口令。,325删除用户如果某个用户已永久地从系统中撤离,则为了系统的安全系统管理员要及时删除该用户账户和相关的目录与文件;如果只是暂时撤离,则只要用passwdllogin_name命令把该用户账户锁住或者在passwd文件的口令域x字符前加上个“*”或“!”即可。3251终端命令删除删除用户账户使用userdel命令,该命令包含两部分的操作。第一、删除/etc/passwd文件中的用户账户信息;第二、删除对应于该账户的系统配置文件和该账户的工作目录。这两部分可以同时完成也可以分开完成,只是取决于是否使用命令的参数选项。,命令用法:userdel-rlogin_name参数说明:login_name是用户登录系统的用户名。命令选项-r表示递归删除该用户的工作目录及该目录下的所有子目录和文件。如果选项-r不指定,则只是删除了该用户的账户信息,而保留该用户的工作目录及该工作目录下的所有子目录和文件;除非该用户的工作目录要保留给其他用户使用,否则最好不要这样。如果某个用户当前已经登录系统,则不允许用userdel命令删除这个用户的账户。,3252修改文件删除由于用户的账户信息是记录在/etc/passwd和/etc/shadow文件中的,所以直接删除这些文件中该用户的账户信息行也可以达到删除用户账户的目的,如果再手动删除用户工作目录,则就完整地删除了该用户。首先,删除/etc/passwd和/etc/shadow文件中该用户对应的行。其次,用rmfr命令强制递归地删除该用户的工作目录及目录下的所有子目录、文件。最后,还要在/etc/group文件中删除该用户组对应的行。,326修改用户属性从添加、删除用户命令可以看到,实际上添加或删除用户其中一项就是添加或删除用户的账户信息,而这些账户信息就是用户的属性。用户有时会提出修改登录的用户名、加入别的组群或使用其他的shell等要求,作为系统管理员要能根据用户合理的要求作出必要的修改,以使用户能方便、有效地使用系统。修改用户属性可以采用终端命令方式也可以采用修改配置文件的方式。,3261终端命令修改修改用户属性的终端命令是usermod,该命令的用法与useradd命令很类似,参数选项也有很多是相同的。这里仅就与useradd命令不同的参数部分进行说明。其他的参数选项请参考useradd命令的参数选项说明。命令用法:usermod-ccomment-dhome_dir-m-eexpire_date-finactive_time-ginitial_group-Ggroup,.-llogin_name-ppasswd-sshell-uuid-o-L|-Ulogin该命令除了能修改用户属性外,还可以对用户账户口令进行加/解锁处理。如果某个用户当前已经登录系统,则不允许用usermod命令修改这个用户的属性。,表3-7列出了usermod命令的部分选项和说明,其他参见表3-5。,应用示例1:将用户登录名tc01改为ta01,用户工作目录改为/home/ta01,所属组群改为root。执行命令:#usermodd/home/ta01mgrootlta01tc01注意:如果没有-m参数,则不会在/home目录下建立ta01用户工作目录,登录系统时会提示没有工作目录!。应用示例2:使ta01用户的口令无效。执行命令:#usermodLta01这个命令执行的效果与执行passwdlta01命令的效果一样。,3262修改passwd文件与修改文件添加、删除用户的原理一样,所以直接修改/etc/passwd和/etc/shadow文件中该用户的账户信息行也可以达到修改用户属性目的,如果修改了用户登录名,则在shadow文件中所对应的用户名一定要修改。如果再手动更名用户工作目录,则就完整地修改了该用户的属性。首先,修改/etc/passwd和/etc/shadow文件中该用户属性对应的域。其次,用mv命令更名该用户的工作目录。最后,还要在/etc/group文件中修改该用户组对应的行。,33管理组群账户,Linux系统根据各个用户所享有文件权限的不同而分为不同的用户组群。一个用户至少属于一个用户组群,该组群就是用户的基本组群;但同时还可以属于其他很多的附加组群。用户在系统中某一时刻所属组群为当前组群,也可以使用newgrp命令来切换所属组群。Linux系统中的每个目录和文件都有所有者权限、组权限和其他人权限,这个权限就是读、写和执行。例如执行以下命令:#lsl/etc/passwd显示:-rw-r-r-1rootroot26012月922:24/etc/passwd表示passwd文件对于文件所有者为读、写权限,对同组群用户和其他人为只读权限。如果某个用户不是某个文件的所有者,但只要他属于该文件所定义的组群,那么对于该文件他就享有组群的权限。系统管理员可以通过文件的组群权限来对用户的权限加以控制。系统管理员管理组群账户的主要工作就是添加用户组群、删除用户组群、修改用户组群属性和权限等。,331添加用户组群如果若干用户具有相同或相近的特性,则可以为他们建立一个新的组群。建立组群可以用终端命令方式和修改配置文件方式。3311终端命令添加添加用户组群的终端命令是groupadd,该命令用命令行中指定的参数选项和来自系统的默认选项建立一个新的用户组群账户。新的组群账户信息将在必要的系统文件如/etc/group、/etc/passwd、/etc/shadow文件中记录。命令用法:groupadd-ggid-or-fgroup参数group为新添加的组群名称,是必需的,其他的是命令选项。,命令选项及说明:,3312修改文件添加用groupadd命令,实际上就是在/etc/group和/etc/gshadow文件中写入信息。因此,该方法就是利用文本编辑器直接打开group组文件和gshadow组影子口令文件,这些文件的每一行有由“:”分隔的4个域,每行就是一个用户组的账户信息。若要添加用户组,只要在文件中写入相应的条目。group文件的格式:groupname:passwd:groupID:userlist每个域的含义如下:groupname:用户组群名称。用户组群的命名规则与用户名命名的规则类似。同一系统中用户组群名必须是唯一的,除非在groupadd命令中使用了-f参数选项。,passwd:用户组群口令。为了用户组群账户的安全,Linux系统对用户组群的口令做了加密处理,并保存在/etc/gshadow文件中;因此在group文件的passwd域不会明文显示口令,只是以字符“x”表示该用户组群存在口令;如果非本组用户要进入时(权限允许的条件下)需要输入口令。groupID:即GID,用户所属组群的标识,其含义与用户ID类似;用于系统识别一个用户组群。普通用户组ID的默认值也是从50060000。GroupID默认值的设置在/etc目录下的login.defs文件中。userlist:以该组群为附加组群的用户。该域显示系统中有哪些用户组群把该组群作为附加组群。,为了更好地理解group和gshadow文件的作用,学会如何通过修改配置文件添加用户组群;以下给出具体的group和gshadow文件作为对比示例。group示例文件gshadow示例文件root:x:0:rootroot:!:rootbin:x:1:root,bin,daemonbin:root,bin,daemondaemon:x:2:root,bin,daemondaemon:root,bin,daemonsys:x:3:root,bin,admsys:root,bin,admadm:x:4:root,adm,daemonadm:root,adm,daemon.。.。.。zxj:x:500:zxjzxj:!:zxjzx:x:501:zx:!:pppusers:x:230:pppusers:!:popusers:x:231:popusers:!:slipusers:x:232:slipusers:!:,每行有4个域,每行为1个用户组群账户;前面各行为系统用户组群,倒数第4、5行为添加的用户组群,最后3行为特殊用户组群账户。本例省略了中间各行。首先,手工添加时只要按规定的格式(各个域的顺序、分隔符)、以行为单位输入并保存即可,口令域可以不填、账户启用时由系统管理员用passwd命令设置;GID只要按当前普通用户的GID最高号数递增。最后,在/etc/gshadow文件中添加groupname:这一行。,3313应用示例问题提出:两个用户stu1、stu2共同开发软件,他们相互之间需要共享资源、复制和执行程序。问题分析:由于这两个用户具有的共同特性,他们可以设置成同组群的用户、有同样的组群权限;但组群权限不能有写的权限,而只能有读和执行的权限。解决方法:首先、系统管理员为他们添加一个组群,执行:#groupaddstu第二、如果这两个还未在系统注册,则系统管理员添加用户stu1、stu2,并设置初始口令;如果已经注册则只要修改他们的组群属性。假设尚未注册,则执行:#useraddstu1gstu1#useraddstu2gstu2#passwdstu1口令设置过程略#passwdstu2第三、系统管理员为他们修改工作目录的组群权限,执行。#chmod750/home/stu1#chmod750/home/stu2最后、通知用户登录系统后自己修改初始口令。现在stu1和stu2两个用户可以相互访问各自的工作目录,可以打开文件读、执行程序,但不能改写。,332设置用户组群口令组群口令的设置使用专门的gpasswd命令,该命令用于管理/etc/group文件;如果命令编译时带有定义的SHADOWGRP参数,则也管理/etc/gshadow文件。每个组群由组群管理员、组群成员和组群口令组成。命令用法:gpasswdgroupgpasswd-ausergroupgpasswd-dusergroupgpasswd-Rgroupgpasswd-rgroupgpasswd-Auser,.-Muser,.group用法说明:系统管理员可以使用-A参数选项定义组群管理员;使用-M参数选项定义组群成员。系统管理员有组群管理员和组群成员所有的权利。组群管理员可以分别使用-a和-d参数选项分别添加和删除组群的用户。,系统或组群管理员可以用-r参数选项删除组群口令。仅当未设置组群口令时,组群成员才能使用newgrp命令加入到该组群中。参数选项-R禁止通过newgrp命令访问组群。组群管理员执行gpasswdgroup_name命令时,会提示输入组群口令。如果设置有组群口令,则组群成员(要执行gpasswdausergroup命令后)不需要口令仍然能使用newgrp命令加入组群,而非组群成员则必须输入口令。注意:如果执行过grpunconv命令,则在这种情况下用编辑器打开/etc/gshadow文件时看不到任何信息。grpunconv命令是关闭用户组群的投影口令;与之相对应的grpconv命令是开启用户组群的投影口令。,333删除用户组群如果某个用户组群已永久地从系统中撤离,为了系统的安全系统管理员应该及时删除该用户组群。删除用户组群既可以采用终端命令方式也可以采用修改配置文件方式。3331终端命令删除删除用户组群采用groupdel命令,该命令会修改系统的用户组群账户文件,删除指定组群所有的条目。命令用法:groupdelgroup_name其中、参数group_name(组群名)必需存在。系统管理员在删除指定的组群后必须手工检查所有的文件系统以确定没有与指定组群一样的组群ID文件残留。使用该命令时一定要注意:不能删除任何原来存在用户的组群。删除组群前必须先删除组群内的用户。,3332修改文件删除由于用户组群的账户信息是记录在/etc/group和/etc/gshadow文件中的,所以直接删除这些文件中该用户组群的账户信息行也可以达到删除用户组群账户的目的,但要确认该组群中已经没有用户存在。首先,删除/etc/group文件中该用户对应的行。最后,删除/etc/gshadow文件中该用户对应的行。334修改用户组群属性如果对已经建立的组群名称、组群ID等不满意,则可以再进行修改。同样、修改组群属性既可以采用终端命令方式也可以采用修改配置文件方式。,3341终端命令修改修改用户组群属性用groupmod命令,该命令会按照命令行参数选项指定的要求修改系统的用户组群账户文件。命令用法:groupmod-ggid-o-nnew_group_nameold_group_name参数old_group_name是当前正在使用的(旧的)组群名称,该参数为必选;参数new_group_name是修改后新的组群名称,该参数是可选的;其他的是命令选项。,命令选项及说明:,参考示例:把组群名称stu更名为jsjstu,并将组群标识号改成555。执行:#groupmodg555njsjstustu,3342修改配置文件如果要修改组群名、组群ID,则用文本编辑器打开/etc/group和/etc/gshadow文件,编辑该组群所对应行中的组群域和组群ID域即可。如果要修改组群口令,由于口令加密后要保存在/etc/gshadow影子文件中,所以、修改口令最好还是用gpasswd命令。,34图形界面下的账户管理,在Linux系统中,用户账户、组群账户的管理也可以在XWindow的图形界面下完成,在图形界面下系统管理员利用图标、菜单、鼠标即可轻松地完成添加、删除用户和用户组群、设置用户和用户组群口令、修改用户和用户组群属性等各项操作;由于图形界面下的各项操作直观、简单和方便,不需要记忆许多命令和命令的参数选项,所以很容易掌握。但是在图形界面下命令执行的速度要比字符界面下慢。,341RedHat用户管理器简介以运行级5启动Linux并登录系统后,在桌面下部的状态栏上用鼠标左键单击“开始”图标,即状态栏上的红帽子,自动打开弹出式菜单、再单击“系统设置”菜单项、又自动打开下一级菜单、选中并左键单击“用户和组群”菜单项;如图3-3所示。,图3-3用户和组群菜单项,这时打开的用户管理器窗口界面如图3-4所示。该窗口默认的配置主要有菜单栏、图标工具栏和两个选项卡。,图3-4用户管理器,菜单栏上有“文件”、“首选项”和“帮助”三个下拉菜单。在“文件”下拉菜单中包含有“添加用户”、“添加组群”、“属性”、“刷新”、“删除”和“退出”菜单项,目的是利用这些菜单项和两个选项卡来完成所有的账户管理。在“首选项”下拉菜单中只有“过滤系统用户与组群”菜单项,目的是区分哪些是普通用户、哪些是系统用户,一般是对普通用户进行管理,所以默认过滤有效。在“帮助”下拉菜单中只有“内容”菜单项,目的是为超级用户和拥有超级用户权限的系统管理员使用用户管理器提供在线帮助。设置图标工具栏是为了可以更加方便、快捷地使用用户管理器,因此在其上放置了“添加用户”、“添加组群”、“属性”、“删除”、“帮助”和“刷新”功能图标,这些图标的功能与“文件”下拉菜单中菜单项的功能是等价的,因此、不用打开菜单就可以使用
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!