linux的/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow
1./etc/passwd 存储用户信息
[root@oldboy ~]# head /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
一行记录对应着一个用户,每行记录被冒号:分隔为7个字段,这7个字段的具体含义为:
用户名:密码:uid:gid:解释描述:家目录:登录shell
500及以前的uid都是系统用户,普通用户的uid大于500
可通过id 用户名查看该用户的用户和组信息
2./etc/shadow 存储用户的密码信息
[root@oldboy ~]# head /etc/shadow root:$6$ylNOqOypZpCje1NL$B2cJYJxy0IeKspoC1BHRYP3snN8Xp8Umtgn7xc/vCrRCfTgOp.vh2Y/gOEMSG3eb6kA9yanPoHWKi0.i31oZ8/:17735:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7:::
一行记录对应着一个用户的密码信息,每行记录被冒号:分割为9个字段,这9个字段的具体含义为:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3./etc/group 存储组信息
[root@oldboy ~]# head /etc/group root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon
一行记录对应着一个组信息,每行记录被冒号:分割为4个字段,这4个字段的具体含义为:
组名称:组密码:组id:用户列表
4./etc/gshadow 存储组密码信息
[root@oldboy ~]# head /etc/gshadow root::: bin:::bin,daemon daemon:::bin,daemon
一行记录对应着一个组的密码信息,每行记录被冒号:分割为4个字段,这4个字段的具体含义为
组名称:组密码:组管理者:组成员列表
5.用户操作
①useradd新增用户
语法:useradd [-u uid] [-g 初始用户组] [-G 次要用户组] [-m|M] [-c 说明] [-d 主文件夹绝对路径] [-s shell] 用户名
-u:指定uid,可省略,如省略系统会默认创建普通用户并自动指定uid (如果要创建系统用户,需要使用-r参数,此时uid有要求/etc/login.def)
-g:指定初始用户组,可省略,如省略系统会自动创建一个与用户名相同的用户组,该值为/etc/passwd文件第4列的内容
-G:指定次要用户组,可省略
-m|M:是否强制创建用户主文件夹,可省略,系统用户默认强制不创建,普通用户(即uid>500)默认强制创建
-c:说明,即/etc/passwd文件第5列的内容
-d:指定主文件夹路径,可省略,默认为/home/用户名/
-s:指定登录shell,可省略,默认为/bin/bash
创建用户后需要为新用户设置密码
root用户为普通用户设置或修改密码:passwd 用户名,会提示输入新密码和确认新密码
普通用户修改自身密码:直接passwd,会提示输入旧密码、新密码和确认新密码
②usermod修改用户
语法:usermod [-u uid] [-g 初始用户组] [-G 次要用户组] [-c 说明] [-d 主文件夹绝对路径] [-s shell] 用户名
修改uid、初始用户组、次要用户组、说明、主文件夹和登录shell,各参数含义类似useradd。
usermod还有一个参数-a,通常与G搭配使用,表示追加增加附加组。
[root@peng ~]# id peng uid=1001(peng) gid=1001(peng) 组=1001(peng) [root@peng ~]# usermod -G group1 peng [root@peng ~]# id peng uid=1001(peng) gid=1001(peng) 组=1001(peng),2001(group1) [root@peng ~]# usermod -G group2 peng [root@peng ~]# id peng uid=1001(peng) gid=1001(peng) 组=1001(peng),2002(group2) [root@peng ~]# usermod -aG group1 peng [root@peng ~]# id peng uid=1001(peng) gid=1001(peng) 组=1001(peng),2001(group1),2002(group2)
③userdel删除用户
语法:userdel [-r] 用户名
-r:是否删除相关文件夹,默认不删除,-r表示删除主文件夹和邮件目录,一般是/home/username和/var/spool/mail/username
删除用户的时候会同时删除与用户同名的用户组
6.用户组操作
①groupadd增加用户组
语法:groupadd [-g gid] [-r] 用户组名
-g:指定gid,可省略,如省略系统会默认创建普通用户组并自动指定gid (如果要创建系统用户组,需要使用-r参数,此时uid有要求/etc/login.def)
②groupmod修改用户组
语法:groupmod [-g gid] [-n 新用户组名] 用户组名
-g:修改gid,通常不建议修改,容易造成资源错乱
-n:修改原用户组为新的名称
③groupdel删除用户组
语法:groupdel 用户组名
如果有用户使用某一个用户组作为初始用户组,则该用户组不能被删除
普通用户获取超级管理员权限的配置文件:/etc/sudoers.d,这个文件需要强制保存。
配置免密登录
ssh-keygen:三次回车,生成两个文件,即公钥id_rsa.pub和私钥id_rsa,路径$HOME/.ssh
ssh-copy-id username@hostname:需要输入以username用户登录hostname主机的密码,将本机的公钥id_rsa.pub拷贝到hostname主机
后续即可在本机上通过ssh username@hostname登录hostname主机而不需要输入密码