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