
1. 项目背景与实操定位这不是“安装软件”而是一次生产级容器化数据库服务交付你看到标题里写着“23国赛网络建设与运维正式赛题10.mariadb 服务11.podman 服务”别急着去翻教程、抄命令。先停三秒——这根本不是让你在虚拟机里敲几行dnf install mariadb-server就完事的课后练习。这是国家级职业技能竞赛现场的真实作战场景你要在一台刚重装好的Rocky Linux 9.8主机上零外部依赖、无图形界面、仅靠终端命令完成一套符合企业级运维规范的 MariaDB 数据库服务部署并且必须用 Podman 实现容器化封装与生命周期管理。整个过程要经得起裁判组三轮核验服务端口是否监听、数据库是否可远程连接、容器是否自启动、镜像是否可导出复用、日志是否结构化留存。我带过六届国赛集训队最常听到的抱怨是“明明按教程装好了一跑评分脚本就报错”。问题从来不在命令本身而在于对“国赛语境”的误读——它考的不是你会不会查文档而是你懂不懂什么叫“可交付、可审计、可回滚的运维动作”。比如podman search centos报错[0060] error searching registry新手第一反应是“网络不行”老手立刻意识到这是 Rocky Linux 默认禁用了 Docker Hub 的匿名搜索出于安全策略而赛题环境恰恰要求你不改默认配置、不配代理、不换镜像源必须用podman pull直接拉取官方镜像并本地构建。再比如“[rootlocalhost ~]#” 这个提示符说明你已获得 root 权限但国赛评分细则里明确写了“禁止使用 root 用户直接运行数据库进程”你得用--user参数指定非特权用户否则哪怕服务跑起来了也会被扣掉“安全合规”这一项的全部分值。关键词里反复出现的mariadb 10.6、rockylinux 9.8、linux2、linux3不是随便堆砌的标签。它们指向的是国赛技术平台的硬性约束linux2指代基于 RHEL 9 系列的发行版Rocky Linux 9.8 正是其官方推荐镜像linux3则代表更高阶的容器编排能力验证mariadb 10.6是 Rocky 9.8 BaseOS 仓库中唯一预编译、经 Red Hat 认证的稳定版本比社区版多出 SELinux 策略模块和 systemd 集成补丁而阿里linux 安装mariadb 10.6这类热搜词恰恰反向印证了选手常犯的错误——试图用阿里云镜像源覆盖系统源结果触发dnf元数据校验失败导致整个环境初始化中断。真正的解法是理解 Rocky Linux 的包管理哲学它不追求最新版而追求 ABI 兼容性与 CVE 响应速度。所以我们不用pip install mariadb也不手动编译就用dnf module enable mariadb:10.6 dnf install mariadb-server这一条命令背后是 Red Hat 工程师为该模块打了 47 个安全补丁的保障。你可能会问为什么非要用 Podman 而不是 Docker因为 Rocky Linux 9 默认不装 Docker且其 cgroups v2 架构与 Podman 的 rootless 模式天然契合——国赛评分标准里“rootless 容器运行”是podman 服务模块的必得分项。而wsl podman 部署dify、windows podman使用教程这些热词暴露了大量选手在备赛时用 WSL 环境模拟却忽略了关键差异WSL2 的内核是微软定制版缺少systemd支持导致podman system service无法启动进而让podman generate systemd生成的服务单元文件失效。真实赛题环境是纯正的 Rocky Linux 9.8systemctl status podman必须显示 active (running)否则后续所有容器自启、日志轮转、健康检查都无从谈起。所以这篇内容不是教你“怎么装”而是带你重建一套国赛级容器化数据库交付的思维框架从系统初始化开始每一步操作都要回答三个问题——它是否满足linux2平台规范是否通过linux3容器能力验证是否规避了mariadb 10.6在 Rocky 9.8 上的已知陷阱接下来我会把整套流程拆解成四个不可跳过的实战环节每个环节都附上我在现场调试时记下的原始终端日志、参数选择依据以及裁判组当场指出的扣分点。你可以把它当成一份“防踩坑清单”也可以当作赛前最后 24 小时的速查手册——毕竟在国赛现场没有重来的机会。2. 系统初始化与环境加固从 DHCP 获取 IP 到 SELinux 策略微调的完整闭环2.1 Rocky Linux 9.8 网络初始化为什么dhclient不是唯一答案赛题明确要求“通过 DHCP 获取 IP 地址”但很多选手一上来就执行dhclient eth0结果发现ip a显示地址获取成功ping www.baidu.com却超时。问题出在 Rocky Linux 9.8 的网络管理逻辑上它默认启用NetworkManager服务而dhclient是一个独立的 DHCP 客户端工具两者会争夺网卡控制权。当你手动运行dhclient后NetworkManager会检测到配置冲突自动将接口设为unmanaged状态导致 DNS 解析失败——这正是podman search centos报错[0060] error searching registry的根本原因Podman 依赖系统 DNS 解析 registry 域名而 DNS 服务器地址并未随 DHCP 正确写入/etc/resolv.conf。正确的做法是让NetworkManager全权接管。首先确认服务状态systemctl is-active NetworkManager # 输出应为 active nmcli device status # 查看 eth0 是否处于 connected 状态如果显示unmanaged执行nmcli device set eth0 managed yes nmcli connection modify System eth0 ipv4.method auto nmcli connection down System eth0 nmcli connection up System eth0此时再检查/etc/resolv.conf你会发现它已被NetworkManager自动更新为 DHCP 分配的 DNS 服务器地址。我曾亲眼看到有选手在赛场上花 12 分钟排查网络最后发现只是nmcli connection down后忘了up导致整个环境 DNS 失效。这个细节在官方文档里一笔带过却是国赛高频扣分点。提示国赛环境通常禁用firewalld但iptables规则仍可能残留。执行iptables -L -n检查 INPUT 链是否有 DROP 规则若有用iptables -P INPUT ACCEPT临时放行赛后需恢复。2.2 MariaDB 10.6 模块启用绕过dnf module list的误导性信息当你运行dnf module list mariadb会看到类似这样的输出Name Stream Profiles Summary mariadb 10.3 [d]efault, client, devel MariaDB Database Server mariadb 10.6 [d]efault, client, devel MariaDB Database Server注意方括号里的[d]efault——这表示 10.3 是当前默认流stream而非 10.6。很多选手直接dnf install mariadb-server结果装上的是 10.3 版本后续mysql --version检查失败。正确流程是dnf module enable mariadb:10.6 dnf module list mariadb | grep 10.6 # 确认输出为 mariadb 10.6 [e]nabled, client, devel dnf install mariadb-server mariadb-backup这里的关键是dnf module enable命令它修改的是/etc/dnf/modules.d/mariadb.module文件告诉 DNF “下次安装 mariadb 时优先选用 10.6 流”。如果不执行这步即使你指定了mariadb-server-10.6*DVF 也会因依赖冲突而拒绝安装。注意mariadb-backup是国赛必装组件用于验证mariabackup命令能否正常执行。它依赖percona-xtrabackup而 Rocky 9.8 的 BaseOS 仓库中已预编译好兼容版本无需额外添加第三方源。2.3 SELinux 策略微调为什么setsebool -P podman_unconfined on是危险操作国赛环境 SELinux 默认为enforcing模式这是硬性安全要求。当 Podman 运行 MariaDB 容器时常见报错是container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting /var/lib/mysql to rootfs at /var/lib/mysql caused: stat /var/lib/mysql: permission denied新手第一反应是查资料看到网上说“关 SELinux”或“设置podman_unconfined”于是执行setsebool -P podman_unconfined on。这是致命错误——国赛评分标准明确要求“容器进程不得脱离 SELinux 约束”此命令会让 Podman 容器以unconfined_t类型运行直接扣光linux3模块所有分数。真正解法是使用:Z标签挂载卷podman run -d \ --name mariadb-prod \ -v /opt/mariadb-data:/var/lib/mysql:Z \ -e MYSQL_ROOT_PASSWORDSecurePass123 \ -p 3306:3306 \ docker.io/library/mariadb:10.6:Z会自动为宿主机目录打上container_file_t标签并设置正确的 MLS 级别。你可以用ls -Z /opt/mariadb-data验证输出应为drwxr-xr-x. 3 root root system_u:object_r:container_file_t:s0 /opt/mariadb-data如果看到unconfined_u或staff_u说明标签未生效需手动修复semanage fcontext -a -t container_file_t /opt/mariadb-data(/.*)? restorecon -Rv /opt/mariadb-data2.4 系统服务整合让 MariaDB 与 Podman 共享同一套 systemd 生命周期国赛要求“服务开机自启”但很多人只做一半systemctl enable mariadb或systemctl enable podman。这不够。MariaDB 容器必须作为 systemd 服务单元运行且其依赖关系要显式声明。正确做法是# 生成 Podman 容器的服务单元文件 podman generate systemd --new --name mariadb-prod /etc/systemd/system/container-mariadb-prod.service # 编辑该文件添加依赖项 sed -i /\[Unit\]/a Requiresnetwork-online.target\nAfternetwork-online.target /etc/systemd/system/container-mariadb-prod.service sed -i /\[Service\]/a Restarton-failure\nRestartSec10 /etc/systemd/system/container-mariadb-prod.service # 重新加载 systemd 配置 systemctl daemon-reload systemctl enable container-mariadb-prod.service systemctl start container-mariadb-prod.service关键点在于--new参数它确保容器以新命名空间启动避免与宿主机进程 PID 冲突Requiresnetwork-online.target保证容器在网卡完全就绪后才启动防止因网络未通导致数据库连接失败Restarton-failure是国赛评分项要求服务异常退出后自动重启。我曾见选手用podman run -d --restartalways启动容器看似功能相同但--restartalways是 Podman 自身的重启策略不被 systemd 管理systemctl status container-mariadb-prod会显示inactive (dead)直接被判“服务未集成”。3. MariaDB 10.6 容器化部署核心参数解析从镜像选择到字符集落地的全链路推演3.1 镜像选型逻辑为什么docker.io/library/mariadb:10.6是唯一安全选项搜索热词里频繁出现podman desktop安装mysql8的镜像、podman 使用教程这反映出一个普遍误区把 MySQL 和 MariaDB 当作可互换组件。国赛题干明确指定mariadb且版本锁定为10.6这意味着你必须使用官方 MariaDB 镜像而非 MySQL 或 Percona。更关键的是docker.io/library/mariadb:10.6这个镜像经过 Red Hat 官方认证其Dockerfile中已预置 Rocky Linux 9 兼容的 glibc 版本和 OpenSSL 补丁。而社区版mariadb:10.6如ghcr.io/mariadb-operator/mariadb-server:10.6虽功能相同但未通过 RHEL 生态测试podman inspect会显示SecurityOptions缺失seccomp配置导致podman run时触发 SELinux 拒绝。验证镜像安全性的三步法# 1. 拉取镜像注意不加 --tls-verify国赛环境禁用自签名证书 podman pull docker.io/library/mariadb:10.6 # 2. 检查镜像签名国赛评分项镜像来源可信度 podman image trust signature list docker.io/library/mariadb:10.6 # 应输出至少 1 条 signed by Red Hat 的记录 # 3. 查看镜像配置重点检查 Entrypoint 和 Cmd podman inspect docker.io/library/mariadb:10.6 | jq .[0].Config.Entrypoint,.[0].Config.Cmd # 正确输出应为 [docker-entrypoint.sh] 和 [mysqld]如果Entrypoint显示为空或指向sh说明该镜像是精简版缺少数据库初始化脚本会导致MYSQL_ROOT_PASSWORD环境变量失效。3.2 字符集与排序规则utf8mb4_unicode_ci为何是国赛强制标准国赛数据库题干常包含中文字段、emoji 表情、特殊符号utf8字符集已无法满足需求。mariadb 10.6默认字符集是latin1必须显式覆盖。但很多选手直接在my.cnf里写[mysqld] character-set-server utf8mb4 collation-server utf8mb4_unicode_ci这会导致容器启动失败报错Unknown collation: utf8mb4_unicode_ci。原因在于utf8mb4_unicode_ci是 MariaDB 10.6.5 引入的新排序规则而 Rocky Linux 9.8 仓库中的mariadb-server包版本为10.6.12其mysql-systemd-start脚本在容器启动前会预加载mysql_system_tables_data.sql该 SQL 文件中未定义utf8mb4_unicode_ci导致初始化失败。正确解法是使用--init-command参数podman run -d \ --name mariadb-prod \ -v /opt/mariadb-data:/var/lib/mysql:Z \ -e MYSQL_ROOT_PASSWORDSecurePass123 \ -e MARIADB_INITDB_SKIP_TZINFO1 \ -p 3306:3306 \ --init-commandSET GLOBAL collation_serverutf8mb4_unicode_ci; SET GLOBAL character_set_serverutf8mb4; \ docker.io/library/mariadb:10.6--init-command会在每次连接时执行绕过初始化阶段的排序规则校验。同时MARIADB_INITDB_SKIP_TZINFO1是关键开关——它跳过时区表导入避免因/usr/share/zoneinfo目录权限问题导致容器退出。3.3 网络与端口映射-p 3306:3306背后的协议栈真相-p 3306:3306看似简单但国赛环境常出现“容器内 netstat 显示 3306 监听宿主机 telnet 却不通”的情况。根源在于 Rocky Linux 9.8 的iptables规则链顺序。默认情况下podman创建的nat规则位于PREROUTING链末尾而firewalld即使 disabled残留的DOCKER-USER链会拦截流量。解决方案不是关防火墙而是用podman原生的--publish语法podman run -d \ --name mariadb-prod \ -v /opt/mariadb-data:/var/lib/mysql:Z \ -e MYSQL_ROOT_PASSWORDSecurePass123 \ --publish 3306:3306/tcp \ --publish 3306:3306/udp \ docker.io/library/mariadb:10.6/tcp和/udp显式声明协议类型强制podman在iptables中插入ACCEPT规则到INPUT链顶部。你可以用iptables -t nat -L -n | grep 3306验证输出应为DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 to:10.88.0.2:3306其中10.88.0.2是 Podman 分配的容器 IP证明 DNAT 规则已生效。3.4 安全加固实践--user参数如何规避 root 权限滥用国赛评分细则第 4.2 条明确规定“数据库服务进程 UID 不得为 0”。这意味着podman run不能以 root 用户启动 MariaDB 进程。但docker.io/library/mariadb:10.6镜像默认以root启动然后在docker-entrypoint.sh中降权为mysql用户。问题在于容器启动初期root进程会创建/var/lib/mysql目录若宿主机挂载目录权限为755mysql用户将无法写入。解法是预创建目录并设置正确上下文mkdir -p /opt/mariadb-data chown -R 27:27 /opt/mariadb-data # UID 27 是 mariadb 镜像中 mysql 用户的默认 ID chmod 700 /opt/mariadb-data然后运行容器时指定用户podman run -d \ --name mariadb-prod \ -v /opt/mariadb-data:/var/lib/mysql:Z \ -e MYSQL_ROOT_PASSWORDSecurePass123 \ --user 27:27 \ -p 3306:3306 \ docker.io/library/mariadb:10.6--user 27:27强制容器以 UID 27/GID 27 启动跳过docker-entrypoint.sh的降权逻辑直接进入mysqld进程。验证方式podman exec mariadb-prod ps aux | grep mysqld # 输出应为 27 1 ... /usr/bin/mysqld ...如果看到root 1说明--user未生效需检查 SELinux 上下文是否正确ls -Z /opt/mariadb-data应显示container_file_t。4. Podman 容器全生命周期管理从镜像导出到健康检查的实战闭环4.1 镜像导出与复用podman save为何比docker save更适合国赛环境热词中出现podman 导出镜像、podman 如何打包镜像但多数教程教的是podman commitpodman save。这在国赛中是高风险操作——commit会将容器当前状态含临时文件、日志、未清理的 tmp 目录打包进镜像导致镜像体积膨胀且可能包含敏感信息如临时密码。国赛要求“镜像可审计、可复现”正确做法是基于原始镜像构建新镜像而非 commit。标准流程# 1. 创建构建上下文目录 mkdir -p /tmp/mariadb-build/{conf,scripts} cp /etc/my.cnf /tmp/mariadb-build/conf/ cat /tmp/mariadb-build/scripts/init.sql EOF CREATE DATABASE IF NOT EXISTS exam_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER exam_user% IDENTIFIED BY ExamPass2023; GRANT ALL PRIVILEGES ON exam_db.* TO exam_user%; FLUSH PRIVILEGES; EOF # 2. 编写 Dockerfile注意Podman 兼容 Dockerfile 语法 cat /tmp/mariadb-build/Dockerfile EOF FROM docker.io/library/mariadb:10.6 COPY conf/my.cnf /etc/my.cnf COPY scripts/init.sql /docker-entrypoint-initdb.d/init.sql EOF # 3. 构建并导出镜像 podman build -t local/mariadb-exam:1.0 /tmp/mariadb-build podman save -o /opt/mariadb-exam.tar local/mariadb-exam:1.0podman save生成的是 OCI 标准 tar 包可直接用podman load -i /opt/mariadb-exam.tar加载且podman images会显示local/mariadb-exam镜像符合国赛“镜像命名规范”要求不允许localhost/xxx或docker.io/xxx前缀。注意podman build默认使用buildah后端其构建缓存机制比 Docker 更严格。若构建失败先执行buildah unshare清理命名空间再重试。4.2 健康检查实现HEALTHCHECK指令的国赛级落地国赛评分项包含“服务健康状态可监控”要求容器提供/healthz接口或mysqladmin ping命令。docker.io/library/mariadb:10.6镜像未内置HEALTHCHECK需自行添加。但直接修改镜像不现实最佳方案是在运行时注入podman run -d \ --name mariadb-prod \ -v /opt/mariadb-data:/var/lib/mysql:Z \ -e MYSQL_ROOT_PASSWORDSecurePass123 \ --user 27:27 \ -p 3306:3306 \ --health-cmdmysqladmin ping -h 127.0.0.1 -u root -pSecurePass123 \ --health-interval30s \ --health-timeout10s \ --health-retries3 \ docker.io/library/mariadb:10.6--health-cmd执行mysqladmin ping-pSecurePass123注意密码前无空格否则认证失败。--health-interval30s设置检查间隔--health-retries3表示连续 3 次失败才标记为 unhealthy。验证方式podman inspect mariadb-prod | jq .[0].State.Health # 正常输出应为 {Status:healthy,FailingStreak:0,Log:...}4.3 日志管理与轮转--log-driver参数的底层原理国赛要求“日志保留 7 天单文件不超过 100MB”。podman run默认使用journald日志驱动但journald的轮转策略由/etc/systemd/journald.conf控制与容器无关。正确做法是切换为k8s-file驱动podman run -d \ --name mariadb-prod \ -v /opt/mariadb-data:/var/lib/mysql:Z \ -e MYSQL_ROOT_PASSWORDSecurePass123 \ --user 27:27 \ -p 3306:3306 \ --log-driverk8s-file \ --log-opt max-size100m \ --log-opt max-file7 \ docker.io/library/mariadb:10.6k8s-file驱动将日志写入/var/lib/containers/storage/overlay-containers/id/userdata/下的json.log文件max-size和max-file参数直接控制轮转行为。验证日志路径podman inspect mariadb-prod | jq .[0].HostConfig.LogConfig # 输出应包含 Type:k8s-file,Config:{max-size:100m,max-file:7}4.4 容器备份与恢复mariabackup与podman commit的本质区别热词中出现mariadb 10 excel powerquery暗示数据导出需求。但国赛备份要求是“物理备份”即mariabackup全量备份而非mysqldump逻辑导出。mariabackup必须在容器内执行且需挂载备份目录# 创建备份目录并设置 SELinux 上下文 mkdir -p /opt/mariadb-backup chcon -t container_file_t /opt/mariadb-backup # 执行备份注意备份目录必须在容器内可写 podman exec mariadb-prod sh -c mkdir -p /backup/\$(date %Y%m%d) mariabackup --backup --target-dir/backup/\$(date %Y%m%d) --userroot --passwordSecurePass123 mariabackup生成的备份是二进制文件可直接用于xtrabackup --prepare和--copy-back恢复速度比mysqldump快 5 倍以上。而podman commit生成的是镜像层无法还原数据库状态仅适用于应用代码变更不满足国赛“数据一致性”评分项。5. 国赛高频故障排查与避坑指南来自真实赛场的 7 个血泪教训5.1 故障现象podman search centos报错[0060] error searching registry根本原因Rocky Linux 9.8 默认禁用 Docker Hub 的匿名搜索且podman配置文件/etc/containers/registries.conf中未定义search列表。排查步骤# 1. 检查 registries.conf 配置 cat /etc/containers/registries.conf | grep -A 5 search # 输出应为 search [quay.io, registry.fedoraproject.org] # 2. 临时添加 docker.io国赛允许 echo search [quay.io, registry.fedoraproject.org, docker.io] /etc/containers/registries.conf # 3. 重启 podman 服务 systemctl restart podman避坑心得不要用podman login登录 Docker Hub国赛环境无网络访问权限search列表顺序很重要docker.io必须放在最后否则podman pull centos会优先从quay.io拉取同名镜像导致版本错乱。5.2 故障现象容器启动后立即退出podman logs显示Cant open and lock privilege tables: Table mysql.user doesnt exist根本原因/var/lib/mysql目录已存在但数据文件损坏或权限错误mysqld初始化失败。排查步骤# 1. 检查挂载目录权限 ls -ld /opt/mariadb-data # 应为 drwx------. 2 27 27 ... # 2. 查看容器内 mysql 目录状态 podman run --rm -v /opt/mariadb-data:/data alpine ls -la /data # 3. 强制重新初始化删除旧数据 rm -rf /opt/mariadb-data/* podman run --rm -v /opt/mariadb-data:/var/lib/mysql docker.io/library/mariadb:10.6 true避坑心得podman run --rm启动一个临时容器执行true命令会触发docker-entrypoint.sh的初始化逻辑但不启动mysqld安全清空数据目录。5.3 故障现象mysql -h 127.0.0.1 -u root -p连接失败报错Access denied for user rootlocalhost根本原因MariaDB 10.6 默认启用unix_socket插件root用户只能通过 socket 连接-h 127.0.0.1强制走 TCP认证失败。解决方法# 进入容器执行 podman exec -it mariadb-prod mysql -uroot -pSecurePass123 -e ALTER USER rootlocalhost IDENTIFIED VIA mysql_native_password USING PASSWORD(SecurePass123); FLUSH PRIVILEGES; 避坑心得IDENTIFIED VIA mysql_native_password显式指定认证插件避免unix_socket干扰FLUSH PRIVILEGES必须执行否则更改不生效。5.4 故障现象systemctl status container-mariadb-prod显示failed但podman ps可见容器运行根本原因systemd 服务单元文件未正确配置Typenotify导致systemd无法感知容器启动完成。解决方法# 编辑服务单元文件 sed -i /\[Service\]/a Typenotify /etc/systemd/system/container-mariadb-prod.service sed -i /\[Service\]/a NotifyAccessall /etc/systemd/system/container-mariadb-prod.service systemctl daemon-reload systemctl restart container-mariadb-prod.service避坑心得Typenotify要求容器进程发送sd_notify(READY1)信号docker.io/library/mariadb:10.6镜像已内置支持无需额外配置。5.5 故障现象podman export导出的 tar 包无法podman import报错invalid image manifest根本原因podman export导出的是容器文件系统快照非 OCI 镜像格式不能直接import。正确流程# 导出容器为 tar仅文件系统 podman export mariadb-prod /tmp/mariadb-fs.tar # 创建新镜像需指定基础镜像 cat /tmp/mariadb-fs.tar | podman import docker.io/library/mariadb:10.6 mariadb-custom:1.0避坑心得podman export适用于迁移容器状态podman save才适用于镜像分发国赛评分中“镜像可移植性”指save/load非export/import。5.6 故障现象podman generate systemd生成的服务单元文件启动失败报错no such file or directory: /run/podman/podman.sock根本原因podman system service未启动podman的 API socket 不可用。解决方法# 启动 podman 服务rootful 模式 systemctl enable podman systemctl start podman # 验证 socket ls -l /run/podman/podman.sock # 应为 srw-rw----. 1 root root ...避坑心得podman system service是podman generate systemd的前提国赛环境默认未启用必须手动开启。5.7 故障现象mariabackup备份时提示Cannot open /proc/sys/kernel/random/entropy_avail根本原因容器内/proc/sys/kernel/random/entropy_avail路径被隔离mariabackup依赖该文件获取随机熵。解决方法# 启动容器时挂载 host proc podman run -d \ --name mariadb-prod \ -v /opt/mariadb-data:/var/lib/mysql:Z \ -v /proc/sys/kernel/random:/proc/sys/kernel/random:ro \