用户组和权限管理(一)
一、杂项知识整理
1、tee命令:从标准输入读取送至标准输出并保存到文件中,也可以发送至管道:
[root@localhost testdir]# cat /etc/issue | tee /testdir/tee.txt CentOS 7.2 Kernel \r on an \m [root@localhost testdir]# cat tee.txt CentOS 7.2 Kernel \r on an \m [root@localhost testdir]# cat /etc/issue | tee tee.txt | tr 'a-z' 'A-Z' CENTOS 7.2 KERNEL \R ON AN \M
2、用户标识:UID:十六位二进制数字 0-65535
管理员为0 普通用户为1-65534
系统用户1-499(centos6)1-999(centos7)
登录用户 500-6w 1000-6w
同一个UID可以有多个用户
3、加密算法:
对称加密,加密和解密使用同一个密码
非对称加密,加密和解密使用一对密钥
公钥 私钥
单向加密,只能加密不能解密:提取数据特征码
定长输出:
雪崩效率:初始条件微小改变,记过发生巨大改变
echo “asdfasdf” | md5sum/sha512sum
[root@localhost testdir]# echo "sadf" | md5sum 26c30bbc936c12d60c8befb0a5bea194 - [root@localhost testdir]# echo "sadf" | sha512sum 537ba4bac71e332b3ef10dc82b67f11f14f7a9ffc2399c6401a52d9ed20372e290a3c06efd8177195b5ad 814dc6f5017f acbabe218f61c83ee5518180eb5d497 -
算法:
MD5:message digest,128bits
sha1:secure hash algorithm,160bits
sha 224 256
sha 384 512等等
在计算时加salt,添加的随机数
4、/etc/passwd 文件格式如下
name:passwd:UID:GID:GECOS:Directory:shell
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
passwd:可以是加密的密码,也可以是占位符x
GECOS:用户注释信息
directory:家目录
shell:用户默认shell
/etc/shadow文件格式:
用户名:算法和加密密码(一般用sha512加密):最近一次修改时间(从1970年到密码最近一次被更改的天数):最短使用期限(密码再过几天可以被更改,0表示随时):最长使用期限:警告期(过期之前提前警告):过期期限:保留字段
zhangsan:$6$xcuKLAdE$DGFJeE2Qy5XubtEorWiI5oDPwmankBTnqayZdomdeddxKNKK7O55Yul6c3mnTHP58rc5TqXh1mj8/3atvdrtm0:17008:0:99999:7::: shiting:!!:17008:0:99999:7:::
shiting用户的算法和密码为!!,说明此用户没有设置密码。两个叹号都去掉之后可以无密码登录,否则不可用。usermod -L USER此命令就是在用户密码上加!,即锁定用户,使之无法登陆,本身有无密码皆可操作,usermod -U USER 解锁用户。
/etc/group 组信息库
group_name:passwd:GID:user_list(该组的用户成员,以此组为附加组的用户的用户列表)
5、两个命令:pwconv和pwunconv:将passwd中的密码转换到shadow中显示。将shadow中的密码显示在passwd中。
注意:四个用户和组子相关文件是:/etc/passwd /etc/shadow /etc/group /etc/gshadow。没有gpasswd这个文件。
6、finger命令:用于显示用户的相关信息:用户名,用户全名,终端设备号和登录时间等信息:
[root@localhost testdir]# finger root Login: root Name: root Directory: /root Shell: /bin/bash On since 六 7月 30 17:40 (CST) on tty1 42 seconds idle On since 六 7月 30 11:30 (CST) on pts/0 from 172.18.16.71 2 seconds idle Mail last read 六 7月 30 13:00 2016 (CST) No Plan.
二、命令详解及事例
1、id命令:显示用户的真是和有效id信息
用户名 显示uid gid等信息
-u 只显示有效用户uid
-g 显示用户的基本组id
-G 显示用户所属的所有组id
-n 显示名称而非id,例如ng则是显示id和名字
[root@localhost testdir]# id postfix uid=89(postfix) gid=89(postfix) 组=89(postfix),12(mail) [root@localhost testdir]# id -u shiting 1003 [root@localhost testdir]# id -g shiting 1003 [root@localhost testdir]# id -G shiting 1003 [root@localhost testdir]# id -n shiting id: 以默认格式无法只显示名称或只显示真实ID。
2、chage命令:修改账号和密码的有效期限:
下一次登录强制重新设置密码
chage -d 0 USER
[root@localhost ~]# chage -l user6 最近一次密码修改时间:8月 03, 2016 密码过期时间:从不 密码失效时间:从不 帐户过期时间:从不 两次改变密码之间相距的最小天数:0 两次改变密码之间相距的最大天数:99999 在密码过期之前警告的天数:7 [root@localhost ~]# chage -m 0 -M 42 -W 14 -I 7 user6 [root@localhost ~]# chage -l user6 最近一次密码修改时间:8月 03, 2016 密码过期时间:9月 14, 2016 密码失效时间:9月 21, 2016 帐户过期时间:从不 两次改变密码之间相距的最小天数:0 两次改变密码之间相距的最大天数:42 在密码过期之前警告的天数:14
-m 密码可更改的最小天数。
-M 密码保持有效的最大天数
-W 用户密码到期前,题前收到警告信息的天数
-E 账号到期的日期,过了这天,账号将不再可用
-d 上次更改的日期
-I 停滞时期,如果一个密码已过期这些天,那么此账号将不可用
-h 帮助信息
-l 列出当前的设置,由非特权用户来确定他们的密码或账号何时过期
[gejingyi@localhost ~]$ chage -l gejingyi 最近一次密码修改时间:7月 30, 2016 密码过期时间:从不 密码失效时间:从不 帐户过期时间:2月 12, 1970 两次改变密码之间相距的最小天数:0 两次改变密码之间相距的最大天数:99999 在密码过期之前警告的天数:7 [root@localhost testdir]# chage -l gejingyi 最近一次密码修改时间 :7月 29, 2016 密码过期时间 :12月 11, 2017 密码失效时间 :12月 18, 2017 帐户过期时间 :5月 05, 2018 两次改变密码之间相距的最小天数 :50 两次改变密码之间相距的最大天数 :500 在密码过期之前警告的天数 :7
更改时间用时间段,更改日期用准确日期TTTT-MM-DD;也可以通过更改配置文件保证之后创建的用户都按照参数设置为准:文件有两个,一个是/etc/login.defs:
PASS_MAX_DAYS99999
PASS_MIN_DAYS0
PASS_MIN_LEN5
PASS_WARN_AGE7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
一个为/etc/default/useradd:
[root@localhost testdir]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=42
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
其中第二个文件也为我们使用useradd命令添加新用户时进行默认配置,包括shell类型和默认邮箱建立以及家目录位置等,我们可以在此修改参数来更改useradd命令使用时的默认配置。
三、课后作业及练习
见下篇