《linux用户管理及权限设置.docx》由会员分享,可在线阅读,更多相关《linux用户管理及权限设置.docx(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、linux用户管理及权限设置Linux用户管理及权限设置Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能够帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面可以以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和本人的主目录。实现用户账号的管理,要完成的工作主要有如下几个方面:用户账号的添加、删除与修改。用户口令的管理。用户组的管理。注:此讲明适用于Debian、
2、Redhat、suse、Ubuntu、Fedora等诸多linux系统,并对多少位没有区别。一、Linux系统用户账号的管理用户账号的管理工作主要涉及到用户账号的添加、修改和删除。添加用户账号就是在系统中创立一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。1、添加新的用户账号添加新用户帐号使用useradd命令,其语法如下:代码:useradd选项用户名其中各选项含义如下:代码:-ccomment指定一段注释性描绘。-d目录指定用户主目录,假如此目录不存在,则同时使用-m选项,能够创立主目录。-g用户组指定用户所属的用户组。-G用户组
3、,用户组指定用户所属的附加组。-sShell文件指定用户的登录Shell。-u用户号指定用户的用户号,假如同时有-o选项,则能够重复使用其他用户的标识号。用户名指定新账号的登录名。例1:代码:#useraddd/home/olcs-molcs此命令创立了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/home/olcs/home为默认的用户主目录所在的父目录。例2:代码:#useradd-s/bin/bash-golcsGolcs,root此命令新建了一个用户gem,该用户的登录Shell是/bin/bash,它属于olcs用户组,同时又属于root用户组,其中olcs用户
4、组是其主组。这里可能新建组:#groupaddolcs增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow,/etc/group等。Linux提供了集成的系统管理工具userconf,它能够用来对用户账号进行统一管理。2、删除帐号假如一个用户的账号不再使用,能够从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:代码:userdel选项用户名常用的选项是-r,它的作用是把用户的主目录一起删除。例如:代码:#userde
5、l-rolcs此命令删除用户olcs在系统文件中主要是/etc/passwd,/etc/shadow,/etc/group等的记录,同时删除用户的主目录。3、修改帐号修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。修改已有用户的信息使用usermod命令,其格式如下:代码:usermod选项用户名常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,能够为用户指定新的资源值。另外,有些系统能够使用如下选项:代码:-l新用户名这个选项指定一个新的账号,即将原来的用户名改为新的用户名。例如:代码
6、:#usermod-s/bin/csh-d/home/zinglabsgolcsteamolcs此命令将用户olcs的登录Shell修改为csh,主目录改为/home/zinglabs,用户组改为olcsteam。4、用户口令的管理用户管理的一项重要内容是用户口令的管理。用户账号刚创立时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才能够使用,即便是指定空口令。指定和修改用户口令的Shell命令是passwd。超级用户能够为本人和其他用户指定口令,普通用户只能用它修改本人的口令。命令的格式为:代码:passwd选项用户名可使用的选项:代码:-l锁定口令,即禁用账号。-u口令解锁。-d使
7、账号无口令。-f强迫用户下次登录时修改口令。假如默认用户名,则修改当前用户的口令。例如,假设当前用户是olcs,则下面的命令修改该用户本人的口令:代码:$passwdOldpassword:*Newpassword:*Re-enternewpassword:*假如是超级用户,能够用下列形式指定任何用户的口令:代码:#passwdolcsNewpassword:*Re-enternewpassword:*普通用户修改本人的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,假如两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。为了系统
8、安全起见,用户应该选择比拟复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不一样。为用户指定空口令时,执行下列形式的命令:代码:#passwd-dolcs此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。passwd命令还能够用-l(lock)选项锁定某一用户,使其不能登录,例如:代码:#passwd-lolcs备注:/usr/bin/passwd是修改用户密码的程序密码记录在/etc/shadow/etc/passwd是用户数据库,其中的域给出了用户名、加密口令和用户的其他信息./etc/shadow是在安装了影子(s
9、hadow)口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd文件中的加密口令移动到/etc/shadow中,而后者只对超级用户(root)可读。Linux/etc/shadow文件中的记录行与/etc/passwd中的逐一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。5、口令时效口令时效是系统管理员用来防止机构内不良口令的一种技术。在Linux系统上,口令时效是通过chage命令来管理的,格式为:chage下面列出了chage命令的选项讲明:-mdays:指定用户必须改变口令所间隔的最少天数。假如值为0,口令就不会过期。-Mdays:指定口令有效的最
10、多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。-ddays:指定从1970年1月1日起,口令被改变的天数。-Idays:指定口令过期后,帐号被锁前不活跃的天数。假如值为0,帐号在口令过期后就不会被锁。-Edate:指定帐号被锁的日期。日期格式YYYY-MM-DD。若不用日期,可以以使用自1970年1月1日后经过的天数。-Wdays:指定口令过期前要警告用户的天数。-l:列出指定用户当前的口令时效信息,以确定帐号何时过期。例如下面的命令要求用户user1两天内不能更改口令,并且口令最长的存活期为30天,并且口令过期前5天通知用户chage-m
11、2-M30-W5user1能够使用如下命令查看用户user1当前的口令时效信息:chage-luser1提示:1能够使用chage进入交互形式修改用户的口令时效。2修改口令本质上就是修改影子口令文件/etc/shadow中与口令时效相关的字段值。二、Linux系统用户组的管理每个用户都有一个用户组,系统能够对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创立用户时同时创立。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。1、增加一个新的用户组增加一个新
12、的用户组使用groupadd命令,其格式如下:代码:groupadd选项用户组能够使用的选项有:代码:-gGID指定新用户组的组标识号GID。-o一般与-g选项同时使用,表示新用户组的GID能够与系统已有用户组的GID一样。例1:代码:#groupaddolcs此命令向系统中增加了一个新组olcs,新组的组标识号是在当前已有的最大组标识号的基础上加1。例2:代码:#groupadd-g101group1此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。2、删除已有用户组假如要删除一个已有的用户组,使用groupdel命令,其格式如下:代码:groupdel用户组例如:代
13、码:#groupdelgroup1此命令从系统中删除组group1。3、修改用户组的属性修改用户组的属性使用groupmod命令。其语法如下:代码:groupmod选项用户组常用的选项有:代码:-gGID为用户组指定新的组标识号。-o与-g选项同时使用,用户组的新GID能够与系统已有用户组的GID一样。-n新用户组将用户组的名字改为新名字例1:代码:#groupmod-g102group1此命令将组group1的组标识号修改为102。例2:代码:#groupmodg10000-ngroup2group1此命令将组group1的标识号改为10000,组名修改为group2。4、用户在用户组间切换
14、假如一个用户同时属于多个用户组,那么用户能够在用户组之间切换,以便具有其他用户组的权限。用户能够在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:代码:$newgrproot这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理可以以通过集成的系统管理工具来完成。让Linux系统中的普通用户也有超级用户的权限三、目录权限管理1、3种基本权限在Linux中,将使用系统资源的人员分为4类:超级用户、文件或目录的属主、属主的同组人和其别人员。超级用户拥有对Linux系统一切操作权限,对于其他3类
15、用户都要指定对文件和目录的访问权限。代表字符对应数值权限对文件的含义对目录的含义r4读能够读文件的内容能够列出目录中的文件列表w2写能够修改该文件能够在目录中创立删除文件x1可执行能够执行该文件能够使用cd命令进入该目录-0无2、查看文件和目录的权限能够使用带l参数的ls命令查看文件或目录的权限每一行显示一个文件或目录的信息,这些信息包括文件的类型、文件的权限、文件的属主和文件的所属组,还有文件的大小以及创立时间和文件名。输出列表中每一行第一列的第一个字母指示了该文件的类型。各种文件类型及代表字符如下:-:普通文件b:块文件设备,是特殊的文件类型d:目录文件,事实上在ext2fs中,目录是一个
16、特殊的文件c:字符文件设备,是特殊的文件类型l:符号链接文件,实际上它指向另一个文件s、p:管道文件,这些文件关系到系统的数据构造和管道,通常很少见到第一列的其余9个字母可分为三组,3个字母一组,这3组分别代表:文件属主的权限、文件所属组的权限和其他用户的权限。每组中的3个栏位分别表示读、写、执行权限。第210个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来讲,具有阅读目录的权限。w(Write,写入):对文件而
17、言,具有新增、修改文件内容的权限;对目录来讲,具有删除、移动目录内文件的权限。x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来讲该用户具有进入目录的权限。:表示不具有该项权限。3、更改操作权限chmod/chown系统管理员和文件属主能够根据需要来设置文件的权限,有两种设置方法:文字设定法和数值设定法。1文字设定法chomd的文字设定法的格式为:chmodugoa+-=rwxugo第1个选项表示要赋予权限的用户,详细讲明如下:u:属主g:所属组用户o:其他用户a:所有用户第2个选项表示要进行的操作,详细讲明如下:+:增加权限-:删除权限=:分配权限,同时将原有权限删除第3
18、个选项是要分配的权限,详细讲明如下:r/x/w:允许读取/写入/执行u/g/o:和属主/所属组用户/其他用户的权限一样例如:chmodgo-rusers/取消组用户和其他用户对文件users的读取权限chmodu+xusers/对文件users的属主增加招待权限chmodu+x,go-rusers/对文件users的属主添加执行权限,同时取消组用户和其他用户对文件的读取权限2数值设定法chmod的数值设定法的格式为:chmodn1n2n3其中n1、n2、n3分别代表属主的权限、组用户的权限和其他用户的权限,这三个选项都是八进制数字。例如:chmod755adduser/对文件adduser的属
19、设置可读、写和执行的权限,所属组和其他用户只设置读和执行权限,没有写权限chmod600user1/取消组用户和其他用户对文件user1的一切权限原权限为-rw-rCrC备注:参加想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数R表示启动递归处理。4、更改属组或同组人改变文件的属主和组能够用chown命令,命令格式为:chown-R。例如:chmodosmonduser1/将文件user1的属主改为osmondchmodosmond.osmonduser1/将文件user1的属主和组都改成osmondchmod-Rosmond.osmondmydir/将mydir
20、目录及其子目录下的所有文件或目录的属主和组都改成osmond5、设置文件和目录的生成掩码用户能够使用umask命令设置文件夹的默认生成掩码。默认的生成掩码告诉系统当创立一个文件或目录时不应该赋予哪些权限。假如用户将umask命令放在环境文件.bash_profile中,就能够控制所有的新建文件或目录的访问权限。其命令格式为:umasku1u2u3其中,u1、u2、u3分别表示的是不允许属主有的权限、不允许同组人有的权限和不允许其别人有的权限。例如:umask022/设置不允许同组用户和其他用户有写权限umask/显示当前的默认生成掩码用法非常简单,只需执行umask777命令,便代表屏蔽所有的
21、权限,因此之后建立的文件或目录,其权限都变成000,依次类推。通常root帐号搭配umask命令的数值为022、027和077,普通用户则是采用002,这样所产生的权限依次为755、750、700、775。用户登录系统时,用户环境就会自动执行rmask命令来决定文件、目录的默认权限。6、特殊权限设置1SUID、SGID和sticky-bit除了上述的基本权限之外,还有所谓的特殊权限存在。由于特殊权限会拥有一些“特权,因此用户若无特殊需要,不应该去打开这些权限,避免安全方面出现严重漏洞,甚至摧毁系统。下面列出了3个特殊权限的讲明:SUID:当一个设置了SUID位的可执行文件被执行时,该文件以所有
22、者的身份运行,也就是讲无论谁来执行这个文件,他都拥有文件所有者的特权,能够任意存取该文件拥有者能使用的全部系统资源。假如所有者是root,那么执行人就有超级用户的特权了。SGID:当一个设置了SGID位的可执行文件被执行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-ppreserve,保留文件属性参数,才能保留原来所属的群组设置。sticky-bit:对一个文件设置了sticky-bit之后,尽管其他用户有写权限,也必须由属主执行删除、移动等操作,对一个目录设
23、置了sticky-bit之后,存放在该目录下的文件仅允许其属主执行删除、移动等操作。一个设置了SUID的典型例子是passwd程序,它允许普通用户改变本人的口令,这是通过改变/etc/shadow文件的口令字段来实现的。然而系统管理员决不允许普通用户拥有直接改变/etc/shadow文件的权限。解决方法是将passwd程序设置SUID,当passwd被执行时将拥有超级用户的权限,而passwd程序运行结束又回到普通用户的权限,下面是显示passwd程序的权限:一个设置了sticky-bit的典型例子是系统临时文件目录/tmp,这避免了不守法的用户存心搞鬼,恣意乱删其他用户存放的文件。下面显示/
24、tmp目录的权限:2SUID、SGID和sticky-bit的表示从上面的显示能够看出,SUID是占用属主的x位置为表示的;SGID是占用组的x位置来表示的;sticky-bit是占用其别人的x位置来表示的。在表示上有大小定之分,假若同时设置执行权限和SUID、SGID和sticky-bit,权限标识字符是小写的;假使关闭执行权限,则标识字符会变成大写。3设置特殊权限使用chmod命令设置特殊权限,仍然有字符设定法和数值设定法之分。使用字符设定法时,能够使用s和t权限字符,例如:chmodu+s/usr/bin/myapp/为程序/usr/bin/myapp添加SUID权限chmodg+s/h
25、ome/groupspace/为目录/home/groupspace添加SGID权限chmodo+t/home/share/为目录/home/share添加sticky-bit权限使用chmod的数值设定法时,要使用4位八进制数值,其中第一位八进制数用于设置特殊权限,后三位八进制数用于设置基本权限。例如:chmod4755/usr/bin/myapp/设置SUIDchmod2755/home/groupspace/设置SGIDchmod1755/home/share/设置sticky-bit附录:1、用户和组状态命令whoami:用于显示当前用户的名称groups:用于显示指定用户所属的组,若
26、未指定用户,则显示当前用户所属的组id:用于显示用户当前的UID、GID和用户所属的组列表su-:用于转换当前用户到指定的用户帐号,若不指定用户名则转换当前用户到root;若使用参数“-,则在转换当前用户的同时转换用户工作环境。newgrp:用于转换用户的当前组到指定的附加组,用户必须属于该组才能够进行。2、Linux下的帐户系统文件Linux下的帐户系统文件主要有/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow4个。1/etc/passwd文件中每行定义一个用户帐号,一行中又划分为多个不同的字段定义用户帐号的不同属性,各字段用“:隔开。各字段定义
27、如下:第一字段:用户登录系统时使用的用户名,它在系统中是唯一的。第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow文件中;第三字段:UID,是一个整数,系统内部用它来标识用户。每个用户的UID都是唯一的。root用户的UID是0,1499是系统的标准帐户,普通用户从500开场。第四字段:GID,是一个整数,系统内部用它来标识用户所属的组。第五字段:注释性描绘,例如存放用户名全称等信息,这是可选的第六字段:用户home目录所在位置,即用户登录系统后进入的目录。第七字段:批示该用户使用的shell,Linux默以为bash。例:给linux系统添加一个帐号:useradd-gmysql-d/home/test-mtest(:新建一个用户test,属于mysql组,开场目录是/home/test)然后进入/etc/passwd,能够看到刚加的用户的信息。如下test:x:504:501:/home/test:/bin/bash2/etc/passwd文件对任何用户均可读,为了增加系统安全性,用户的口令通常用shadowpasswords保护。/etc/shadow只对root用户可读。在安装系统时,会询问用户能否启用shadowpasswords功能。在安装好系统后可以以用pwconv命令和pwunconv来启动或取消shadow
限制150内