您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第06章-Linux用户登录与使用者管理
要登入Linux系统一定要有账号与密码才行,不同的用户应该要拥有不同的权限。我们还可以透过user/group的特殊权限设定,来规范出不同的用户组开发项目。在Linux的环境下,我们可以通过很多方式来限制用户能够使用的系统资源,还有特殊权限限制。第六章Linux用户登录与使用者管理另外,还记得系统管理员的账号root吗?请问一下,除了root之外,是否可以有其它的系统管理员账号?为什么大家都要尽量避免使用数字型态的账号?如何修改使用者相关的信息呢?这些我们都得要了解的。1Linux的账号与用户组管理员的工作中,相当重要的一环就是『管理账号』。因为整个系统都是你在管理的,并且所有的一般用户的申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务器主机的账号。在管理Linux主机的账号时,我们必须先来了解一下Linux到底是如何辨别每一个用户的。1.1用户标识符:UID与GID虽然我们登入Linux主机的时候,输入的是我们的账号,但是,其实Linux主机并不会直接认识你的『账号名称』的,他仅认识ID。而你的ID与账号的对应就在/etc/passwd当中。每个登录用户至少会取得2个ID:?和?那么文件如何判别它的所有者与用户组呢?其实就是利用UID与GID,系统会依据passwd和group的内容,找到UID/GID对应的账号与组名再显示出来。测试:更改一般用户的ID后,会发生什么情况?说明UID与账号的对应性,在一部正常运作的Linux主机环境下,随意修改系统上某些账号的UID很可能会导致某些程序无法进行,这是因为系统上已经有很多的数据在运行了,这将导致系统无法顺利运作的结果,因为权限的问题。1.2用户账号Linux系统上面的用户如果需要登录主机以取得shell的环境工作时,它需要如何进行呢?首先,利用tty1~tty7的终端机提供的login接口,并输入账号与密码后才能够登录。。当输入账号密码后,系统会帮助你处理什么?1)先找寻/etc/passwd里面是否有你输入的账号2)核对密码表3)ok的话,则进入shell的控管的阶段通过上面的流程我们可以知道,与用户账号有关的2个非常重要的文件,一个是管理用户UID/GID重要参数的/etc/passwd,一个则是专门管理密码相关数据的/etc/shadow。/etc/passwd每一行都代表一个账号,有几行就代表有几个账号在你的系统中!不过需要特别留意的是,很多账号本来就是系统中必须要的,我们可以简称他为系统账号,例如bin,daemon,adm,nobody等等,这些账号是系统正常运作时所需要的,请不要随意删掉。打开passwd文件显示如下信息:UID限制:id范围[0(系统管理员);1~499(系统账号);500~65535(可登陆账号)]GID与/etc/group有关,通过组名与GID对应用户主文件夹可更改shell/etc/shadow由于每个程序都需要取得UID与GID来判断权限的问题,因此各程序通过/etc/passwd来了解账号的权限。所以,/etc/passwd的权限必须要设定成为???这样的权限。早期的密码容易被tryanderror出来。后来发展出将密码移动到/etc/shadow这个文件分隔开来的技术,而且还加入很多的密码限制参数在/etc/shadow里头。root:$6$an2tPoXL$FRKoHsqxM6XqP/DGhjOqysEK.hyJjznXVLZL/mxIKYJZvAEcDp7w60o3VcL0OI/6dRRxM7vZA2aUZHwGucTfl0:16321:0:99999:7:::账号名称密码最近更改密码的日期密码不可被更改的天数密码需要重新更改的天数密码需要更改期限前的警告天数密码过期后的账号宽限时间账号失效日期保留1.3有效与初始化用户组:groups,newgrp认识了账号相关的两个文件/etc/passwd与/etc/shadow之后,那么对于群组的配置文件在哪里?还有,在/etc/passwd的第四列的GID又是什么?此时就需要了解/etc/group与/etc/gshadow。1.3.1/etc/group文件结构这个文件就是在记录GID与群组名称的对应。账号相关文件之间的UID/GID与密码相关性示意图1.3.2有效用户组(effectivegroup)与初始化用户组(initialgroup)GID就是所谓的『初始用户组(initialgroup)』,也就是说,当使用者一登入系统,立刻就拥有这个群组的相关权限的意思。在上例中,如果今天我要建立一个新的文件或者是新的目录,请问一下,新文件的群组是ubuntu还是users?这就得要检查一下当时的有效群组了(effectivegroup)。groups:有效与支持用户组的查看如果我以ubuntu这个用户的身份登入后,该如何知道我所有支持的群组呢?groupsnewgrp:有效用户组的切换如何更改有效用户组?就是使用newgrp。不过使用该命令式有限制的,那就是你想要切换的用户组必须是你已经有支持的用户组。练习:新建一用户,把users加入到该用户组,并更改users为该用户的有效用户组。所以,newgrp这个指令可以变更目前用户的有效群组,而且是另外以一个shell来提供登入的。(示意图)新取得一个shell,要回到原来的环境,则输入exit。1.3.3/etc/gshadow使用newgrp这个指令的用法前,需要了解/etc/gshadow这个设置。事实上,这个/etc/gshadow最大的功能是在于创建管理员。2账号管理既然要管理账号,当然是由新增与移除用户开始的。下面我们就分别来谈一谈如何新增、移除与更改用户的相关信息。2.1新增与删除用户:useradd,相关配置文件,passwd,usermod,userdeluseradd:新建用户#useradd[-uUID][-g初始用户组][-G次要用户组]\-[Mm][-c说明栏][-d主文件夹绝对路径][-sshell]用户账户名参数:-u:后面接的是UID,是一组数字。直接指定一个特定的UID给这个账号;-g:后面接的那个群组名称就是我们上面提到的initialgroup,该groupID(GID)会被放置到/etc/passwd的第四个字段内。-G:后面接的群组名称则是这个账号还可以支持的群组。这个参数会修改/etc/group内的相关资料。-M:强制!不要建立用户主文件夹-m:强制!要建立用户主文件夹-c:这个就是/etc/passwd的第五栏的说明内容,可以随便我们设定-d:指定某个目录成为主文件夹,而不要使用默认值;-r:建立一个系统的账号,这个账号的UID会有限制/etc/login.defs)-s:后面接一个shell,预设是/bin/bash-e:接日期,可写入shadow的第八字段,即账号失效日的设定-f:shadow第七字段,指定密码是否会失效。0为立即失效,-1永远不失效例1:新建一用户yfl207-test1,查看其主文件夹的权限,并在用户/组/密码文件中查看关于该用户的内容上述例子说明,当我们使用“useradd账号”创建用户时,系统会默认帮我们处理几个项目:•在passwd中创建一行与账号相关的数据;•在shadow中将此账号相关参数填入,但尚未有密码;•在group里面加入一个与账号一模一样的组名;•在home下面创建一个与账号同名的目录作为用户主目录,且权限为700。最后,需要使用“passwd账号”来给予密码例2:假设我知道我的系统当中有个群组名称为users,且UID700并不存在,请用user为初始用户组,以及UID为700创建一个名为yfl207-test2的账号。例3:创建一个系统账号,名称为yfl207-test3.账号管理是很复杂的,useradd这个指令至少可能会更改到的地方有:•/etc/passwd•/etc/shadow•/etc/group•/etc/gshadow•/home/username思考:在例1中为何useraddyfl207-test1他会主动在/home/yfl207-test1建立起主文件夹?主文件夹内有什么数据且来自哪里?为何预设使用的是/bin/bash这个shell?useradd参考文件默认用户组默认主文件夹所在目录密码失效日期,第七列账号失效日,第八列默认的shell用户主文件夹的内容数据参考目录是否主动帮用户创建邮件信箱关于群组的建立机制:当我们直接使用useradd来新增账号时,在预设的情况下,相关的信息都是参考/etc/default/useradd这个文件内容的设定的。不过,对于使用者群组的建立机制中,则有两种不一样的机制存在的:•私有用户组机制:新建使用者时,若无指定initialgroup,则系统会主动建立一个与账号相同的群组名称,以该群组作为用户的initialgroup;•公共用户组机制:新建使用者时,预设不会建立新群组,而以/etc/default/useradd内的GROUP设定值作为用户的initialgroup。passwd使用useradd建立了账号之后,在预设的情况下,该账号是暂时被封锁的,也就是说,该账号是无法登入的。那该如何是好?#passwd[--stdin]#passwd[-l][-u][--stdin][-S][-n][-x][-w][-i]账号参数:--stdin:通过来自前一个管道的数据作为密码输入-l:lock的意思,将shadow第2列最前面加上!使密码失效-u:unlock-S:列出密码相关参数,即shadow的大部分内容-n:shadow第4列-x:shadow第5列-w:shadow第6列-i:shadow第7列例4:请root给予yfl207-test2密码。例5:用yfl207-test2登录,修改自己的密码。理论上,你的密码最好要符合如下的要求:•密码不能与账号相同;•密码尽量不要选用字典里面会出现的字符串;•密码需要超过8个字符;•密码不要输入个人信息;•密码不要使用简单的关系式;•密码尽量使用大小写字符、数字、特殊字符的组合。例6:使用--stdin新建用户yfl207-test2密码(abcdef)。chage除了使用passwd–S列出密码相关参数外,还可以使用chage进行更加详细的密码参数显示#chage[-ldEImMw]账号名参数:--stdin:通过来自前一个管道的数据作为密码输入-l:列出该账号的详细密码参数-d:接日期(最近一次更改密码的日期,YYYY-MM-DD)-E:接日期(账号失效日,YYYY-MM-DD)-I:接天数(密码失效日期)-m:接天数(密码最短保留天数)-M:接天数(密码多久需要进行更改)-W:接天数(密码过期前警告日期)例7:列出yfl207-test2的详细密码参数chage有一个很不错的功能,即让用户在第一次登录时强制他们一定要更改密码后才能使用系统的资源。例8:新建一个名为yfl207-test4的账号,该账号第一次登录后使用默认密码,但必须要更改过密码后使用新密码才能够登录系统使用bash环境。usermod在useradd的时候加入了错误的设定数据。或者是,在使用useradd后,发现某些地方还可以进行细部修改。此时,当然我们可以直接到/etc/passwd或/etc/shadow去修改相对应字段的数据,不过,Linux也有提供相关的指令让大家来进行账号相关数据的微调。usermod[-cdegGlsuLU]username参数:-c:后面接账号的说明,即/etc/passwd第五列的说明,可以加入一些账号的说明。-d:后面接账号的主文件夹,即修改/etc/passwd的第六列;-e:后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八个字段数据。-g:后面接初始用户组,修改/etc/passwd的第四个字段,亦即是GID的字段。-G:后面接次要用户组,修改这个用户能够支持的
本文标题:第06章-Linux用户登录与使用者管理
链接地址:https://www.777doc.com/doc-4713617 .html