1.三个用户文件
1.1用户信息文件:/etc/passwd
打开这个文件后,可以看到系统内所有的用户的信息,其中每一行是一个用户
列数 | 含义 |
1 | 用户名 |
2 | 密码位。 x代表该用户有密码 |
3 | 用户uid。 超级用户为0(就是root用户);系统用户是1~499;普通用户是500~65535 |
4 | 组id |
5 | 用户说明。 算是注释,没有实际意义 |
6 | 用户家目录。 系统用户的家目录没有意义,不用看 |
7 | /sbin/nologin:不能登录 /bin/bash:可以登录 |
在windows下,如果要把一个用户变为超级用户,是通过把这个用户加入超级用户组来实现。
但在linux中,修改配置文件中用户的组id并没有用,需要修改用户的uid才能让一个普通用户变为超级用户,也就是把uid号改为0,但这样做并没有意义,而且很危险。
1.2密码文件:/etc/shadow
列数 | 含义 |
1 | 用户名 |
2 | 加密密码。 (1)如果在加密密码前加一个!,则会让该用户无法登录 (2)!!和*代表没有密码,不可登录 |
3 | 密码最近更改时间 是一个时间戳,代表1970.1.1之后第几天 |
4 | 两次密码的修改间隔时间 是一个数字,以第3位为基准计算 |
5 | 密码有效期 是一个数字,以第3位为基准计算 |
6 | 密码修改到期前的警告天数 是一个数字,以第5位为基准计算 |
7 | 密码过期后的宽限天数 是一个数字,以第5位为基准计算 |
8 | 密码失效时间 也是一个时间戳,代表1970.1.1之后第几天 只要超过了此时间戳,用户就无法登录 |
1.3组信息文件:/etc/group
列数 | 含义 |
1 | 组名 |
2 | 密码位。 组密码的意义在于,可以让知道组密码的组用户进行组内成员的增删,正常情况下,这个操作只有root用户可以做。 但还是建议不要给组设置密码 |
3 | 组id,也就是GID |
4 | 组内其他用户 图中之所以都是空白是因为它们是同名用户的初始组,同时组内除了该用户没有其他用户 |
|初始组与附加组
初始组:每个用户必须有初始组,且只能有一个,一般都是以用户的同名组作为初始组。在创建用户的时候如果没有指定初始组,系统会同时自动创建一个同名组作为该用户的初始组
附加组:每个用户可以属于多个附加组。
2.用户与组的相关命令
2.1 添加用户命令useradd
useadd 选项 用户名
选项:
-g 组名:指定初始组
-G 组名:指定附加组
-d 目录:指定家目录
创建完用户后一定要设置密码,否则无法登录:passwd 用户名
有一些服务,如mysql、oracle等, 不会自动创建系统用户,这时候就需要手动创建其所需的系统用户,在这种情况下,才不需要设置密码
2.2修改密码命令passwd
(1)只有root用户可以使用 passwd 用户名 修改其他用户的密码
如果普通用户要修改自己的密码,需要输入 passwd ,不需要在passwd后加自己的用户名
(2)root用户可以通过passwd -l 用户名,使某个用户无法登录,也可以再通过passwd -u 用户名,对该用户进行解锁
锁住某个用户的原理就是在该用户的/etc/shadow文件的加密密码段前加上2个!
2.3用户删除命令userdel
uesrdel -r 用户名
-r:同时删掉用户的家目录
2.4创建组命令groupadd
groupadd 组名
2.5管理组内成员命令gpasswd
gpasswd -a 用户名 组名:把用户加入组
gpasswd -d 用户名 组名:把用户从组内删除
2.6删除组命令groupdel
groupdel 组名
*只能在组内没有初始用户的情况下才能删除组