对象:
含有setuid(geteuid())这类程序
要求:
bash 4.1以下
原理:
bash在执行时会调用环境变量,并且加载自定义函数,这时,会执行自定义函数后的语句
export foo='() { :; }; echo hello bash’
# 猜测:当时getuid获取的可能是文件所有者的UID,也就是0,这样,setuid就获取了root权限
当前状态
geteuid(),getuid()一字之差
对象:
含有setuid(geteuid())这类程序
要求:
bash 4.1以下
原理:
bash在执行时会调用环境变量,并且加载自定义函数,这时,会执行自定义函数后的语句
export foo='() { :; }; echo hello bash’
# 猜测:当时getuid获取的可能是文件所有者的UID,也就是0,这样,setuid就获取了root权限
当前状态
geteuid(),getuid()一字之差
第一句:docker真是改变人类生产效率的好东西,docker大法好!
考虑搞一套自己的服务器已经好久了,今天算是第一次成功的把三个站点布在了一个服务器(ThinkPad X1C 2014)上,运行还蛮流畅的,下面简述一下建站流程。
数据库:mysql(本机)
sudo apt-get update && sudo apt-get install mysql-server
博客:WordPress
docker run -itd --name wordpress \
-v /opt/wordpress/html:/var/www/html \
-p 12080:80 \
wordpress
项目管理软件:OpenProject
docker run -itd --name openproject \
-v /opt/openproject/pgdata:/var/lib/postgresql/9.6/main \
-v /opt/openproject/logs:/var/log/supervisor \
-v /opt/openproject/static:/var/db/openproject \
-p 10080:80 \
openproject/community
版本控制软件:GitLab
docker run -itd --name gitlab \
--hostname gitlab.endercaster.lan \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab \
-p 11080:80 \
-p 11022:22 \
-p 11443:443 \
gitlab/gitlab-ce
其实这里可以不用绑定端口的,使用docker run –ip可以指定固定IP(前提是使用自建的网桥docker network create)
这时其实还没完,在wordpress里还要配置apache的servername,否则会无法访问。
反向代理:nginx
这个是在本机安装的,监听80端口,根据host进行转发,一开始本来使用Apache的,但是配置了好久都不能用,经过查阅,nginx的反向代理配置相对简单快速,转而使用nginx。