一、用户
Linux中用户是资源获取的标识符,资源分配,文件系统安全权限模型的核心要素之一。密码则是用户认证的凭证,用户信息和密码信息都存放在相应的文本文件中,密码信息在存放的过程用了一定的加密算法进行加密。
1.加密算法:
资源分派:
Authentication:认证(确认身份,也有可能好几个人一个身份)
用户名+口令验证
Authorization:授权(对文件操作)
Accouting|Audition:审计(根据日志判断操作)
加密方法(计算速度快,可以破解一切密码):
对称加密(DES,3DES,):加密和解密都是用同样秘钥,叫做对称加密
公钥加密(DSA,RSA):私钥和公钥。
私钥加密(认证用户),公钥解密。
单向加密:比较二次数据可以得知数据是否被修改
雪崩效应(蝴蝶效应):初始条件的细小改变,会导致数据的巨大变化
定长输出:
不可逆:
MD5:信息摘要,128bits定长输出
SHA1:安全的hash算法,160bits
SHA224: 224bits
SHA256: 256bits
SHA384: 384bits
SHA512: 512bits
更改加密算法authconfig –passalgo=sha256 –update
显示当前的加密算法 authconfig –test | grep hashing
diff 逐行比较两个文件的内容,列出两个文件之间不同。
man sslpasswd (此命令可以自己按照加密方式得到密码,但是支持MD5加密算法)
openssl passwd -1 -salt 123456789 (用MD5加密,然后在密码中加了123456789字符作为盐,用来保证相同密码加密的MD5码不相同)
2.相关存放信息文件有:
/etc/passwd 用户信息表,存放NAME、UID、GID、COMMENT、HOMEDIR、TYPE SHELL
/etc/shadow 用户密码信息表,存放加密后的密码,密码修改相关时限
/etc/group 组信息表,存放GROUPNAME、GID、其他将此组当做附加组的用户名
/etc/gshadow 组密码表,存放GROUPNAME、加密密码、其他将此组当做附加组的用户名
3.相关环境配置文件:
/etc/login.de 控制创建用户时系列参数
/etc/default/useradd 也是控制创建用户时的系列参数
/etc/shells 当前系统中存在的shell类型
etc/skel 创建用户家目录时里面的文件的来源
4.Linux安全上下文(security context)
运行中的程序:进程(process)
以进程发起者的身份运行:(是由root和mage决定的,不是cat决定,这两者执行cat的权限是不一样的)
root: /bin/cat
mage: /bin/cat
进程所能够访问资源的权限取决于进程的运行者的身份,而不是进程所有者的身份
组的类别
一个账号可以加入多个组,一个组也可以包含多个用户
例如:
group1:wang,mage,li
group2:wang,li
Linux组的类别:
用户的主要组(主组):(一个用户在创建的时候必须要指定一个组)
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户:私有组
这是默认的,新建一个用户,就会产生和用户同名的组,有且仅有一个
用户的附加组(辅助组,secondary group):
一个用户可以属于零个或多个辅助组
前提:进程有属主和属组;文件有属主和属组
(1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
(2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组
(3) 进程访问文件时的权限,取决于进程的发起者
(a) 进程的发起者,同文件的属主:则应用文件属主权限
(b) 进程的发起者,属于文件属组;则应用文件属组权限
(c) 应用文件“其它”权限
5./etc/passwd 用户信息文件详解
文件格式:
NAME:X:UID:GID:COMMENT:HOME:SHELL
NAME:用户名
X :用户密码占位符,以前用户密码存放在这里(pwconv,pwunconv。这两个命令可以将密码重新导入这里或者到导出回/etc/shadow)
UID:User IDentfie
用户识别码,每个用户唯一的识别码,Linux系统识别用户不通过NAME来识别,是通过UID识。
根据UID的数字,将用户分为两类:
65535
管理员用户:UID(0)
普通用户:
系统用户:UID (1-499)CentOS 6
UID (1-999)CentOS 7
普通用户:UID (500+) CentOS 6
UID (500+) CentOS 7
GID:Group IDentfie
基本组GID,每个用户都有一个基本组,这个基本组可以不是唯一的。基本组GID也分为同UID一样分为两类,具体分组见上面。
COMMENT:注释信息,就finger USERNAME 得出的信息。
HOME:用户的家目录路径
SHELL:shell类型
/etc/group 存放组信息表
格式: GROUPNAME:X:GID:附加组
GROUOPNAME: 组名
X : 组密码占位符
GID:组GID
附加组:其他用户以这个组为附加组的用户名
vigr 修改配置文件时,格式不对会提醒
/etc/passwd 存放密码的信息表
格式: login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
login name : 用户名
encrypted password:加密密码
date of last password change:最近修改密码的时间,从1970年1月1日
minimum password age:最小的修改密码时间
maximum password age:密码最长能使用的时间
password warning period:距离过期的警告时间
password inactivity period:非活动区间(账号一登陆就需要修改密码)
account expiration date: 账户有效期
vipw 修改配置文件时,格式不对会提醒
pwck 检查/etc/passwd 文件格式是否存在错误
/etc/gshadow
group name :组名
encrypted password:群组加密密码
administrators :组管理员
members :组成员
grpck 检查/etc/gpasswd 文件格式是否存在错误
pwck和grpck
用户创建:
用户创建方式之一:useradd 命令
useradd
-u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c "COMMENT":用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:为用户指明附加组,组必须事先存在
-N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户 CentOS 6: ID<500, CentOS 7: ID<1000
默认值设定: /etc/default/useradd文件中
显示或更改默认设置:
useradd -D
useradd –D -s SHELL
默认配置文件
/etc/default/useradd
/etc/skel/*
/etc/login.defs
批量创建用户:
newusers PASSWD.TXT
PASSWD.TXT 的格式必须是/etc/passwd 下面的格式
chpasswd 批量修改用户口令
cat SHADOW.TXT | chpasswd
SHADOW.TXT 的格式:
ACCOUNT:明文密码
修改用户属性:
usermod
-u UID: 新UID
-g GID: 新基本组
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
-s SHELL:新的默认SHELL;
-c 'COMMENT':新的注释信息;
-d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name: 新的名字;
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期;
-f INACTIVE: 设定非活动期限;
chage [OPTION]… LOGIN
-d LAST_DAY
-E, –expiredate EXPIRE_DATE
-I, –inactive INACTIVE
-m, –mindays MIN_DAYS
-M, –maxdays MAX_DAYS
-W, –warndays WARN_DAYS
–l,显示密码策略
下一次登录强制重设密码
chage -d 0 tom
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom
用户相关的其它命令
chfn 指定个人信息
chsh 指定shell
删除用户:
userdel
-r: 删除用户家目录;
设置用户密码:
passwd
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限;
–stdin:从标准输入接收用户密码;
echo "PASSWORD" | passwd –stdin USERNAME
用户组相关信息:
groupadd [OPTION]… group_name
-g GID: 指明GID号; [GID_MIN, GID_MAX]
-r: 创建系统组;
修改和删除组
组属性修改: groupmod
groupmod [OPTION]… group
-n group_name: 新名字
– g GID: 新的GID;
组删除: groupdel
groupdel GROUP
更改组密码
组密码: gpasswd
gpasswd [OPTION] GROUP
-a user: 将user添加至指定组中;
-d user: 从指定组中移除用户user
-A user1,user2,…: 设置有管理权限的用户列表
newgrp命令:临时切换基本组;
如果用户本不属于此组,则需要组密码
更改和查看组成员
groupmems [options] [action]
-g, –group groupname 更改为指定组 (只有root)
-a, –add username 指定用户加入组
-d, –delete username 从组中删除用户
-p, –purge 从组中清除所有成员
-l, –list 显示组成员
groups 显示用户组信息
显示用户相关信息:
id
-g, –group 仅仅显示有效GID
-G, –groups 显示所有组的GID
-n, –name
print a name instead of a number, for -ugG
-r, –real
print the real ID instead of the effective ID, with -ugG
-u, –user
print only the effective user ID
finger
原创文章,作者:fighter,如若转载,请注明出处:http://www.178linux.com/28892