管理员的工作中,相当重要的一环就是【管理帐号】。因为整个系统都是你在管理的,并且所有一般用户的帐号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务器主机的帐号啦!
Linux主机并不会直接认识你的【帐号名称】的,他仅认识ID(ID就是一组号码)。
每个登入的使用者至少都会取得两个ID,一个是使用者ID(User ID,简称UID),一个是群组ID(Group ID,简称GID)。
1.查看系统里的用户名
# id username
查看具体帐号文件:/etc/passwd
Linux系统上面的用户登入主机以取得shell的环境来工作时,首先他必须要在计算机前面利用tty1~tty6的终端机提供的login接口,并输入帐号与密码后才能登入。如果是透过网络的话,那至少使用者就得要学习ssh这个功能了。那么你输入帐号密码后,系统帮你处理了什么呢?
1.先寻找/etc/passwd里面是否有你输入的帐号?如果没有则跳出,如果有的话则将该帐号对应的UID与GID(在/etc/group中)读出来,另外,该帐号的家目录与shell设定也一并读出。
2.再来则是核对密码表啦!这是Linux会进入/etc/shadow里面找出对应的帐号与UID,然后核对一下你刚刚输入的密码与里头的密码是否相符?
3.如果一切都OK的话,就进入Shell控管的阶段咯!
大致情况就是这样,所以当你登入你的Linux主机的时候,那个/etc/passwd与/etc/shadow就必须让系统读取啦(这也是很多攻击者会将特殊帐号写到/etc/passwd里头去的缘故),所以呢,你要备份Linux的系统的帐号的话,那么这两个文件就一定需要备份才行哟!
由上面的流程我们也知道了,跟使用者帐号有关的有两个非常重要的文件,一个是管理使用者UID/GID重要参数的/etc/passwd,一个则是专门管理密码相关数据的/etc/shadow!那这两个文件的内容就非常值得进行研究。
/etc/passwd文件结构
这个文件的构造是这样的:每一行代表一个帐号,有几行就代表有几个帐号在你的系统中!不过需要特别留意的是,里头很多帐号本身就是系统正常运作所必须要的,我们可以简称为系统帐号,如bin,daemon,adm,nobody等等。
我们先来看一下每个Linux系统都会有的第一行,就是root这个系统管理员那一行好了,你可以明显的看出来,每一行使用【:】分隔,共有七个东东,分别是:
1.帐号名称:
用来提供给对数字不太敏感的人类使用来登入系统的!需要用来对应UID。例如root的UID对应就是0
2.密码:
早起Unix系统的密码就是放在这个字段上!但是因为这个文件的特性是所有的程序都能够读取,这样以来很容易造成密码数据被窃取,因此后来就将这个字段的密码数据给他改到/etc/shadow中了。所以这里你会看到一个【x】
3.UID
这个就是使用者标识符!通常Linux对于UID有几个限制需要给你了解一下:
id范围:0(系统管理员);1~999(系统帐号);1000~60000(可登入帐号)
当UID是0时,代表这个帐号是【系统管理员】!所以当你要让其他的帐号名称也具有root的权限时,将该帐号的UID改为0即可。这也就是说,一部系统上面的系统管理员不见得只有root!不过很不建议有多个帐号的UID是0,容易让系统管理员混乱!
系统帐号是保留给系统使用的ID,其实处理0之外,其他的UID权限和特性并没有不一样。默认1000一下的数字让给系统作为保留帐号只是一个习惯。由于系统上面启动的网络服务或北京服务希望使用较小的权限去运作,因此不希望使用root的身份去执行这些服务。所以我们就得要提供这些运作中的程序的拥有者帐号才行。这些系统帐号通常是不可登入的。
可登入帐号一般是给使用者用的。事实上,目前的linux核心(3.10.x版)已经可以支持到(2^32-1)这么大的UID号码了。
4.GID
这个与/etc/group有关!其实/etc/group和/etc/passwd差不多,只是她是用来规范组名与GID的对应而已。
5.用户信息说明栏
这个字段基本上没有什么重要用户,只是用来解释这个帐号的意义而已,不过,如果你提供使用finger的功能时,这个字段可以提供很多的讯息。
6.家目录
这是用户的家目录
7.Shell
这里比较需要注意的是,有一个shell可以用来替代成让帐号无法取得shell环境登入的动作!那就是/sbin/nologin这个东西,这也可以用来制作纯pop邮件帐号这的数据
/etc/shadow文件结构
/etc/shadow的文件构造
1.帐号名称
2.密码:
这个字段内的数据才是真正的密码,而且是经过编码的密码。你只会看到一些特殊符号的字母!需要特别留意的是,虽然这些加密过很难被解出来,但是很难不等于不会,所以这个文件的预设权限是只有root才可以读写就是了!你的随时注意,不要不小心更动了这个文件的权限
梁歪,由于各种加密的技术不一样,因此不哦他年的编码系统会造成这个字段的长度不相同。
3.最近改动密码日期
4.密码不可变动天数
5.密码需要重新变动的天数
6.密码需要变更期限钱的警告天数
7.密码过期后的至哪个好宽限时间
8.帐号失效日期
9.保留
新增与移除使用者:useradd,相关配置文件,passwd,usermod,userdel
useradd新建用户
passwd给帐号给予密码
userdel删除用户
groupadd新增群组
groupdel删除群组