使用非root用户启动普通进程
使用非root用户启动进程是运维安全的一个主要环节,拿tomcat进程来说,如果是使用root用户去启动了tomcat,那么有一个严重的问题,那就是tomcat具有root权限。这意味着你的任何一个jsp脚本都具有root权限,所以那些不怀好意的人可以轻易地用jsp脚本去搞破坏,甚至删除你整个硬盘里的东西!所以为了活着,我们要极力避免这种现象。
很多的软件都自带的用户/用户组,比如nginx、zabbix、elasticsearch,但是也有更多的软件没有这么贴心的服务,这就需要我们手动的更改了。
docker不应该使用root启动
1.8版本之前的docker是不支持user namespace
的,所以那样的话,如果在docker容器内部使用root运行app,那么不可否认,这个root和宿主机的root是同一个UID。但是,需要特别注意的是,容器内的root与宿主机上的root权限并不一定是相等的。
但是为了绝对的安全,还是推荐把docker升级到1.8以上,然后彻底避免用root去启动容器,在http://www.projectatomic.io/docs/docker-image-author-guidance/里最下面一段也明文说了---生产环境里不要用root用户去启动docker!!!
使用非root用户启动docker的办法如下:
创建docker组:sudo groupadd docker
将当前用户加入docker组:sudo gpasswd -a ${USER} docker
重新启动docker服务:sudo service docker restart
或sudo systemctl restart docker
当前用户退出系统再重新登陆。