第三章 用户和组管理

一、用户配置文件和密码配置文件

二、用户组管理

三、用户管理

四、usermod命令

五、用户密码管理

六、mkpasswd命令

七、su命令

八、sudo命令

九、限制root远程登录

一、用户配置文件和密码配置文件

1.1用户配置文件

用户在系统中的存储方式,以/etc/passwd查看:由分割成7段字符;

第一段:用户名,他是代表用户账号的字符串。

第二段:存放的是账户密码。但是由于安全问题,将密码放到/etc/shadow中了,这里用X代替;

第三段:代表用户标识符,即uid,系统就是通过这个数字识别用户身份的。uid取值范围:0-65535,0代表root用户,普通用户用户标识符一般从1000开始,也可以自定义;

第四段:代表组标识符,即gid;

第五段:注释说明,无实际意义;

第六段:用户家目录;

第七段:用户的shell,Centos里就是bash。(用户登陆后,要启动一个进程,用来将用户下达的指令传给内核,这就是shell)

1.2密码配置文件

密码在系统中的存储方式,以/etc/shadow查看:由分割成9段字符;

第一段:用户名;

第二段:真正的密码,以加密方式显示,权限为000;

第三段:上次更改密码的日期(从1970-1-1到这个密码更改的日期有多少天)

第四段:要过多少天才可以修改密码;(0,表示不限制)

第五段:密码多少天后过期,在这期间必须更改密码;

第六段:密码到期前多少天进行提示;

第七段:账号失效期限:及密码到期,但没有修改,再过多少天招呼就会被锁定;

第八段:账号的有效期(从1970-1-1开始计算,在这个时间内可以使用,过期锁定账号)

第九段:保留字段,无实际意义。

二、用户组管理

2.1新增组的命令groupadd

格式:groupadd 【-g gid】 groupname

如果不加-g,则按照系统默认的gid创建组。跟uid一样,gid也是从1000开始的,可以自定义。

2.2用户组配置文件

使用/etc/group查看,包含:

2.2.1用户组信息文件

2.2.2组的名称:密码:组id:用户组成员

2.3组密码文件:/etc/gshadow

2.4删除用户组groupdel

注:①用户组内有用户时不能删除

②不能批量删除、新增组

三、用户管理

3.1新增用户 useradd

格式:useradd [-u uid] [-g gid] [-d home] [-M] [-s]

3.1.1选项

-u:表示自定义uid

-g:表示使新增用户属于已经存在的某个组,后面可以跟组id,也可以跟组名

-d:表示自定义用户的家目录

-M:表示不建立家目录

-s:便是自定义shell

3.1.2如果useradd不加任何选项,直接跟用户名,则会创建一个跟用户名一样的组

3.1.3如果-g后跟一个不存在的组id,则会报错,提示改组不存在。加-M选项,知识不创建家目录,但是在使用命令#cat ETC、passwd时会显示家目录,在#ls /home/username下,会提示目录不存在。

注:

①指定uid之后,后面再创建用户时,不指定uid,这时uid会从指定的uid向后继续增加;

②指定gid后,后面再创建用户时,不指定gid,这时gid不会根据指定的gid向后继续增加,只是根据uid增加

3.2删除用户userdel

格式:userdel [-r] username

选项:-r 表示会删除家目录,不加-r在删除用户时,不会删除用户家目录

四、usermod命令

4.1更改用户基本信息usermod

格式:usermod [选项] username

4.1.1选项

-u:更改用户uid;

-g:更改用户gid或组名;

-d:更改用户家目录;

-s:更改用户默认的shell

-G:增加用户的拓展组

-L:锁定用户密码(锁定后会在密码前加一个!);

-U:解锁密码

4.1.2拓展组:因为一个用户可以属于多个组,但是gid只有一个,把gid之外的组称为拓展组

注:直接#usermod -G 后面跟组名,候命的组名或gid或替换之前的,需要同时添加才行

五、用户密码管理

5.1用户密码设置:创建用户后,默认是没有密码的,需要设置密码后才能登陆

格式:passwd 【username】

5.1.1后面不加用户名,则默认是为自己设定密码;加用户名,则是为其他用户设定密码(只有root账户才可以)

5.1.2如果显示出来的密码有*或! ,说明密码有问题,用户账户不能登录

5.2锁定密码

-l:锁定密码(锁定后会在面前加两个!!

-u:解锁密码

5.3扩展:实现一条命令修改密码(一般情况下需要输两次密码才能进行更改)

格式:echo  "x\ny" | passwd --stdin username或echo -e "x\ny" | passwd username

--stdin表示只输入一次,可以不加;

\n为换行符,所以在修改密码时需要保持\n前后一致(即x=y);

| 表示管道符,把前面的结果输出到后面的命令

六、mkpasswd命令

6.1 mkpasswd==make passwd,用于生成密码

安装命令:yum install -y expect

格式:mkpasswd 【选项】

6.2选项

-l::指定密码长度

-s:指定密码里特殊字符个数

-c:指定小写字母个数

-C:指定大写字母个数

-d:指定数字个数

七、su命令

7.1切换用户

格式:su - username

选项:-:可以加,也可以不加,加-是彻底切换到后面的用户下,不加-也可以切换到后面跟着的用户下,但是还在原来的用户家目录下。

-c :以某个用户创建一个目录或文件,但不切换过去

#su -c "文件" username 

用户显示为$符号,root用户显示为#符号

八、sudo命令

8.1让普通用户临时拥有指定身份去执行一条命令(通常是给普通用户授权root权限)

8.2使用visudo(不使用vi /etc/sudoers,因为使用vi,只有只读的权限,不能修改),在## Allow root to run any commands anywhere这一行下直接添加如下内容,让dwy用户拥有root权限,同时可以执行所有命令(也可以只写一部份,单写命令时,需要写绝对路径,并以空格隔开)。

8.3在#visudo内使用:set nu命令,可以显示文件行标

8.4保存并退出

8.5如果每一个用户都这样添加比较麻烦,可以把多个用户添加到wheel这个组里,进入visudo,把%wheel  ALL=(ALL)       ALL
前的#去掉,让这一行生效,这样组里的用户就都拥有了sudo权限了。

九、限制root远程登录

9.1因为执行sudo su - root可以在普通用户不知道root密码的情况下切换到root用户(只需要输入用户自己的密码),不安全,所以我们要关闭root用户的远程连接(针对远程工具)

9.2/etc/ssh/sshd_config为sshd服务的配置文件,默认允许root账户通过ssh远程登录。

想要不允许远程登录,修改/etc/ssh/sshd_config配置文件,在文件中查找#PermitRootLogin yes,把yes改成no,修改后,重启ssh远程服务#systemctl restart sshd.service

9.3为了防止猜sshd登录密码,安装源epel-release ,使用yum install epel-release 安装上, 安装yum install -y fail2ban,别人猜密码时,在猜错3次后,这个连接的IP断60分钟(时间可以自定议)
# vi /etc/fail2ban/jail.conf

猜你喜欢

转载自blog.csdn.net/dwy2018/article/details/81407838