[root@ip51 ~]# useradd tom
[root@ip51 ~]# chage -E 2019-06-01 tom //设置密码失效日期
[root@ip51 ~]# chage -E -1 tom //取消密码失效日期限制
[root@ip51 ~]# chage -d 0 tom //设置用户登录之后必须修改密码
[root@ip51 ~]# passwd -S tom //查看密码状态
[root@ip51 ~]# passwd -l tom //用户被锁定,无法远程通过该用户ssh登录
[root@ip51 ~]# passwd -u tom //解锁
PASS_MAX_DAYS
//密码最大有效天数PASS_MIN_DAYS
//密码最小有效天数PASS_WARN_AGE
//密码过期之前警告天数//编辑该文件,改成其他的
RHEL6:
chkconfig httpd on //开机自启
chkconfig httpd off //关闭开机自启
service httpd start //开启程序
service httpd stop //关闭程序
RHEL7:
systemctl enable httpd //开机自启
systemctl disable httpd //关闭开机自启
systemctl start httpd //开启程序
systemctl stop httpd //关闭程序
chattr
、lsattr
+、-、=
控制方式
属性i:不可改变(immutable)
属性a:仅可追加(append only)
[root@ip51 ~]# touch /root/a.txt
[root@ip51 ~]# chattr +i a.txt //添加文件不可改变权限
[root@ip51 ~]# echo 1 > a.txt
-bash: a.txt: 权限不够
[root@ip51 ~]# chattr -i a.txt //取消该限制
[root@ip51 ~]# chattr +a a.txt //设置文件只能以追加的方式(>>)写入数据
[root@ip51 ~]# echo 2 >> a.txt
[root@ip51 ~]# echo 2 > a.txt
-bash: a.txt: 不允许的操作
su切换用户身份
切换与提权的应用场景
切换用户身份,when ?
SSH远程管理
运维测试
提升执行权限,when ?
管理权限细分
命令格式
su [-] [目标用户]
su [-] -c "命令" [目标用户]
su 直接登录,默认是root用户登录,但是只是用户变为目标用户,用户的操作环境并没有切换
su - 用户名 切换 用户跟操作环境都会切换过来
切换之后,可以通过pwd和echo $PATH查看两者区别
[root@ip51 ~]# su - -c "mkdir /home/tom/q.txt" tom //切换到tom用户并在自己的家目录下创建文件夹
分析su切换的使用情况
[root@ip51 ~]# tail /var/log/secure
sudo提权的基本用法
命令格式
sudo 特权命令
sudo [-u 目标用户] 特权命令
sudo操作示例
sudo -l
su - zhangsan -c "touch /tmp/test.txt"
配置sudo授权
修改方法
推荐:visudo
其他:vim /etc/sudoers
授权记录格式
用户 主机列表=命令列表
[root@ip51 ~]# grep ^root /etc/sudoers
root ALL=(ALL) ALL
root可以是%组名 ALL目标身份,省略时表示root
[root@ip52 ~]# vim /etc/sudoers
… …
%wheel ALL=(ALL) ALL //默认加入这个组里边的所有用户,都拥有跟root一样的权限
… …
//创建三个测试用户
[root@ip52 ~]# useradd dachui
[root@ip52 ~]# useradd tiechui
[root@ip52 ~]# useradd nb
[root@ip52 ~]# vim /etc/sudoers
... ...
root ALL=(ALL) ALL
dachui localhost,ip52=/usr/bin/systemctl * httpd , /usr/bin/vim /etc/httpd/conf/httpd.conf
tiechui localhost,ip52=/usr/bin/systemctl * mysqld , /usr/bin/vim /etc/my.cnf
nb localhost,ip52=/usr/bin/systemctl * httpd , /usr/bin/vim /etc/httpd/conf/httpd.conf , /usr/bin/systemctl * mysqld , /usr/bin/vim /etc/my.cnf , /sbin/* ,!/sb
in/ifconfig eth0 //nb用户对/sbin/下的所有命令都有操作权限,除了修改eth0网卡信息
... ...
//测试
[nb@ip52 ~]$ sudo systemctl start httpd
[nb@ip52 ~]$ sudo systemctl stop httpd
[nb@ip52 ~]$ sudo systemctl stop mysqld
[nb@ip52 ~]$ sudo systemctl start mysqld
Defaults logfile="/var/log/sudo"
[root@ip52 ~]# vim /etc/sudoers
... ...
Defaults logfile="/var/log/sudo"
[root@ip52 ~]# vim /etc/sudoers
... ...
Cmnd_Alias MGMWEB=/usr/bin/systemctl * httpd , /usr/bin/vim /etc/httpd/conf/httpd.conf
Cmnd_Alias MGMDB=/usr/bin/systemctl * mysqld , /usr/bin/vim /etc/my.cnf
Cmnd_Alias MGMSOFT=/usr/bin/rpm , /usr/bin/yum
Host_Alias MYSER=localhost,ip52
dachui MYSER=MGMWEB , MGMSOFT
tiechui MYSER=MGMDB , MGMSOFT
nb MYSER=MGMDB , MGMWEB , MGMSOFT
... ...
配置文件/etc/ssh/sshd_config
Port 3389
//改用非标准端口Protocol 2
//启用SSH V2版协议ListenAddress 192.168.1.174
PermitRootLogin no
//禁止root登录UseDNS no
//不解析客户机地址LoginGraceTime 1m
//登录限时MaxAuthTries 3
//每连接最多认证次数sshd黑/白名单配置(显示客户端连接时,使用的用户以及客户端地址)
DenyUsers USER1 USER2 ...
AllowUsers USER1@HOST USER2 ...
DenyGroups GROUP1 GROUP2
AllowGroups GROUP1 GROUP2
[root@ip52 ~]# vim /etc/ssh/sshd_config
... ...
AllowUsers nb [email protected] //只允许4.254主机通过nb用户访问客户机
//修改默认端口
[root@ip52 ~]# vim /etc/ssh/sshd_config
... ...
Port 2222 //修改默认的端口
ListenAddress 192.168.4.52
... ...
[root@ip52 ~]# systemctl restart sshd
[root@room9pc01 ~]# ssh -p 2222 [email protected] //指定端口登陆
sshd验证方式控制
.ssh/authorized_keys
[root@ip52 ~]# vim /etc/ssh/sshd_config
... ...
PasswordAuthentication no //关闭口令认证方式,仅能使用密钥对认证
PubkeyAuthentication yes //密钥对认证
AuthorizedKeysFile .ssh/authorized_keys //存放授权客户机的公钥文本
... ...
使用工具ssh-keygen
部署SSH公钥
方法一、通过ssh-copy-id自动部署
好处:一步到位
局限性:要求SSH口令认证可用
方法二,通过FTP等方式上传、手动添加
好处:灵活i、适用范围广
局限性:操作繁琐、易出错
SELinux概述
什么是SELinux?
红帽的SELinux粗略集
[root@ip53 ~]# sestatus //查看selinux状态
SELinux模式控制
SELinux开关控制
getenfore //查看当前状态
SELinux策略设置
查看安全上下文
ls -lZ /etc/passwd 查看文件安全上下文
ls -ldZ /etc/ 查看目录的安全上下文
ps aux -Z | grep -i mysqld //查看进程的安全上下文
修改安全上下文
chcon -t public_content_t /var/ftp/rt.txt
重置安全上下文
调整SELinux布尔值
SELinux开启FTP的匿名上传下载功能
setsebool -P ftpd_anon_write on
setsebool -P ftpd_full_access on
登陆FTP服务器进行上传下载功能
[root@ip50 ~]# yum -y install ftp
登陆53主机的ftp,匿名登陆
[root@ip50 ~]# ftp 192.168.4.53
Connected to 192.168.4.53 (192.168.4.53).
220 (vsFTPd 3.0.2)
Name (192.168.4.53:root): ftp //匿名登陆用户名
331 Please specify the password.
Password: //密码直接回车
get 下载
put 上传
lcd 切换到本地目录
SELinux开启http的非80端口访问
修改配置文件
[root@ip53 ~]# vim /etc/httpd/conf/httpd.conf
... ...
Listen 8077
... ...
配置http测试页面
[root@ip53 ~]# echo "192.168.4.53" > /var/www/html/index.html
[root@ip53 ~]# setenforce 0
[root@ip53 ~]# systemctl restart httpd
[root@ip53 ~]# curl http://localhost:8077
如果selinux处于开启状态,则直接重启httpd会报错
记录报错日志的软件setroubleshoot
,日志文件为/var/log/messages
//查看报错信息里边,关于httpd非80端口访问报错信息
[root@ip53 ~]# grep setrouble /var/log/messages | tail -1
//查看日志里边显示的需要访问的内容,会给出具体的解决报错的方法
[root@ip53 ~]# sealert -l 091819ff-f26f-4db0-b9fe-8730c398285e
//启用8077端口
[root@ip53 ~]# semanage -a -t http_port_t -p tcp 8077