一、/etc/passwd (账号重要参数文件), 来cat /etc/passwd看一下:linux
乍看一下以为这东西很深奥, 因而就放弃了. 那你就完蛋了. 这不是一个好习惯 , 其实不少事情只是看似很难, 若是你静下心来去了解它, 你会发现他真的能走进你的心扉! 呵呵.shell
你有没有发现它是有规律的, 有不少行, 而且每行的用:分隔成了几字段, 那究竟是几个字段呢, 是7个.apache
其实这个文件的每一行都表明一个账号(用户), 有多少行就说明系统中有多少个用户, 不禁得产生了一个问题, 那7个字段又都是什么意思呢? 接下来咱们来解释一下这7个字段安全
第一字段 账户名称. 如root(超级管理员)bash
第二字段 X (先觉得他是就X好吧)学习
第三字段 UID(用户的ID, 这东西对于系统来讲很是重要, 有人问了不是有用户名吗为何还有个狗P"UID", 其实对于系统来讲他只认识这个UID, 用户名只是提供给咱们看的, 方便好记, 仅此而已)this
第四字段 GID(群组的ID, 这东西对于系统来讲很是重要, 有人问了不是有群组名吗为何....此处省略十几字, 意思同上, 其实也没省下.呵呵)加密
第五字段 用户备注信息说明列 (就是账号的备注信息,好比这个账号干什么用的.为何建这账号什么地)spa
第六字段 用户的HOME目录; 如:/home/wwwtest
第七字段 Shell (用户登陆后取得的shell环境, 通常默认为/bin/bash, 注意:若是你想创建一个账号但却又不想让他登陆到系统,那这里就起到做用了. 你只需把这栏设置成/sbin/nologin, 细心的朋友可能注意到了/etc/passwd 文件下不少的系统用户这栏都是/sbin/nologin)
二、/etc/shadow:
为何要说到这个文件呢, 这就须要从咱们使用账号登陆系统提及了, 其实咱们的登陆流程是这样的:
如下咱们以用户echo来举例.
1.根据输入的用户名去/etc/passwd中寻找echo这个用户, 若是用户不存在直接登陆失败. 不然就会拿到UID, GID, 以及这个用户拥有的SHELL环境等.
2.每二步在则是来到/etc/shadow文件中核对用户输入的密码是否与echo这个用户名密码相同. 若是相同才能登陆系统.
还记得/etc/passwd 中的每一个字段"X"吗. 这个X处在早之前是用来存放用户密码的, 后来由于安全性的问题把用户的密码提到了/etc/shadow中. 因此/etc/shadow这个文件的主要做用就是存放用户的口令, 用户登陆系统时来这里验证. /etc/shadow文件与/etc/passwd文件格式几乎是同样的, 惟一的区别是/etc/shadow把每一行分为9个字段.
第一字段 账户名称 (与/etc/passwd保持一致)
第二字段 账户口令(即密码, 加密过的因此是一串字符)
第三字段 最近一次修改的日期
每四字段 密码多久以内不能被修改, 以天为单位
第五字段 口令须要变动的天数 (出于安全考虑, 能够这样设置,强制用户多久换一次密码)
第六字段 口令变动前的提醒天数(根据第五个字段, 前多少天提醒用户去修改口令)
第七字段 口令过时后的宽限时间(即第五字段过时后还能够宽限的天数, 过了这个天数账号就会默认为失效了)
第八字段 账号失效日期(账号若是超出这个设置后就会失效, 经过用在收费服务中, 或者咱们的后台任务当时, 任务完成账号失效等)
第九字段 保留字段, 目前无实际应用
用户的相关文件说完了. 你是否明白了. 若是你明白了, 接下来咱们来看看操做账号的几个相关命令:
.useadd(添加)
格式:useradd [-u UID] [-g 初始化群组] [-G 次要群组] [-mM] [-c 账号说明栏] [-d 家目录绝对路径] [-s shell] 账号名称
选项与参数
-u 指定UID, 能够省略该选项, 系统会自动分配一个UID
-g 初始化群组, 不指定默认建立新的群组, 群组名与账号名称相同
-G 次要的群组, 能够指定该账号的所属的其它群组,多个用,分开, 如-G g1,g2,g3
-c 账号的备注信息
-m 建立-d后指定的目录, 此为默认项
-M 不建立-d后指定的目录
-d 该用户的home目录
-s shell脚本环境, 默认为/bin/bash
如题: 咱们建立一个test用户,而且建立家目录为/home/test, 设置次要群组为apache, 账号备注为this is apache user
useradd -c'this is apache user' -Gapache -d'/home/test' -m test
.usermod(修改)
选项与参数, 大部分参数与useradd是同样的. 这里我只简单介绍向个附加的参数
-l 后接新的账号名称, 意思是修改账号名称
-L 暂时冻结该账号, 让账号没法登陆, 修改/etc/shadow的第二栏为!, 即用户口令栏,
-U 与-L相反, 解冻账号, 使账号恢复正常使用
用法与useradd相同
.userdel(删除)
选项与参数
-r 连同用户的HOME目录一同删除
如userdel -r test 将删除test用户, 而且将/home目录下的test目录一并删除.
linux下的命令通常都会有好多参数, 想记住是很是困难的. 这里也只是简单的介绍了一些经常使用的. 详细的还须要咱们用到的时候去查看, 好比能够用man usermod 来查看该命令的相关参数与说明. 学习不是一个简单的事情, 摆正心态,日积月累,勤加练习相信定有所获.