包含标签 linux 的文章

解决 SELinux 拦截导致 systemctl 启动服务失败的问题

SELinux 与 systemctl 执行问题的解决方案 在系统管理中,SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)安全机制。尽管它提供了更高的安全性,但有时也会引发一些问题。本文将介绍一个常见的问题,并详细说明如何通过日志确认问题并修正它。 问题描述 我们遇到了一个问题,即可以直接使用命令执行某个服务,但当尝试使用 systemctl start caddy 命令启动时,却会出现以下错误: (code=exited, status=203/EXEC) 日志确认问题 要确认是否是SELinux导致的问题,可以通过查看系统的审计日志。在终端中使用以下命令: grep 'avc: ' /var/log/audit/audit.log 你会看到类似下面的日志条目: type=AVC msg=******: avc: denied { execute } for pid=**** comm="(caddy)" name="caddy" dev="dm-0" ino=**** scontext=********* tclass=file permissive=0 这条日志中的信息显示,SELinux 拒绝了 caddy 服务执行的请求。 解决方案 为了解决这个问题,我们可以采取临时方案,即将需要执行的文件放置在 /usr/bin 目录下。以下是具体步骤: 将 caddy 文件移动到 /usr/bin 目录下: sudo mv /path/to/caddy /usr/bin/ 执行 restorecon 命令,恢复文件的SELinux安全上下文: sudo restorecon -Rv /usr/bin restorecon 命令会根据SELinux策略恢复指定目录下文件的默认安全上下文。在执行完这个命令之后,你放在 /usr/bin 下的 caddy 文件就可以正常使用了。 为什么放在 /usr/bin 下才能用? SELinux 对系统中的每个文件和进程都施加了安全上下文。当你将文件放置在 /usr/bin 目录下时,系统会自动为这些文件分配合适的安全上下文,使得它们可以被系统服务执行。而自定义目录中的文件可能没有正确的安全上下文,因此被SELinux拒绝执行。……

阅读全文

vim 中文乱码

原因 字符集配置不匹配 mac 上是 UTF-8 解决方法 更新配置 vim ~/.zshrc 在最后加上 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 配置生效 source ~/.zshrc ……

阅读全文

ufw 无法禁用 docker端口问题

装好了docker,以及 ufw 然后禁用了 3000 端口, ufw deny 3000 并且启动了一个容器 启动命令是这样的 docker run -it -p 3000:3000 python 但之后发现一个问题, IP:3000 居然可以访问到 查询资料得知, 淦, 发现这是个陈年老问题了 查到一个好用的 repo, https://github.com/chaifeng/ufw-docker 并且按照他的教程进行了设置 但是紧接着发现了问题 这样设置完之后, 开放端口3000(ufw allow 3000), 居然不生效了 看了下 readme 显示 现在外部就已经无法访问 Docker 发布出来的任何端口了,但是容器内部以及私有网络地址上可以正常互相访问,而且容器也可以正常访问外部的网络。 显然这不是我想要的结果 最终在stackoverflow找到了符合我需求的解决方案 cat << EOF >> /etc/docker/daemon.json { "iptables": false } EOF echo "DOCKER_OPTS=\"--iptables=false\"" >> /etc/default/docker service docker restart -参考资料: https://stackoverflow.com/a/67641547……

阅读全文