为MinIO服务创建一个专用系统用户(无登录权限),避免使用root用户运行,降低安全风险。
sudo useradd -r -s /sbin/nologin minio-user # 创建系统用户(-r表示系统用户,-s指定无登录shell)
创建MinIO存储数据的目录(如/data/minio),并将目录所有权赋予minio-user用户及所属组,确保服务有权读写数据。
sudo mkdir -p /data/minio # 创建数据目录(路径可自定义)
sudo chown -R minio-user:minio-user /data/minio # 递归修改所有权(用户:组)
MinIO的root用户拥有最高权限(可管理所有存储桶、对象及API操作),需通过环境变量设置初始凭证(建议使用强密码,避免使用默认的minioadmin:minioadmin)。
编辑MinIO配置文件(/etc/default/minio),添加以下内容:
MINIO_ROOT_USER="your_admin_access_key" # 替换为自定义访问密钥(如"minio-admin-123")
MINIO_ROOT_PASSWORD="your_admin_secret_key" # 替换为自定义秘密密钥(如"StrongPassword@2025")
MINIO_VOLUMES="/data/minio" # 指定数据目录(需与步骤2一致)
MINIO_OPTS="--console-address :9001" # 控制台端口(默认9000为API,9001为Web控制台)
通过Systemd服务管理MinIO进程,确保服务以minio-user身份运行,进一步提升安全性。
创建服务文件(/etc/systemd/system/minio.service),内容如下:
[Unit]
Description=MinIO Server
After=network.target
[Service]
User=minio-user # 指定运行用户
Group=minio-user # 指定运行组
EnvironmentFile=/etc/default/minio # 加载配置文件
ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS # 启动命令(需确认minio路径)
Restart=always # 失败时自动重启
RestartSec=10 # 重启间隔10秒
[Install]
WantedBy=multi-user.target # 开机自启
重新加载Systemd配置,启动MinIO服务,并设置为开机自动启动:
sudo systemctl daemon-reload # 重新加载Systemd配置
sudo systemctl enable --now minio # 启用开机自启并立即启动
sudo systemctl status minio # 检查服务状态(确认"active (running)")
若服务器启用了防火墙(如ufw),需放行MinIO的API端口(9000)和控制台端口(9001),允许外部访问:
sudo ufw allow 9000/tcp # 允许API端口
sudo ufw allow 9001/tcp # 允许控制台端口
sudo ufw status verbose # 查看防火墙状态(确认规则生效)
/etc/default/minio文件中的MINIO_ROOT_USER和MINIO_ROOT_PASSWORD,然后重启MinIO服务(sudo systemctl restart minio)。http://<服务器IP>:9001)或mc命令行工具(MinIO Client)创建子用户,分配特定存储桶的读写权限(如mc admin user add命令)。chown改为minio-user:minio-user+chmod 750(禁止其他用户访问),但需确保MinIO服务仍能正常读写。通过以上步骤,可完成Ubuntu上MinIO安装后的用户权限设置,确保服务以最小权限运行,同时通过root凭证和子用户管理实现细粒度的访问控制。