部分环境没法获取 root 权限,但又需要在上面进行生产活动。
一些应用比如 mysql 客户端,读取 /etc/my.conf,没 root 权限无法修改。而我又无法全部通过命令行参数实现配置化。
google 了下有一种方案是注入 so,重定向文件,不知道可行性和通用性能否有保障?
可行,但是通用性和兼容性不好说
有,用 proot 里面的模拟 mount bind 功能对文件进行 bind -b xxx:/etc/my.conf 原理是通过 ptrace 拦截系统调用
当然如果系统支持,也可以用 user namespace + mount bind 的方法(用我的 github.com/codehz/nsroot 理论上比 ptrace 要稳一点,性能影响也少一点
docker 不香吗?
conf 文件是可以命令自定位置的吧
tip:乱搞容易出现安全问题,悠着点儿搞
mysql 的配置文件我们是放在 /usr 下面的
setfacl
自己 build 一份,prefix 到 $HOME/local
--defaults-extra-file=file_name 可以指定配置文件
k8s
1. mysqld 可以指定配置文件的位置的
2. redis,nginx 这种简单一点的也可以指定, 或者你自己编译, 加 --prefix 就可以了
MySQL 可以指定配置文件位置,这个才是正确的