1.认识/etc/passwd 和 /etc/shadow
a./etc/passwd解说:root : x : 0 : 0 : root : /root : /bin/bash
①第一个字段:用户名,代表用户账号。用户名可以是大小写字母、数字、减号(不能放在首位)、点(不建议使用)或下划线
②账户的口令,但为了安全因素,放在了/etc/shadow 中,此处就用x代替
③用户标识号,uid。系统用这个数字识别用户身份。uid : 0 - 65535;0是超级用户root的标识号,1-499有系统保留,作为管理账号,普通用户从500 开始
④组标识号gid:对应着/etc/group中的一条记录
⑤注释说明,没有实际意义,记录用户的一些属性
⑥用户的家目录,当用户登录时就处在这个目录下,root的家目录是/root ,普通用户的的家目录为 /home/username,可以自定义
⑦用户的shell:用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。如果想建立一个不允许登录的账号,可以把该字段改成/sbin/nologin,默认是 /bin/bash
b./etc/shadow 解说: root:$1$$DZLpNGFlp...:16819:0:99999:7: : :
①
用户名
②密码,但已经加密
③上次更改密码的日期这个数字以1970年1月1日为基准计算出来的
④要过多少天才可以改密码,默认是0
⑤面膜多少天后到期,默认是99999
⑥密码到期前的警告期限
⑦账号失效期限,表示密码已经到期,如果没在到期前修改密码,那么再过3天,这个账号便失效
⑧账号的生命周期
⑨作为保留用的
2.用户和用户组管理
1.新增组的命令groupadd:groupadd 【-g GID】 groupname 如果不加 -g,则按照系统默认的gid创建组,gid也是从500开始的
2.
删除组groupdel :groupdel groupname,当一个组中含有用户时,只有把用户删除了才可以删除组
3.
增加用户 useradd:useradd 【-u UID】【-g GID】【-d HOME】【-M】【-s】,如果不跟任何选项,则会创建一个跟用户名相同的组=
选项:
-u:自定义ID
-g:可以跟组id,也可以跟组名
-d:自定义家目录
-M:不建立家目录
-s:表示自定义shell——/sbin/nologin,/bin/bash
4.删除账户userdel :
userdel【-r】username:-r——当删除用户时,一并删除该用户的家目录
5.chfn:更改用户的finger,就是/etc/passwd 文件第5个字段中所显示的信息
3.用户密码管理
建立密码规则的建议:长度大于10个字符,密码中包含大小写字母,数字以及特殊字符,不规则性,不要带有自己的名字电话生日
passwd【username】:若没有用户名,则为自己设定密码。只有root才可以修改其他账户的密码,普通用户只能修改自己的密码
mkpasswd:生成密码,
先安装:yum install -y expect
mkpasswd -l 数字 a -s 数字b -d 数字c:指定生成密码为a个字符,其中含有 b个特殊字符 ,c个数字
4.用户身份切换
whoami:查看当前用户是谁,root用户的shell提示符是#,普通用户的提示符是$
su【-】username:跟了- ,当前目录(home目录)会发生变化,不加-,不会发生变化
sudo:默认只有root可以使用此命令,普通用户必须有root预先设定
①用 visode
命令修改文件,在“##Allow root to run any commands anywhere”下的root ALL=(ALL) ALL 下一行添加 被授权的用户名 ALL=(ALL) ALL
②然后通过 su 转至 普通用户 su username
③执行命令
④被告知没有权限,则授予其权限 sudo 命令
⑤输入用户的密码
或者在“Allow people in group wheel to run all commands” 下的“#wheel ALL=(ALL) ALL”前的“#"去掉,以后授权时,只需要把用户加入到wheel这个组中即可
只允许普通账户登录:并不输入密码就能用sudo切换到root账户
①执行visudo命令
②在文件最后加入如下三行
User_Alias USER_SU = username1,username2
Cmnd_Alias SU=/bin/su
USER_SU ALL=(ALL) NOPASSWD: SU
③配置文件后:wq保存
④当用username1或者username2登录的时候,执行命令”sudo su -“,即可切换到root账户,获得root账户的所有权利
不允许root远程登录Linux(只适用通过ssh远程登录Linux的情况):修改配置文件 /etc/sshd/sshd_config 查找 #PermitRootLogin
yes 改为 #PermitRootLogin
no;保存配置文件后,重启sshd服务——service sshd restart
5.使用密码工具 管理密码
KeePass软件