文章目录
一、管理用户账号
1.1用户账号概述
1.1.1用户账号的分类
- 超级用户: root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限,系统中超级用户是唯一的。
- 普通用户: 由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
- 程序用户: 在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail等。
1.1.2用户标识UID (User IDentity ,用户标识号)
- root用户账号的UID固定值0
- 程序用户账号的UID默认为Centos5,6: 1~499,Centos7: 1~ 999
- 普通用户的UID默认为Centos5, 6: 500~ 65535,Centos7: 1000~ 65535
1.1.3用户账号文件
-
作用:保存用户名称、宿主自录、登录Sell等基本信息,每一行对应一个用户的帐号记录
-
文件位置:
- /etc/passwd :保存用户名称、宿主自录、登录Sell等基本信息
- /etc/shadow:保存用户的账号、密码等有效信息
-
/etc/passwd
- 每一行对应一个用户的帐号记录
-
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一 定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中, 而passwd文件中仅保留密码占位符“x”。
-
某条记录格式:root:x:0:0:root:/root:/bin/bash
- 字段1:用户帐号的名称
- 字段2:用户密码占位符“x”
- 字段3:用户帐号的UID号
- 字段4:所属基本组帐号的GID号
- 字段5:用户全名
- 字段6:宿主目录
- 字段7:登录Shell信息( /bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁 用户登陆系统)
-
/etc/shadow
-
每一行对应一个用户的密码记录。 默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。
-
某条格式:
-
root:$6$LOm1iAJRGPY5SRjO$GbpwoyzdV6Gqf6FX14R6vRosIqm.xHScEcGp80r5w3T19U3k.p6nH7B1YEy2LPYch.8XOF1ga3KcXOrHgKHX30::0:99999:7:::
- 字段1:用户帐号的名称;
- 字段2:使用SHA512加密的密码字串信息,当为“*” 或“! !”时表示此用户不能登录到系统。,若该字段内容为空,则该用户无须密码即可登录系统;
- 字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数;
- 字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制;
- 字段5:密码的最长有效天数,自 本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999, 表示不进行限制;
- 字段6:提前多少天警告用户密码将过期,默认值为7;
- 字段7:在密码过期之后多少天禁用此用户;
- 字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用;
- 字段9:**保留字段(未使用),**没有特定用用途。
普通用户忘记密码怎么办?passwd 用户名
1.2用户账号管理
1.2.1 添加用户账号 —useradd
-
格式:useradd [选项]... 用户名
-
使用useradd添加账户完成以下任务:
- 在/etc/passwd文件和/etc/ shadow文件的末尾增加该用户账号的记录。
- 若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
- 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group和/etc/gshadow文件中。
-
常用选项:
选项 作用 -u 指定用户的UID号,要求该UID号码未被其他用户使用 -d 指定用户的宿主目录位置(当与-M一起使用时,不生效)只能用绝对路径指定目录,且不需要事先创建目录 -e 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式 -g 指定用户的基本组名(或使用GID号),对应的组名必须已存在 -G 指定用户的附加组名(或使用GID号),对应的组名必须已存在 -M 不建立宿主目录。(一般用于系统用户账号) -s 指定用户的登录Shell,(比如/bin/bash为可登陆系统,Isbin/nologin和/bin/false为禁止用户登陆系统)
示例:
[root@yxp ~]# useradd red
//添加名为red的用户
[root@yxp ~]# tail -1 /etc/passwd
red:x:1004:1004::/home/red:/bin/bash
//显示/etc/passwd 末尾一行,看有没有添加成功
[root@yxp ~]# tail -1 /etc/shadow
red:!!:18873:0:99999:7:::
//显示/etc/shadow 末尾一行
[root@yxp home]# ls
red susan test test1 test2 yxp
//可以看到red家目录在/home
[root@yxp home]# cd red
[root@yxp red]# ls -a
. .. .bash_logout .bash_profile .bashrc .mozilla
//都是隐藏文件
[root@yxp red]# ls -A
.bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# useradd -u 2000 test1
//添加名为test1,UID号为2000的普通用户
[root@localhost ~]# id test1
uid=2000(test1) gid=2000(test1) 组=2000(test1)
//可以看到UID变成了2000,GID默认和UID一致
[root@localhost opt]# useradd -d /opt/rr test2
//添加名为test2,并指定宿主目录位置在/opt/rr下
[root@localhost opt]# t