Skip to content

## πŸ“ 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:

Bash
chmod +x mc
sudo mv mc /usr/local/bin/

2. Add MinIO Server as Alias

If not already added:

Bash
mc alias set localmino http://<minio-server-ip>:9000 <ACCESS_KEY> <SECRET_KEY>

βœ… Example:

Bash
mc alias set localmino http://192.168.150.14:9000 minioadmin minioadmin

πŸ“‚ Bucket Management

πŸ”Ή List All Buckets

Bash
mc ls localmino

πŸ”Ή Create a New Bucket

Bash
mc mb localmino/<bucket-name>

βœ… Example:

Bash
mc mb localmino/user-backups

πŸ”Ή Remove a Bucket

Bash
mc rb localmino/<bucket-name>

Bucket must be empty to be deleted.


πŸ“ File Upload/Download

πŸ”Ί Upload Files to a Bucket

Bash
mc cp /path/to/file localmino/<bucket-name>/

βœ… Example:

Bash
mc cp mydata.zip localmino/user-backups/

πŸ”» Download Files from a Bucket

Bash
mc cp localmino/<bucket-name>/<file> /destination/path/

βœ… Example:

Bash
mc cp localmino/user-backups/mydata.zip .

πŸ”„ Sync Directories

Synchronize Local Directory to Bucket

Bash
mc mirror /local/dir/ localmino/<bucket-name>/

βœ… Example:

Bash
mc mirror /data/uploads localmino/user-backups/

Synchronize Bucket to Local

Bash
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

Bash
mc admin user add localmino <username> <password>

βœ… Example:

Bash
mc admin user add localmino uploader1 StrongP@ssw0rd!

πŸ”Ή Enable/Disable User

Bash
mc admin user enable localmino <username>
mc admin user disable localmino <username>

πŸ”Ή Remove a User

Bash
mc admin user remove localmino <username>

πŸ” Policy Management

πŸ”Ή Create a Custom Policy (From JSON)

Bash
mc admin policy add localmino <policy-name> /path/to/policy.json

βœ… Example:

Bash
mc admin policy add localmino readonly /home/admin/readonly.json

πŸ”Ή Assign Policy to a User

Bash
mc admin policy set localmino <policy-name> user=<username>

βœ… Example:

Bash
mc admin policy set localmino readonly user=uploader1

πŸ”Ή List All Policies

Bash
mc admin policy list localmino

πŸ“Š Monitoring and Info

πŸ”Έ View Server Info

Bash
mc admin info localmino

πŸ”Έ Check Disk Usage

Bash
mc du localmino/<bucket-name>

πŸ§ͺ Test & Automation

πŸ” Watch for Changes in Bucket

Bash
mc watch localmino/<bucket-name>

πŸ“‹ List Files Recursively

Bash
mc find localmino/<bucket-name> --name "*"

🧰 Example: Full Setup for New User

Bash
# 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:

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

πŸ“š References