一,基本防护-账号密码属性设置
1>chage–修改账户属性
格式: chage [选项] [参数] 账户名称
- chage -l 账户名称 //查看账户当前配置信息
- chage -E year-month-day 账户名称 //修改账户有效期
- chag -d year-month-day 账户名称 //上一次账户更改日期–d=0强制修改密码
- chage -m 天数 账户名称 //密码更改的最小天数.0表示任何时候
- chage -M 天数 账户名称 //密码保持有效的最大天数
- chage -W 天数 账户名称 //密码到期前,提前收到警告信息的天数
- chage -I 天数 账户//停滞时期,密码已过期这些天,账号将不可用
chage -l jim
最近一次密码修改时间 :9月 21, 2019
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
##############################
chage -d 2019-9-25 jim
最近一次密码修改时间 :9月 25, 2019
>>密码过期时间=最近一次修改密码时间+修改密码的最大天数
>>密码失效日期=密码过期时间+停滞天数
chage -I 50 jim
密码失效时间 :4月 20, 2022
chage -E 2999-12-31 root
帐户过期时间 :12月 31, 2999
chage -m 20 jim
两次改变密码之间相距的最小天数 :20
chage -M 888 jim
两次改变密码之间相距的最大天数 :888
密码过期时间 :3月 01, 2022
chage -W 9 jim
在密码过期之前警告的天数 :9
2>更改账号密码
passwd–修改用户密码
- 存放用户信息的文件 //etc/passwd
用户信息格式 root❌0:0:root:/root:/bin/bash
用户名:口令,密码:用户UID:组GID:用户说明:用户家目录:缺省shell
//UID=0表是管理员用户 - 存放用户密码的文件 /etc/shadow
格式bin:*:17632:0:99999:7:::
用户名:加密密码:上次修改密码日期(2017-06-32):最短密码期限(0无期限):最长密码期限(9999永久有效):密码警告期限(7):密码非活动期限:账号到期时间:保留域
passwd [选项] 用户 - -k, --keep-tokens 保持身份验证令牌不过期
- -d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
- -l, --lock 锁定指名帐户的密码(仅限 root 用户)
- -u, --unlock 解锁指名账户的密码(仅限 root 用户)
- -e, --expire 终止指名帐户的密码(仅限 root 用户)
- -f, --force 强制执行操作
- -x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作)
- -n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作)
- -w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
- -i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
- -S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
- –stdin 从标准输入读取令牌(只有根用户才能进行此操作)
passwd //更改当前用户的密码
passwd jim //设置密码
passwd -l jim
锁定用户 jim 的密码 。
passwd: 操作成功
解锁用户 jim 的密码。
passwd: 操作成功
passwd -S jim
jim PS 2019-09-25 20 25 9 50 (密码已设置,使用 SHA512 算法。)
passwd -k jim
更改用户 jim 的密码 。
为 jim 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
//密码过期后设置新密
passwd -d jim
清除用户的密码 jim。
passwd: 操作成功
echo 123456 | passwd --stdin jim
更改用户 jim 的密码 。
passwd:所有的身份验证令牌已经成功更新。
3> /etc/login.def
用户账号限制文件,只对新建用户有效;//etc/shadow优先级高于login.def,以前者为准
vim /etc/login.def
MAIL_DIR /var/spool/mail
#创建用户时,在目录/var/spool/mail创建一个用户mail文件
PASS_MAX_DAYS 9999
#密码最大有效期
PASS_MIN_DAYS 0
#l两次修改密码的最小间隔
PASS_MIN_LEN 5
#密码最小长度
PASS_WARN_AGE 7
#密码过期7天开始提示
UID_MIN 500
#用户ID最小值
UID_MAX #用户ID最大值
GID_MIN
GID_MAX
USERDEL_CMD /usr/sbin/userdel_local
#删除用户执行的脚本
CREATE_HOME yes
#useradd 创建用户是,创建用户家目录
UMASK 077 /权限掩码补码
*************************
文件最大权限666目录最大权限777
umask //查看当前补码
0022
umask -S //查看当前权限
u=rwx,g=rx,o=rx //umake=022
创建文件默认权限666-022
touch 11
ls -l 11
-rw-r--r--. 1 root root 0 9月 22 16:25 11
umask 000 //重新设置补码创建的文件拥有最大权限
umask a+r //所有用户可读新文件
umask a-x //所有用户都不能执行新文件
**************************
USERFROUPS_ENAB yes
#使用MD5加密密码
/etc/issue /etc/issue.net登录提示
- 本地,远程登录
- 默认提示内核,系统版本信息
\S
Kernel \r on an \m
修改登录信息,伪装版本,防止漏洞攻击
二.文件系统安全
- chattr +i 文件名 //锁定文件(无法编辑-修改删除)
- chattr -i 文件名 //解锁文件
- chattr +a 文件名 // 锁定文件后仅可追加
- chattr -a 文件名
- lsattr 文件名 //查看文件的特殊属性
chattr +i /etc/resolve.conf
lsattr /etc/resolve.conf
----i---------- /etc/resolv.conf
rm -rf /etc/resolv.conf
rm: 无法删除"/etc/resolv.conf": 不允许的操作
chattr +a /etc/hosts
rm -rf /etc/hosts //失败
echo "192.168.4.1 xyz" > /etc/hosts //失败
echo "192.168.4.1 xyz" >> /etc/hosts //成功
三.用户权限管理
su(Substitute User)切换用户身份
- su - [账户名称] //-表示切换环境,不加-只切换用户名
- su - [账户名] -c ‘命令’
- whoami //查看当前用户
- /var/log/secure //记录su验证,shell开启与关闭(su切换使用情况)
/etc/sudoers
sudo(Super or anoher DO)超级执行
- 管理员预先为用户设置的执行许可
- 被授权用户执行授权命令,验证自己的口令
- sudo 提权命令 //执行提权命令
- sudo -l //查看提权命令
配置sudo提权 - 修改方法
--visudo
--vim /etc/sudoers - 授权记录格式
用户 主机列表=命令列表
vim /etc/sudoers
root ALL=(ALL) ALL //root用户拥有所有权限
User_Alias MYUSER=jim,tom,lucy
Host_Alias MYHOST=loalhost,svr,tedu
Cmnd_Alias MYCMD=/bin/rpm,/usr/bin/yum
MYUSER MYHOST=MYCMD
#别名设置,别名名称必须大写
mike loalhost,svr7=/sbin/*,!/sbin/ifconfig eth0
#允许用户mike以root权限执行/sbin/下的所有命令,但禁止修改eth0网卡参数
%wheel ALL=(ALL) NOPASSWD:ALL
#wheel用户组中在不使用用户密码的情况下使用所有命令
Defaults logfile="/va/log/sudo"
#启用日志,跟踪用户
:wq! //强制保存
usermod -a -G wheel jim //wheel组成员拥有wheel组的权限