## π Author
Birat Aryal β birataryal.github.io
Created Date: 2025-06-30
Updated Date: Monday 30th June 2025 21:00:55
Website - birataryal.com.np
Repository - Birat Aryal
LinkedIn - Birat Aryal
DevSecOps Engineer | System Engineer | Cyber Security Analyst | Network Engineer
π MinIO Management Guide Using mc (MinIO Client)
This document provides a comprehensive reference for managing a MinIO server using the mc client tool. It assumes that:
- MinIO server is running and accessible.
- An alias localmino is configured for the MinIO instance.
β Prerequisites
1. Install mc (MinIO Client)
Download from: https://min.io/download#/mc
Then install:
chmod +x mc
sudo mv mc /usr/local/bin/
2. Add MinIO Server as Alias
If not already added:
mc alias set localmino http://<minio-server-ip>:9000 <ACCESS_KEY> <SECRET_KEY>
β Example:
mc alias set localmino http://192.168.150.14:9000 minioadmin minioadmin
π Bucket Management
πΉ List All Buckets
mc ls localmino
πΉ Create a New Bucket
mc mb localmino/<bucket-name>
β Example:
mc mb localmino/user-backups
πΉ Remove a Bucket
mc rb localmino/<bucket-name>
Bucket must be empty to be deleted.
π File Upload/Download
πΊ Upload Files to a Bucket
mc cp /path/to/file localmino/<bucket-name>/
β Example:
mc cp mydata.zip localmino/user-backups/
π» Download Files from a Bucket
mc cp localmino/<bucket-name>/<file> /destination/path/
β Example:
mc cp localmino/user-backups/mydata.zip .
π Sync Directories
Synchronize Local Directory to Bucket
mc mirror /local/dir/ localmino/<bucket-name>/
β Example:
mc mirror /data/uploads localmino/user-backups/
Synchronize Bucket to Local
mc mirror localmino/<bucket-name>/ /local/dir/
π€ User and Policy Management
For IAM-compatible setups (MinIO in server mode with identity support).
πΉ Add a New User
mc admin user add localmino <username> <password>
β Example:
mc admin user add localmino uploader1 StrongP@ssw0rd!
πΉ Enable/Disable User
mc admin user enable localmino <username>
mc admin user disable localmino <username>
πΉ Remove a User
mc admin user remove localmino <username>
π Policy Management
πΉ Create a Custom Policy (From JSON)
mc admin policy add localmino <policy-name> /path/to/policy.json
β Example:
mc admin policy add localmino readonly /home/admin/readonly.json
πΉ Assign Policy to a User
mc admin policy set localmino <policy-name> user=<username>
β Example:
mc admin policy set localmino readonly user=uploader1
πΉ List All Policies
mc admin policy list localmino
π Monitoring and Info
πΈ View Server Info
mc admin info localmino
πΈ Check Disk Usage
mc du localmino/<bucket-name>
π§ͺ Test & Automation
π Watch for Changes in Bucket
mc watch localmino/<bucket-name>
π List Files Recursively
mc find localmino/<bucket-name> --name "*"
π§° Example: Full Setup for New User
# 1. Create a bucket
mc mb localmino/projects
# 2. Add a user
mc admin user add localmino developer1 Dev123Secure!
# 3. Create a readwrite policy (assuming JSON exists)
mc admin policy add localmino rw-policy ./readwrite-policy.json
# 4. Assign policy to user
mc admin policy set localmino rw-policy user=developer1
π Sample Policy: Read-Only Access
Save as readonly.json:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:GetObject", "s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::user-backups/*", "arn:aws:s3:::user-backups"]
}
]
}
π§― Troubleshooting Tips
| Problem | Solution |
|---|---|
| Access denied | Check user policy and bucket permissions |
| Cannot delete bucket | Ensure it is empty (mc rm) |
| Upload fails | Try --debug flag to see logs |
| Permission error | Use mc admin policy list to check whatβs applied |