lesson

1. /etc/passwd
由 : 分隔成7个字段
(1) 用户名 规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法 
(2) x 放密码,安全起见放到 /etc/shadow
(3) uid (0-4294967294=2^32-2)  root uid=0 1-499系统保留 普通账户是从500开始
(4) gid  对应 /etc/group
(5) 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等  用 chfn 更改
(6) 用户家目录
(7) shell  /bin/bash, /bin/false, /sbin/nologin


2. /etc/shadow
使用 : 分隔9个字段
(1) 用户名
(2) 密码,用SHA-512加密过,不可逆
(3)上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + 10 + 1= 15341’. 
(4)要过多少天才可以更改密码, 0 不限制
(5)密码多少天后到期,默认是99999,可以理解为永远不需要改 
(6)密码到期前的警告期限 
(7)账号失效期限,到期后过多少天锁定帐号 
(8)账号的生命周期
(9)作为保留用的,没有什么意义


3. 新增/删除用户和组
groupadd  -g  指定gid
groupdel  如果组内有用户,不能删除
useradd -u -g  -d指定家目录  -M不建立家目录 -s 自定义shell 
userdel  -r 删除用户的家目录
usermod -u -s -d  -L -U -g -G 
chfn  finger


4. 创建、修改用户密码
passwd  
创建密码的规则:长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。
mkpasswd  生成密码的工具,安装 expect包


5. 用户身份切换
su   -  用来初始化环境变量 $PATH $HOME等
sudo  su到root需要输入root的密码不安全 
visudo 编辑/etc/sudoers 配置文件  没有命令需安装 yum install -y sudo
格式: user   host=(as_user)  commands
比如:  aming  ALL=(root)   /bin/ls    //它的意思是,让aming这个普通用户,拥有root的权限,针对ls这个命令。

应用:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户 (root不允许远程登录
User_Alias USER_SU = test, test1, aming   //做用户的别名,可以写多个用户
Cmnd_Alias SU = /bin/su        //做命令的别名,可以写多个命令
USER_SU ALL=(ALL) NOPASSWD: SU   //其中NOPASSWD的意思是,普通用户使用sudo的时候,不需要输入自己的密码。

扩展学习:
1. keepass http://www.keepass.info  
2.  usermod锁定账户和passwd锁定账户的区别
3.  对于su命令的一点疑惑
4.  su和sudo的区别
5. sudo -i 也可以登录到root吗
6. /etc/shadow 第二段密码详细介绍

原文地址:https://www.cnblogs.com/LinuxSuDa/p/4363401.html