企业邮箱怎么注册格式,吉林seo推广,一家专门做原产地的网站,郓城网站建设公司一.Linux账户与组的基本概念
在Limux操作系统中#xff0c;每一个文件和程序都归属于一个特定的 “用户”。每个用户都由一个唯一的身份来标识#xff0c;这个标识称为用户ID (UserID, UID )。系统中的每一个用户也至少需要属于一个“用户分组”#xff0c;即由系统管理员所…一.Linux账户与组的基本概念
在Limux操作系统中每一个文件和程序都归属于一个特定的 “用户”。每个用户都由一个唯一的身份来标识这个标识称为用户ID (UserID, UID )。系统中的每一个用户也至少需要属于一个“用户分组”即由系统管理员所建议的用户小组这个小组中包含着许多系统用户。与用户一样用户分组也是由一个唯一 的身份来标识的该标识称为用户分组ID (GroupID GID)。用户可以归属于多个用户分组。对某个文件或程序的访问是以它的UID和GID为基础的。一个执行中的程序继承了调用它的用户的权利和访问权限。一般来说 用户和组有如下几种对应关系: 一对一某个用户可以是某个组的唯一成员。 多对一多个用户可以是某个唯一的组的成员 不归属其他用户组。 一对多某个用户可以是多个用户组的成员。 多对多多个用户对应多个用户组并且几个用户可以是归属相同的组。
每个用户的权限可以被定义为普通用户和根用户(root)。普通用户只能访问其拥有的或者有权限执行的文件。根用户能够访问系统全部的文件和程序而不论根用户是否是这些文件和程序的所有者。根用户通常也称“超级用户””其权限是系统中最大的可以执行任何操作。 二.Linux账户信息的关键文件
1.Password用户账号文件
# /etc/passwd文件是Linux安全的关键文件之一。该文件用于用户登录时校验用户的登录名(LOGNAME),加密的口令数据项(PASSWORD),用户ID(UID),默认的用户分组ID(GID),用户信息(USERINFO),用户登录子目录以及登录后使用的shell(SHELL).这个文件的每一行保存一个用户的资料而用户资料的每一个数据项采用冒号:分割如下所示
[rootlocalhost ~]# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
解析
登录名root
加密后的口令表示x #一般使用不可逆的加密算法。
UID:0
GID:0
用户信息root
宿主目录/家目录/root
登录后执行的shell:/bin/bash
# 在安全检查中需要着重注意该文件的权限默认/etc/passwd文件的权限为0644.使用命令stat /etc/passwd进行检查如果该文件的权限和属主发生了异常情况(如误操作或入侵事件)需要引起注意。[rootlocalhost ~]# stat /etc/passwd文件/etc/passwd大小2429 块8 IO 块4096 普通文件
设备fd00h/64768d Inode18064261 硬链接1
权限(0644/-rw-r--r--) Uid( 0/ root) Gid( 0/ root)
最近访问2022-05-16 14:45:23.469999910 0800
最近更改2022-04-25 16:32:16.217576422 0800
最近改动2022-04-25 16:32:16.217576422 0800
创建时间-
[rootlocalhost ~]# 2.Shadow用户影子文件
# linux使用不可逆的加密算法加密口令。由于加密算法是不可逆的所以从密文时得不到明文的。但/etc/passwd文件是全局可读的加密算法是公开的恶意用户获取/etc/passwd文件后便极有可能破解口令。而且在计算机性能日益提高的今天对帐户文件进行字典攻击的成功率会越来越高速度越来越快。因此针对这种安全问题Linux/UNIX广泛采用了Shadow(影子)文件机制而加密的口令转移到/etc/shadow文件里该文件只为root超级用户可读而同时/etc/passwd/文件的密文域显示为一个X从而最大限度地减少了密文泄露的机会
[rootlocalhost ~]# cat /etc/shadow
username:passwd:lastchg:min:max:warn:inactive:expire:flag
解析
username用户的登录名
passwd加密的用户口令
lastchg最后一次修改事件表示从1970年1月1日起到上次修改口令所经过的天数
min最小修改时间间隔表示两次修改口令之间至少经过的天数
max密码有效期表示口令还会有效的最大天数如果是99999则表示永不过期
warn密码需要更改前的警告天数表示口令失效期多少天内系统向用户发出警告
inactive密码过期后的宽限天数
expire账户失效时间表示用户被禁止登录的时间
flag保留域暂未使用 3.group组账号文件
# /etc/passwd文件中包含着每个用户默认的分组IDGID.在/etc/group文件中这个GID被映射到该用户分组的名称以及统一分组的其他成员中去。
[rootlocalhost ~]# cat /etc/group
组名:用户组口令:组标识号:组内用户列表
组名是用户组的名称由字母或数字构成。与/etc/passwd中的登录名一样组名不应重复。
口令字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令即这个字段一般为空或者是*。
组标识号与用户标识号类似也是一个整数被系统内部用来标识组。
组内用户列表是属于这个组的所有用户的列表不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组也可能是附加组。 4.组账号文件gshadow
# 如同用户账号文件的作用一样组行号文件也是为了加强组口令的安全性防止黑客对其施行暴力攻击而采用的一种将组口令与与组的其他信息相分享的安全机制。其格式包括用户组名加密的组口令和组成员列表。[rootlocalhost ~]# groupadd wanan //添加用户组
[rootlocalhost ~]# gpasswd wanan //给用户组设置密码为123
正在修改 wanan 组的密码
新密码
请重新输入新密码
[rootlocalhost ~]# cat /etc/gshadow | grep wanan
wanan:$6$aWR/c/VciOaU$J8trSU3fJWNDKHn3Z.m6Frtu7UKCDp6YZmUo8NNjSMtylKtG.ZjI6xz9yC.WdEuuGIKb0JIB5D898/kjeO22P1::
[rootlocalhost ~]# 三.Linux账户与组管理操作
1.添加账户
Ⅰ.useradd命令
相关参数 -c comment描述新用户账号通常为用户全名 -d home_dir设置用户主目录默认值为用户登录的登录名并放在/home/目录下 -D 创建新账号后保存为新账号设置的默认信息 -e expire_date用YYYY-MM-DD格式设置账号过期日期 -f inactivity设置口令失效时间。inactivity值为0时口令失效后账户立即失效 -g 设置基本组 -k 框架目录设置框架目录该目录包含用户的初始配置文件创建用户时间时该目录下的文件都被复制到用户主目录下 -m 自动创建用户主目录并把框架目录(默认为/etc/skel下的文件复制到用户主目录下 -M 不创建用户主目录 -r 允许保留的系统账号使用用户ID创建一个新账号 -s shll 类型 设定用户使用的登录shell类型 -u 用户ID设置用户ID -b, --base-dir BASE_DIR 新账户的主目录的基目录-c, --comment COMMENT 新账户的 GECOS 字段-d, --home-dir HOME_DIR 新账户的主目录-D, --defaults 显示或更改默认的 useradd 配置-e, --expiredate EXPIRE_DATE 新账户的过期日期-f, --inactive INACTIVE 新账户的密码不活动期-g, --gid GROUP 新账户主组的名称或 ID-G, --groups GROUPS 新账户的附加组列表-h, --help 显示此帮助信息并推出-k, --skel SKEL_DIR 用此目录作为骨架目录-K, --key KEYVALUE 不使用 /etc/login.defs 中的默认值-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库-m, --create-home 创建用户的主目录-M, --no-create-home 不创建用户的主目录-N, --no-user-group 不创建同名的组-o, --non-unique 允许使用重复的 UID 创建用户-p, --password PASSWORD 加密后的新账户密码-r, --system 创建一个系统账户-R, --root CHROOT_DIR chroot 到的目录-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files-s, --shell SHELL 新账户的登录 shell-u, --uid UID 新账户的用户 ID-U, --user-group 创建与用户同名的组-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
例创建一个用户名为David的用户其描述信息为Project manager用户组为Project_group(如果系统中没有这个组需要事先创建这个组)。登录shell为/bin/bash登录主目录为/home/david。[rootlocalhost ~]#groupadd Project_manager
[rootlocalhost ~]# useradd -r david -c Project manager -g Project_group -s /bin/bash -d /home/david
[rootlocalhost ~]# id david
uid988(david) gid1003(Project_group) 组1003(Project_group)
[rootlocalhost ~]#
Ⅱ.adduser命令
例创建zaoan用户[rootlocalhost ~]# adduser zaoan
Ⅲ.修改/etc/passwd配置文件
[rootlocalhost ~]# vim /etc/passwd
[rootlocalhost ~]# cat /etc/passwd | grep wuan
wuan:x:1002:1002:This is a wuan:/home/wuan:/bin/bash
[rootlocalhost ~]# id wuan
uid1002(wuan) gid1002(wanan) 组1002(wanan)
[rootlocalhost ~]# 2.添加组
Ⅰ.groupadd命令
#语法格式groupadd [选项] 用户组名
选项:-f, --force 如果组已经存在则成功退出并且如果 GID 已经存在则取消 -g-g, --gid GID 为新组使用 GID-h, --help 显示此帮助信息并推出-K, --key KEYVALUE 不使用 /etc/login.defs 中的默认值-o, --non-unique 允许创建有重复 GID 的组-p, --password PASSWORD 为新组使用此加密过的密码-r, --system 创建一个系统账户-R, --root CHROOT_DIR chroot 到的目录-P, --prefix PREFIX_DIR directory prefix
例子创建一个GID为6830组名为test_group的用户组命令如下
[rootlocalhost ~]# groupadd -g 6830 test_group //创建成功
[rootlocalhost ~]# groupadd -g 6831 test_group //由于组名不唯一所以创建失败
groupadd“test_group”组已存在
[rootlocalhost ~]# groupadd -g 6831 -f -o test_group //由于组名不唯一所以创建失败但是不提示
[rootlocalhost ~]# groupadd -g 6830 test_group1 //由于GID不唯一所以创建失败
groupaddGID “6830”已经存在
[rootlocalhost ~]# groupadd -f -g 6830 test_group1 //使用-f选项则创建成功gid递增为6831
[rootlocalhost ~]# groupadd -g 6830 -f -o test_group1 //综合使用-f和-o选项系统将Gid设置6831
Ⅱ.修改/etc/groups配置文件
[rootlocalhost ~]# vim /etc/group
[rootlocalhost ~]# cat /etc/group | grep test_group2
test_group2:x:6832:
[rootlocalhost ~]# groupadd test_group2
groupadd“test_group2”组已存在
[rootlocalhost ~]#
3.给用户或组设置口令
Ⅰ.给用户设置口令
第一种passwd 用户名
[rootlocalhost ~]# passwd zaoan
更改用户 zaoan 的密码 。
新的 密码
无效的密码 密码少于 8 个字符
重新输入新的 密码
passwd所有的身份验证令牌已经成功更新。
[rootlocalhost ~]#
第二种使用echo 密码 | passwd --stdin 用户
[rootlocalhost ~]# echo centos | passwd --stdin zaoan
更改用户 zaoan 的密码 。
passwd所有的身份验证令牌已经成功更新。
[rootlocalhost ~]# Ⅱ.给组设置口令
语法格式gpasswd 组名
[rootlocalhost ~]# gpasswd test_group2
正在修改 test_group2 组的密码
新密码
请重新输入新密码
[rootlocalhost ~]# 4.修改账户和组信息
Ⅰ.usermod命令
#语法格式
usermod [-LU][-c 备注][-d 登入目录][-e 有效期限][-f 缓冲天数][-g 群组][-G 群组][-l 帐号名称][-s shell][-u uid][用户帐号]
#选项
-c备注 修改用户帐号的备注文字。
-d登入目录 修改用户登入时的目录。
-e有效期限 修改帐号的有效期限。
-f缓冲天数 修改在密码过期后多少天即关闭该帐号。
-g群组 修改用户所属的群组。
-G群组 修改用户所属的附加群组。
-l帐号名称 修改用户帐号名称。
-L 锁定用户密码使密码无效。
-sshell 修改用户登入后所使用的shell。
-uuid 修改用户ID。
-U 解除密码锁定。
例子:使用usermod命令将zaoan的组改为root用户id改为2021
[rootlocalhost ~]# usermod -g root -u 2021 zaoan
[rootlocalhost ~]# id zaoan
uid2021(zaoan) gid0(root) 组0(root)
[rootlocalhost ~]#
使用usermod命令将zaoan的用户描述改为database manager 其登录shell改为/bin/sh;
[rootlocalhost ~]# usermod -s /bin/sh -c database 1manager zaoan
[rootlocalhost ~]# cat /etc/passwd | grep zaoan
zaoan:x:2021:0:database 1manager:/home/zaoan:/bin/sh
[rootlocalhost ~]#
在某些情况下需要锁定用户即暂时不允许该用户登录。例如临时锁定test用户不允许其登录那么可以使用命令
usermod -L 用户
[rootlocalhost ~]# usermod -L zaoan
[rootlocalhost ~]# su zaoan
bash-4.2$ ls
ls: 无法打开目录.: 权限不够
解除用户锁定状态的命令
[rootlocalhost ~]# usermod -U zaoan
[rootlocalhost ~]# su zaoan
Ⅱ.groupmod命令
#语法格式groupmod [-g 群组识别码 -o][-n 新群组名称][群组名称]
#选项-g, --gid GID 将组 ID 改为 GID-h, --help 显示此帮助信息并推出-n, --new-name NEW_GROUP 改名为 NEW_GROUP-o, --non-unique 允许使用重复的 GID-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD-R, --root CHROOT_DIR chroot 到的目录-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
例子将组test_group的名称改为team需要注意的是更换的新名称在老名称之前
[rootlocalhost ~]# groupmod -n team test_group
例子将组team的GID改为6840
[rootlocalhost ~]# groupmod -g 6840 team
例子将组team的GID更改为6830名称改为test_group
[rootlocalhost ~]# groupmod -g 6830 -n test_group team 5.删除用户和组
Ⅰ.userdel命令
#语法格式userdel -r 用户名
Ⅱ.配置/etc/passwd文件
#将目标用户所在那一行删除
Ⅲ.groupdel命令
#语法格式groupdel 组名
Ⅳ.配置/etc/group文明
#将目标组名所在的哪一行删除 6.其他操作命令
Ⅰ.chfn:修改用户信息
#语法作用主要用来修改用户的全名办公室地址电话等。
#语法格式
chfn [-f full-name][-o office][-p office-phone][-h home-phone][-u][-v][username]
-u | --help显示帮助文档
-v | --version显示命令版本
-f | --full-name设置真实姓名
-o | --office设置办公室地址
-h | --home-phone设置家庭电话
-p | --office-phone设置办公室电话 Ⅱ.chsh:改变用户的shell类型
#语法格式chsh [-s shell][--list-shells][--help][--version][username]
-s或--shell更改系统预设的shell环境。
-l或--list-shells列出目前系统可用的shell清单
-u或--help在线帮助
-v或-version显示版本信息。 四.Linux账户密码安全配置
1.密码复杂度设置
# linux系统中设置密码强度时安全领域中十分重要的环节。弱密码复杂度设定包含两种方式第一种是使用命令authconfig第二种是修改文件/etc/pam.d/system-auth内容。
Ⅰ.authconfig命令
authconfig命令功能非常丰富下面只介绍密码相关参数。 --passminlen number最小密码长度 --passminclassnumber最小字符类型数 --passmaxrepeatnumber每个字符重复的最大数 --passmaxclassrepeatenumber密码中同一类的最大连续字符数 --update更新设置到配置文件中
例如需要设定用户的密码必须不小于8位且其中包含大写字母小写字母数字和其他字符每个字符最多重复两次。使用命令如下
[rootlocalhost ~]# authconfig --passminlen8 --passminclass4 --passmaxrepeat2 --update
[rootlocalhost ~]# cat /etc/security/pwquality.conf
minlen 8 //最大长度为8
minclass 4 //密码中必须包含4种类型
maxrepeat 2 //每个字符最多重复两次
maxclassrepeat 0 //同一类字符连续数位0
lcredit 0
ucredit 0
dcredit 0
ocredit 0
使用用户zaoan测试输入弱密码123456
[rootlocalhost ~]# useradd ah1
[rootlocalhost ~]# passwd
更改用户 root 的密码 。
新的 密码
无效的密码密码少于8个字符
Ⅱ.使用/etc/pam.d/system-auth文件
# system-auth文件属于Linux的PAM认证系统中的cracklib模块该模块能提供额外的密码检测能力且在Centos中已经默认安装。同时system-auth文件时密码设置及登录的控制文件因此可以通过修改该文件内容设置密码复杂度。
system-auth文件包含4个组件auth,account,password,session auth组件认证接口要求并验证密码 account组件检测是否允许访问。检测账户是否过期或者在末端时间内能否登录 password组件设置并验证密码 session组件配置和管理用户session
[rootlocalhost ~]# cat /etc/pam.d/system-auth
auth required pam_env.so
auth required pam_faildelay.so delay2000000
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid 1000 quiet_success
auth required pam_deny.so
查看/etc/pam.d/system-auth
该文件支持四种依赖关系requiredrequisitesufficientoptinal required要求该模块必须success才能继续。即使失败用户也不会立刻获知直到所有相关模块完成。 requisite必需的该模块必须success才能使认证继续进行 sufficient足够的如果失败则忽略 optinal无论是否失败将忽略结果
其中pam_cracklib.so支持的选项如下 minlenN新密码的最小长度 dcreditN当N0时表示新密码中数字出现的最多次数当N0时表示新密码中数字出现的最小次数 ucreditN当N0时表示新密码中大写字母出现的最多次数当N0时表示新密码中大写字母出现的最小次数 lcredit N当N0时表示新密码中小写字母出现的最多次数当N0时表示新密码中小写字母出现的最小次数 ocreditN当N0时表示新密码中特殊字符出现的最多次数当N0时表示新密码中特殊字符出现的最小次数 maxrepeatN拒绝包含多个N个相同连续字符的密码。默认值为0表示禁用此检查。 maxsequenceN拒绝包含长于N的单调字符序列的密码。默认值为0表示禁用此检查实例是‘12345’或‘fedcb’。除非序列只是密码的一小部分否则大多数此类密码都不会通过吉纳丹检查 enforce_for_root如果用户更改密码是root则模块将会在失败检查时返回错误。默认情况下此选项处于关闭状态只打印失败检查的消息。但root仍可以更改密码。 2.密码策略设置
# Linux系统中设置密码策略是安全领域中十分重要的环节。密码策略的设定包括三种方法第一种方法修改/etc/shadow文件配置策略第二种方法是使用chage配置策略第三种方法是修改/etc/login.defs配置文件。
Ⅰ.修改/etc/shadow文件配置策略
例如:设置用户的密码策略为密码最长有效期为90天密码修改之间最小天数为10天口令生效前5天开始通知用户修改密码密码过期后宽限时间为7天。
#修改前
[rootlocalhost ~]# cat /etc/shadow | grep hehao
hehao:$6$xI81rvuf$2cef2BCsnHXaN.RINKlFYmVjcq8yXEd9u8jEpsRhid8t/7mprbui2gjusl9I3n.ToBc8ymhaG4xpb7HuRruts1:19130:0:99999:7:::
#修改
[rootlocalhost ~]# vim /etc/shadow
#修改后
[rootlocalhost ~]# cat /etc/shadow | grep hehao
hehao:$6$xI81rvuf$2cef2BCsnHXaN.RINKlFYmVjcq8yXEd9u8jEpsRhid8t/7mprbui2gjusl9I3n.ToBc8ymhaG4xpb7HuRruts1:19130:10:90:5:7::
[rootlocalhost ~]# Ⅱ.使用chage命令策略配置
使用chage命令可以显示更加详细的用户密码信息还可以修改密码策略
#基本语法chage [选项] 用户名
选项
# -l列出用户的详细密码状态
# -d 日期 修改/etc/shadow文件中指定用户密码信息的第三个字段即最后一次修改密码的日期格式为YYYY-MM-DD。
# -m 天数修改密码最短保留天数即/etc/shadows文件中的第四个字段
# -M 天数修改密码的有效期即/etc/shadow文件中的第五个字段
# -W 天数修改密码到期前的警告天数即/etc/shadow文件中的第六个字段
# -I 天数修改密码到期前后的宽限天数即/etc/shadow文件中的第七个字段
# -E 日期修改账号的失效日期格式为YYYY-MM-DD即/etc/shadow文件中的第八个字段
举例
#查看用户hehao的密码状态
[rootlocalhost ~]# chage -l hehao
最近一次密码修改时间 5月 18, 2022 -d
密码过期时间 8月 16, 2022
密码失效时间 8月 23, 2022
帐户过期时间 从不 -E
两次改变密码之间相距的最小天数 10
两次改变密码之间相距的最大天数 90 -
在密码过期之前警告的天数 5 -W
[rootlocalhost ~]#
#设置密码过期时间为2022年5月20号
[rootlocalhost ~]# chage -E 2022-05-21 hehao
举例设置hehao用户密码策略为密码最长有效期为90天口令生效前5天开始通知用户修改密码密码过期后宽限天数为7天且用户首次登录需要重设密码。
[rootlocalhost ~]# chage -d 0 -M 90 -W 5 -I 7 hehao
[rootlocalhost ~]# cat /etc/shadow | grep hehao
hehao:$6$xI81rvuf$2cef2BCsnHXaN.RINKlFYmVjcq8yXEd9u8jEpsRhid8t/7mprbui2gjusl9I3n.ToBc8ymhaG4xpb7HuRruts1:0:0:90:5:7::
[rootlocalhost ~]#su hehao
password:
you are required to chage your password immendiately (root enforced)
Changing password for hehao:
(current) UNIX password:
Ⅲ.修改/etc/login.defs配置文件
# /etc/login.defs文件用于在创建用户时对用户的一些基本属性进行默认设置如指定用户UID和GID的范围用户的过期时间密码的最大长度等。
# 需要注意的是该文件的用户默认设置对root用户无效并且当此文件中的配置与/etc/passwd和/etc/shadow文件中的用户信息有冲突时系统会以/etc/passwd和/etc/shadow文件为准。
#login.defs配置文件参数
#MAIL_DIR /var/spool/mail
--创建用户时系统会在目录/var/spool/mail中创建一个用户邮箱如lamp用户的邮箱是/var/spool/mail/lamp
#PASS_MAX_DAYS 99999
--密码的有效期99999是自1970年1月1日的起始密码有效天数相当于237年可以理解为永久
#PASS_MIN_DAYS 0
--表示自上次修改密码以来最少隔多少天后用户才能修改密码默认值为0
#PASS_MIN_LEN 5
--指的是密码的最小长度默认不小于5位但是现在用户登录时验证已经被PAM模块取代所以这个选型并不生效
#PASS_WARN_AGE 7
--指定在密码到期前多少天系统就开始通知用户密码即将到期默认7天
#UID_MIN 1000
--指定用户的最小UID为1000
#UID_MAX 60000
--指定用户的最大UID为1000
#GID_MIN 1000
--指定用户组的最小GID为1000
#GID_MAX 60000
--指定用户组的最大GID为1000
#SYS_GID_MIN 201
--指定系统用户组的最小GID为201
#SYS_GID_MAX 999
--指定系统用户组的最大GID为999
#CREATE_HOME yes
--指定在创建用户时是否同时创建用户主目录yes表示创建
#UMASK 077
--用户主目录的权限默认设置为077
#USERGROUPS_ENAB yes
--指定删除用户的时候是否同时删除用户组这里指的时删除用户的初始组此项的默认项为yes
#ENCRYPT_METHOD SHA512
--指定用户密码采用的加密规则默认采用SHA512这是新的密码加密模式原来的linux只能使用DES或MD5加密 3.用户远程登录次数限制
# 有一些攻击性软件试专门采用暴力破解密码形式反复进行登录尝试如Hydra.对于这种情况可以调整用户登录次数限制使其密码输入3次后自动锁定并且设置锁定时间在锁定时间内即使密码输入正确也无法登录。
# 打开/etc/pam.d/sshd文件在#%PAM-1.0的下面加入下面的内容表示当密码输入错误达到3次就锁定用户150秒如果root用户输入密码错误达到3次锁定300秒。这里锁定的意思是即使密码正确也无法登录。[rootlocalhost ~]# vim /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
auth required pam_tally2.so deny3 unlock_time150 even_deny_root root_unlock_time300
其中deny表示限制错误尝试次数unlock_time表示普通用户锁定时间even_deny_root表示开启root用户锁定root_unlock_time表示root用户锁定时间
[rootlocalhost ~]# ssh ah1192.168.80.132
ah1192.168.80.132s password: #输错密码第一次
Permission denied, please try again.
ah1192.168.80.132s password: #输入密码第二次
Permission denied, please try again.
ah1192.168.80.132s password: #输入密码第三次
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[rootlocalhost ~]# ssh ah1192.168.80.132
ah1192.168.80.132s password:
Permission denied, please try again.
#重新登录输入正确也无法登录 4.禁止用户随意切换至root
# 在linux中有一个默认的管理组wheel。在实际生产环境中即使有系统管理员root的权限也不推荐使用root用户登录。一般情况下用普通用户邓丽就可以了在需要root权限执行一些操作时在使用su命令登录root用户。但是如果有人知道了root密码就可以通过su命令登录称为root用户这无疑为系统带来了安全隐患。
#为了预防此类安全事件可以限制只有wheel组的用户才可以使用su命令切换为root.将普通用户加入到wheel组被加入的这个普通用户就成了管理员组内的用户、然后设置只有wheel组内的成员可以使用su命令切换到root用户从而实现禁止用户随意切换至root的功能。
#配置方法需要修改/etc/pam.d/su文件该文件用户控制su命令运行中的程序控制。在第一行加人auth required pam wheel.so groupwheel即可
[rootlocalhost ~]# vim /etc/pam.d/su
#%PAM-1.0
auth required pam_wheel.so groupwheel
auth sufficient pam_rootok.so
[rootlocalhost ~]# su ah1
[ah1localhost root]$ vim /etc/pam.d/su
[ah1localhost root]$ su
密码
su: 拒绝权限
[rootlocalhost ~]# usermod -G wheel ah1
[ah1localhost root]$ su
密码
[rootlocalhost ~]#