宝塔面板权限管理怎么用
学完这篇,你能搞清楚宝塔面板里“权限”到底分几层、每一层在哪个菜单改,做到既堵住越权漏洞,又不把网站改到打不开。
第一步:先收紧面板自身的入口权限
这一步要解决的是“谁能进面板”,做完之后面板不会再随随便便被人扫到登录页。登录宝塔 Linux 面板(8.x/9.x 界面一致),点左侧菜单最下面的「面板设置」,依次改这几项:
- 面板端口:默认 8888 一定要换掉,改成 10000–65535 之间没用过的端口,改完点「保存」。
- 安全入口:默认的
/login换成一串随机字符,比如/bt-7f3a9c,之后必须用http://你的IP:端口/bt-7f3a9c才能访问登录页。 - 授权IP:如果只在固定 IP 上管理,把这里填成你自己的宽带 IP,其他 IP 一律进不来;家庭宽带 IP 会变,慎用。
- 面板SSL:开启后强制 HTTPS,避免密码明文传输。
- 面板密码:改成 16 位以上、大小写加符号的独立密码,不要和网站后台密码重复。
注意:改端口和安全入口后浏览器会立刻断开,先把新地址记在便签里再点保存,否则要登服务器用命令行救回来。
第二步:把网站目录的属主改对
这一步是让文件和进程“归属明确”,做完后 PHP 进程(www 用户)能正常读写文件,而其他系统用户碰不到。点左侧「文件」,进入 /www/wwwroot/你的域名/,全选目录里的内容,点顶部工具栏的「权限」按钮(也可右键 → 权限)。在弹出的窗口里填:
- 所有者:
www - 用户组:
www - 权限:目录
755,文件644 - 勾选「应用到子目录」
如果目录结构很乱,也可以直接在「终端」里执行:
chown -R www:www /www/wwwroot/你的域名
find /www/wwwroot/你的域名 -type d -exec chmod 755 {} \;
find /www/wwwroot/你的域名 -type f -exec chmod 644 {} \;
注意:网上“解决权限报错”的老办法是把整个目录设成 777,这等于给所有系统用户开了写权限,只要有一个站点被挂马就能横向写穿其他站,不要这么干。也不要 chown 成 root,PHP 跑在 www 用户下,反而会写不进去。
第三步:只给需要写入的目录单独放权
这一步是给上传、缓存目录开小口子,做完后网站能正常上传图片、生成缓存,同时其他文件保持只读。在「文件」里找到这些目录:uploads、runtime、cache、data、attachment,逐个点「权限」,把权限设为 755(部分程序需要写子目录时用 775),所有者保持 www:www,不勾选“应用到子目录”。
另外在「网站 → 你的站点 → 设置 → 网站目录」里,确认「运行目录」指向真正的入口目录(一般是 /public),别把整个项目根目录当运行目录。
第四步:打开防跨站,切开站点之间的越权
这一步解决的是“一个站被黑,其他站跟着遭殃”。进入「网站 → 你的站点 → 设置 → 网站目录」,勾选「防跨站攻击(open_basedir)」,保存。开启后 PHP 只能读取自己站点目录,跨目录读 /www/wwwroot/其他站/ 会直接报错。
如果站点经常被篡改,再到「软件商店」搜索安装「网站防篡改程序」,在「网站 → 设置 → 防篡改」里开启,把 uploads 目录排除掉,否则后台上传会失败。
注意:开了 open_basedir 后,某些程序调用的第三方库如果放在站点目录外,会报 “open_basedir restriction in effect”,把该路径加进白名单即可,不要直接关掉这个开关。
第五步:给数据库账号划清访问范围
这一步决定数据库能不能被外网连。点「数据库」,找到对应库点「权限」,按需选择:只给本机 PHP 用就选 localhost;确实要远程连(比如本地 Navicat 调试)再选 所有人(%),并且只对指定 IP 开放。顺手在「数据库 → root密码」里换掉默认 root 密码,密码用 20 位随机串。
第六步:SSH 和多用户协作的权限
这一步管的是服务器最底层的入口。点左侧「安全 → SSH 管理」:把 SSH 端口从 22 改掉,关闭「密码登录」,只留密钥登录。团队协作时,在「面板设置 → 用户管理」添加子用户(该功能在专业版/企业版开放),给每个成员单独分配可管理的网站、数据库和文件范围,不要几个人共用主账号。对外提供接口的话,在「面板设置 → API 接口」里只放行固定 IP,用完及时关闭。
小结
- 面板入口先加固:端口、安全入口、授权IP、SSL、密码,五件事一次做完。
- 目录属主统一
www:www,目录 755、文件 644,坚决不用 777,也不 chown 到 root。 - 只有
uploads、runtime、cache这类目录单独放开写权限。 - 开启 open_basedir 防跨站,必要时叠加防篡改插件并排除上传目录。
- 数据库按需开放访问范围,root 密码必须换。
- SSH 关掉密码登录,团队协作用子账号而不是共用主账号。
原文链接:https://www.gj0.com/thread-276.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。