单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第七章 系统管理,-,用户和组管理,本章目标,了解,linux,文件权限的分配,熟练掌握与用户管理相关的各种指令操作,掌握批量用户的添加操作,【,问题的提出,】,Geecy,软件开发公司即将开始在,Linux,系统上进行两个项目的开发。开发人员,David,和,Peter,组成一个小组,负责,A,项目的开发;开发人员,Jack,和,Mike,组成另一个小组,负责,B,项目的开发。,系统管理员,Ray,需要为这四名开发人员分别建立用户帐号,并满足以下要求:,(,1,)建立目录,“,/,project_a,”,,该目录里面的文件只能由,David,和,Peter,两人读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何的访问操作;,(,2,)建立目录,“,/,project_b,”,,该目录里面的文件只能由,Jack,和,Mike,两人读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何的访问操作;,(,3,)建立目录,“,/project,”,,该目录里面的文件只能由,David,、,Peter,、,Jack,和,Mike,四人读取、增加、删除、修改以及执行,其他用户只可以对该目录进行只读的访问操作。,【,问题分析,】,Linux,系统采用传统的,Unix,权限管理机制,对文件或目录的权限设置不能精确到每个用户。也就是,不能直接指定某个文件的权限类似于“对,X,和,Y,用户只读、对,M,和,N,用户可读可执行、对,P,和,Q,用户可读可写可执行”这么详细。,在,Linux,中文件权限的设置对象只有三种:文件的拥有者(,1,个用户)、组的拥有者(若干个用户)以及其他用户(若干个用户)。但一个用户可以加入到多个用户组,从而可以形成比较复杂的关系,以满足现实需求。,因此,可以建立三个用户组:,prj_a,(,组员有,David,和,Peter),、,prj_b,(,组员有,Jack,和,Mike),和,prj(David,、,Peter,、,Jack,和,Mike),。,然后:,(,1,)对目录“,/project_a”,设置权限,允许组,prj_a,读取、增加、删除、修改以及执行,不允许其他用户进行任何的访问操作;,(,2,)对目录“,/project_b”,设置权限,允许组,prj_b,读取、增加、删除、修改以及执行,不允许其他用户进行任何的访问操作;,(,3,)对目录“,/project”,设置权限,允许组,prj,读取、增加、删除、修改以及执行,允许其他用户对该目录进行只读的访问操作。,查看文件权限,字 符,代表的权限,-,没有权限,r,允许读取,w,允许写入,x,允许执行,s,已经设置,user ID bit,或,group ID bit,t,设置,sticy,bit,。将程序的一部分存放在系统缓存中,再次执行时就可以节省系统时间。,管理本地文件,文件权限管理,按文件所有权分:,属主:指文件的创建者,佣有者。对文件具有全权,是文件的主人。,属组:相互间有关系的用户。,其它人:与文件无关的用户。,文件所有者,同组人,其它人,管理本地文件,(,续,),Linux,的文件权限用,8,进制来表示,如“,644”,表示“,rw-r-r,-”,更改文件权限的命令为,chmod,改变权限,chmod,改变文件或目录的权限状态。只有文件或目录的所属用户或,root,用户能改变权限。,chmod,选项,用户,修改方法 权限,file1 file2,rootwww,#,chmod,-R xyz,文件或目录,选项与参数:,xyz :,数字类型的权限属怅,为,rwx,属怅数值的相加。,-R :,连同子目彔下的所有文录都会变更,例:,chmod,777 file,who(,用户,),Who,说 明,u,所属用户,g,所属群组,o,其他用户,a,所有用户,(all),opcode,(,修改方法,),Opcode,说 明,+,增加权限,-,删除权限,=,分配权限,同时将原本的权限删除,例:如果一个文本权限为,-,rw-rwx,ex1,chmod,u+x,ex1,chmod,u=,rx,g,=r ex1,chmod,o-wx,ex1,将文件,file1.txt,设为所有人都可读取,将文件,file1.txt,与,file2.txt,设为文件拥有者与所属群组可写入,其它人不可写,将当前目录下的所有文件与子目录都设为任何人可读,chmod,a+r,file1.txt,chmod,u+r,g+r,o+r,file1.txt,chmod,ug+w,o-w,file1.txt file2.txt,chmod,u+w,g+w,o-w,file1.txt file2.txt,chmod,R,a+r,*,chmod,-R,u+r,g+r,o+r,*,更改文件的属主和属组命令为,chown,用法:,chown,属主,:,属组,file,或,chown,属主,.,属组,file,例如:,chown,huang,:,huang,a.txt,要改变成的新的所有者必须存在于,/etc/,passwd,文件中。,例如:将,wang,中的文件的属主改为,dong,chown,dong,wang,/,chown,dong,wang,/*,chown,dong,wang,/* -R,由于指定了,wang,/*,,所以,wang,中文件的属主连同目录,wang,的属主一起改变。但,wang,目录中的子目录中的文件及其子目录的属主并未改变。也就是说,,chown,命令的作用范围仅限于树型目录的一个层。,用户和组的管理,Linux,有很强的用户管理机制,它是通过用户和用户组这两个概念来实现的,用户是指可以登录到系统的帐号,组是一个或多个用户的集合。把多个用户集合起来以组为单位来定义他们的属性,例如控制哪些文件可以和不可以被存取,Linux,靠,UID,和,GID,来区分用户和组,管理用户帐号资料的文件,passwd,所有用户帐号资料都处于,/etc/,passwd,文件中。,每一个帐号都有七个栏位的资料,其间用“:”分割。,帐号名称:密码:,UID,:,GID,:个人资料:用户目录:,shell,栏位说明,帐号名称,登入系统时使用的名称。名称长度不能超过,8,个字符。通常由小写字母或数字组成,不能包含冒号。,密码,登入密码。可能会看到加密过后的乱码。如果是,x,,表示密码经过,shadow passwords,保护。其可以在安装系统时设置,也可以用,pwconv,执行保护或用,pwunconv,停止。,一个空格,(,就是,:),表示登入时不需密码 。,UID(user,id),用户身份号码,用于识别用户帐号。它是唯一的,通常为,0,65535,之间的整数。,root,的,UID,为,0,。,1100,被系统的标准用户使用。用户设置的帐号可以从,101,开始,系统预设从,500,开始。,其中:,1,10,:守护程序,11,99,:系统保留,100,以上:正常用户,栏位说明,GID(group,id),群组号码。每个用户帐号都会属于一个起始群组,(primary group),。属于同组用户,,GID,也相同。新增一个帐号时,系统会为这个用户增加一个起始群组,同时以帐号名作为群组的名称,此用户就是这个起始群组唯一的成员。是一个,0,32767,之间的整数。,个人资料,记录关于用户的姓名、电话等信息,各个信息之间使用“,”分割开。这个栏目通常没有记录。,用户目录,定义用户的,home,或初始工作目录,即用户登录后所进入的目录,通常是,/home/name,,,name,与用户帐号名称相同。,(/etc/default/,useradd,),shell,定义用户登入系统后启动的,shell,,预设是,bash,。,用户帐户管理,添加用户,更改用户口令,删除用户,添加用户,只有,root,用户才可以添加其它用户,普通用户没有添加用户的权力,1,、在,/etc/,passwd,加入新帐号的相关资料。,2,、在,/etc/group,加入新用户的起始群组。,3,、建立用户的目录为,/home/name,。,4,、同时也将,/etc/,skel,目录中以,.,开头的文件复制到用户目录中,这些文件是一些环境设置文件。,添加用户的两种方式:,手工编辑配置文件,用字符命令或者图形程序添加用户,(,推荐,),添加用户的命令:,useradd,options,用户名,例:,#,useradd,test,useradd,(,adduser,) option,参数,-d dir,设置用户目录。预设值为用户帐号。,例:,useradd,-d /etc/,hhh,yyy,-e date,设置此帐号的有效日期到,date,。,-f days,在帐号过期,days,天后停止这个帐号。,当值为,0,时帐号则立刻被停用。,当值为,-1,时则关闭此功能,预设值为,-1,。,useradd,-e 2005-1-8 -f 0,useradd,-e 2005-1-8 -f 1,useradd,-e 2005-1-8 -f -1,-g group,设置此帐号的起始群组。可以是系统中现存的组名或,GID,。,例:,useradd,-g 6692,iiii,-G group,,,设置此帐号的附属群组。此帐号可以属于多个群组,多个群组之间可以用“,”分开。,例,:,useradd,-G 6691,6692,uuu,useradd,-G,uuu,yyy,iop,-s shell,设置登入后启动的,shell,。,-u UID,设置所增加的用户帐号的,UID,,当前指定的,uid,中的最大数目加,1,为缺省的,uid,。,修改,passwd,文件,用户帐号的信息存储在,/etc/,passwd,文件中,可以使用,root,直接对,passwd,文件操作,实现对用户帐号的增加和删除。,例如:在,passwd,中增加一行,增加用户,liu,:,liu:6688:15:LiuHong:/home/liu:/bin/csh,这时使用,liu,登录,不需要口令。,(,这时系统中要有建立好的,/home/,liu,目录,),使用手动增加的用户可以实现登录,但提示符不完全。,使用,passwd,命令改变口令字,没有设置用户密码的用户是不能登录系统的,修改密码的命令为:,passwd,options,用户名,例:,用户帐号停用,将用户帐号停用有几个不同的程度:,1,、暂时停止登入系统,以后再恢复;,2,、从系统中删除帐号,保留用户文件;,3,、完全删除帐号及该用户的所有文件。,删除帐号,删除一个用户帐号,可以直接将,passwd,文件中该用户的记录整行删除。也可以使用,userdel,指令来完成。,使用,userdel,删除帐号,会在系统内所有与帐号有关的文件中,包括,/etc/,passwd,、,/etc/shadow,以及,/etc/group,,将指定帐号的所有资料删除。,userdel,-r name,删除用户,删除用户帐户的命令为,userdel,例:,userdel,test,(注:这样只删除了用户帐户,但是用户的主目录还是保存在服务器的硬盘当中),r,参数会一同删除用户的主目录以及目录中的文件,例:,userdel,-r test,修改,passwd,文件删除用户,在,passwd,文件中删除相关的用户行。如:,emily:x:8888:20:emily,zhang:/usr/users/emily:/bin/csh,将用户,emily,删除。,管理群组资料的文件,group,存放在,/etc/group,文件中。,群组名称:群组密码:,GID,:群组成员,(,属于该组的用户名单,用户之间用逗号分隔,),格式如下:,group-,name:x:gid:additional,-user,组管理,建立一个组,groupadd,组名,例如:增加,gid,值为,200,的用户组,exam,groupadd,g 200 exam,groupadd,-r,系统组帐号,该组帐号的,gid,小于,500,删除一个组,groupdel,组名,例如:删除用户组,exam,groupdel,exam,把新建的用户添加到组当中,useradd,g,初始组,G,附属组 用户名,root,用户可以直接对,/etc/group,文件进行编辑,从而实现对用户组的增加和删除。,chgrp,group file,将指定文件的属组改为指定组,例如:将当前目录中文件,duigong,的属组改变为,informix,chgrp,informix,duigong,将文件,xyz,的属组改变为,abc,chgrp,abc,xyz,vipw,对,passwd,文件进行编辑时将自动锁定该文件,编辑结束后对该文件进行解锁,保证了文件的一致性。等同于“,vi /etc/,passwd,”,。,vigr,对,group,文件进行编辑时将自动锁定该文件,编辑结束后对该文件进行解锁,保证了文件的一致性。等同于“,vi /etc/group”,。,pwck,用于验证用户帐号文件,/etc/,passwd,和,/etc/shadow,的每行中字段的格式和值是否正确。,grpck,用于检测文件,/etc/group,和,/etc/,gshadow,的每行中字段的格式和值是否正确。,