标签:
一、用户登录验证的过程
1.先找寻/etc/passwd里面是否有输入的账号?如果没有则跳出,如果有的话则将该账号对应的UID与GID(在/etc/group)读出来,另外,该账号的家目录与shell设定也一并读出。
2.再来则是核对密码表,这时linux会进入/etc/shadow里面找出有对应的账号与UID,然后核对下输入的密码与文件中的密码是否一致。
二、涉及到的文件
用户
/etc/passwd
账号名称:密码:UID:GID:用户信息说明:家目录:SHELL
/etc/shadow
账号名称:密码:最近更改密码的日期:密码不可能被更动天数(与第三字段相比):密码需要重新变更天数(与第三字段相比):密码需要变更前的警告天数(相对于第5字段):密码过期后账号宽限时间(相对于与第5字段):账号失效日:保留
群组
/etc/group
组名:群组密码:GID:此群组支持的账号名称
有效群组和初始群组
groups:有效与支持群组的查看
newgrp:有效用户组的切换
newgrp可以更改目前用户的有效用户组,而且是另外以一个shell来提供功能的。
/etc/gshadow
用户组名
密码列,同样,开头以!表示无合法密码,所以无用户组管理员
用户组管理员账号
该用户组的所属账号
因此稍微总结下:
用户:UID:/etc/passwd 组:GID,/etc/group
影子口令: 用户:/etc/shadow 组:/etc/gshadow
用户类型:管理员 :0,普通用户:1~65535,其中系统用户1-499,一般用户500~65535
用户组类别:
管理员组:普通组、 系统组
用户组类别:
私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户同名的组
基本组:用户的默认组
附加组:额外组:默认组以外的其他组
附加一些加密方法:
对称加密:加密和解密使用同一个密码
公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)
单向加密,散列加密:提取数据特征码,常用于数据完整性校验
1、雪崩效应
2、定长输出
MD5:Message Digest, 128位定长输出
SHA1:Secure Hash Algorithm, 160位定长输出
用户管理:
useradd,userdel,usermod,passwd,chsh,chfn,finger,chage
组管理:
groupadd,groupdel,groupmod,gpasswd
详细介绍
useradd [options] USERNAME
-u UID
-g GID(基本组)
-G GID...(附加组)
-c "comment"
-d /path/to/directory
-s SHELL
-m,
-M
-r 添加系统用户 其中主要参考的/etc/login.defs ,/etc/shells指定了当前系统可用的安全shell
-D,参考信息,其中主要参考的包括/etc/default/useradd,/etc/login.defs,/etc/skel/*
userdel:
userdel [options] USERNAME
-r:同时删除用户的家目录
id:查看用户的账号属性信息 -u,-g,-G-n
finger:查看用户账号信息
例子:
useradd -u 1011 -g 104 -G 104 -s /bin/bash -m -d /home/myuser2 myuser2
其实useradd账号时,主要操作包括
1.在/etc/passwd里面创建一行与账号相关的数据,包括创建UID/GID/主文件夹等
2.在/etc/shadow里面将此账号的密码相关参数填入,但是尚未有密码
3.在/etc/group里面加入一个与账号名称一模一样的组名
4.在home下面创建一个与账号同名的目录作为用户主文件夹,且权限为700
passwd [options] USERNAME
-l:锁定,密码失效
-u:解锁
-S:列出密码相关信息
-n:后面跟天数,多久之后不可改密码 ,shadow中第4个字段
-x:后面跟天数,多久之后必须改动密码,shadow中第5个字段
-w:后面跟天数,密码过期前的警告天数,shadow中第6个字段
chage
?相比于passwd -S来讲,chage能够更详细的进行密码的参数显示。
usermod
-u:UID, -g GID,-a -G 不适用-a选项,会覆盖此前的附加组
-c :账号说明 -d -m : 目录 -s shell -l修改账户名称
-L:锁定账号 -U:解锁账号
userdel
-r:删除用户的主文件夹
finger:查看用户的相关信息
chfn:修改finger的相关信息
chsh:修改shell的相关信息
id:查询与用户相关的UID和GID信息
关于用户组这一块:
groupadd: -g:后面接某个特定的GID,
-r:新建系统用户
groupmod: -g:修改既有的GID数字
- n:修改既有的组名
groupdel:删除用户组
标签:
原文地址:http://my.oschina.net/alfredliukai/blog/494174