
1 smileawei Jan 24, 2018 应用程序 app 用 root 启动就已经是最大的安全风险了。只要程序有漏洞。黑客就可以用 root 账号执行操作。目录 777 和 600 其实都没区别 |
2 shapimai Jan 24, 2018 注入之后不就直接拿到 root 权限了 安全的办法还是独立在普通帐号下跑好一点 权限多少没有什么区别 |
4 fcten Jan 24, 2018 不必要的权限就是风险。顺便没见过 Linux 上只有一个 root 用户的……(不能控制台登录的用户就不叫用户了吗,气!) |
5 yujieyu7 Jan 24, 2018 应用程序 App 都能给 root ?日常服务器的维护人员都没直接 root 权限 |
8 liudaqi OP |
9 lfzyx Jan 24, 2018 应用程序 App 在服务器上创建了一个文件目录,权限设 0777, 完全没有风险 有风险的仅仅是 App 用 root 启动而已 |
12 MartinWu Jan 24, 2018 root 跑对外的服务本身就是最大的风险了啊。。。。。 |
13 lolizeppelin Jan 24, 2018 via Android 上面 777 没问题的 程序员吧哈哈哈 |
14 loveminds Jan 24, 2018 不建议给任何东西大于 755 的权限,Socket 这种特殊物体除外 |
15 liuxu Jan 24, 2018 换用户名,配上 selinux role |
16 jyf007 Jan 24, 2018 root 权限仅限急救时使用。 |
18 xnile Jan 24, 2018 能不用 root 用户尽量不要用 root,否则程序有漏洞话很容易被提权,整个服务就沦陷了,不安全 |
19 Applenice Jan 25, 2018 不建议应用给那么高的权限 |
20 msg7086 Jan 25, 2018 密钥可以让你获得 root 权限。现在你 App 都已经获得 root 权限了,拿下 App 就可以随便搞了,还要密钥作甚。 |
21 lemonda Jan 25, 2018 via Android 意思是不是用 root 直接运行 service nginx start 或者 service php7.0-fpm start 这样的命令不安全? 那么重启后开机启动时这些服务是以什么用户运行的呢? |
24 hugee Jan 25, 2018 via Android 风险太大 |
26 Hardrain Jan 25, 2018 做个假设,你的服务以 HTTP(S)为协议,后端是 PHP 直接用 root 运行 php-fpm 的话,如果有个上传漏洞被用来挂了 shell 我可以想象骇客输入 whoami 后兴奋的表情,毕竟提权都免了 |
27 Hardrain Jan 25, 2018 @lemonda Apache Nginx 等都可以配置运行所使用的用户 用 root 用户通过 systemd/sysV 等启动 web 服务器 != 服务器以 root 用户运行 |
28 LokiSharp Jan 25, 2018 用包管理正常安装的话 Nginx 主进程 root,子进程是 nginx 所以没啥问题。 |
29 LokiSharp Jan 25, 2018 @lemonda #21 这个是启动服务的,具体用什么启动的,可以看 /etc/systemd/system/ /usr/lib/systemd/system/ 里面的配置脚本。 |
30 MeteorCat Jan 25, 2018 via Android 777 权限一般主要负责文件上传和日志写入,有些目录需要给 777 保证上传目录和日志能够正常写入,这些问题都不大 |
31 JamesMackerel Jan 25, 2018 via iPhone @lemonda 就拿 nginx 来说。它的架构是一个 manager 管很多 worker。你开一个 ubuntu 下的 nginx 看看,是不是只有一个是 root 的,其余都是 www-data。 |
32 smileawei Jan 25, 2018 @liudaqi 秘钥登录与否与程序 root 运行的风险无关。你程序是 root 用户在跑 那么程序也就有 root 用户的权限。假设黑客通过你程序的漏洞黑进了 你的机器。他同样有 root 权限。秘钥登录是指通过 ssh 登录服务器。黑客不需要通过 ssh 登录你的服务器 |
33 GG668v26Fd55CP5W Jan 25, 2018 via iPhone app 执行用户和 777 不能乱开,我宁愿把 owner 设置成实际运行的用户,比如一个 php 的网站,只有储存用户上传文件的目录用的 owner 是 php-fpm 的运行用户。权限 755,其他目录 owner 都是 root,755. 并且在 nginx 或 Apache 里禁止上传目录解析 php 脚本。 |
34 lemonda Jan 27, 2018 @liuzuo @Hardrain @LokiSharp @JamesMackerel 感谢释疑,因为我有很多台 VPS 都是直接用 root 这么直接运行的 - - ! @falcon05 我也是这么干的,每个网站一个 owner, 那么若是给这个网站添加 FTP 用户怎么办呢? 我是都给个 SFTP 账号 |
35 JamesMackerel Jan 27, 2018 @lemonda #34 ftp 就在 ftp 那边做权限控制吧。 在 Linux 里,目录的 x 权限不是执行,是“是否可以 cd 到这个目录”。 控制这些权限很重要,比如我拿了一个低权限用户的 webshell,然后如果你的网站是 777,那我就可以上传脚本,然后如果手头有 EXP 的话,就可以拿到 root 权限,为所欲为。当然这只是一个思路,实际上并不会那么简单,但是安全工作做好了至少可以过滤一大批别有居心的人。 |
36 lemonda Jan 27, 2018 @JamesMackerel 奥,我一直用文件夹 755 和 文件 644。 问的原因是 PHP-fpm 默认运行用户是 www 或者 www-data,FTP 上传的文件用户属组是 ftpuser:ftpgroup,这样比如安装 WordPress 时就提示有权限问题,所以我现在都是这么干的 passwd www-data |