RADOSGW-ADMIN(8)
π¦ radosgw-admin(8) β Ceph π¦
okay so bestie, this is the manual for radosgw-admin from Ceph. it's giving admin tool realness, and we're about to get into it. π
β¨ NAME β¨
radosgw-admin β rados REST gateway user administration utility. no cap.
π SYNOPSIS π
radosgw-admin command [ options ... ]
π DESCRIPTION π
radosgw-admin is a Ceph Object Gateway user administration utility. It is used to create and modify users. periodt. π
π COMMANDS π
The radosgw-admin utility provides commands for administration purposes as follows:
user createβ Create a new user. β¨user modifyβ Modify a user. πuser infoβ Display information for a user including any subusers and keys. πuser renameβ Renames a user. βοΈuser rmβ Remove a user. πuser suspendβ Suspend a user. πuser enableβ Re-enable user after suspension. π«Άuser checkβ Check user info. πuser statsβ Show user stats as accounted by the quota subsystem. πuser listβ List all users. π₯caps addβ Add user capabilities. πcaps rmβ Remove user capabilities. πsubuser createβ Create a new subuser (primarily useful for clients using the Swift API). π¦subuser modifyβ Modify a subuser. πsubuser rmβ Remove a subuser. πkey createβ Create access key. πkey rmβ Remove access key. ποΈbucket listβ List buckets, or, if a bucket is specified with--bucket=<bucket>, list its objects. Adding--allow-unorderedremoves the ordering requirement, possibly generating results more quickly for buckets with large number of objects. πͺ£bucket limit checkβ Show bucket sharding stats. πbucket linkβ Link bucket to specified user. πbucket unlinkβ Unlink bucket from specified user. βοΈbucket chownβ Change bucket ownership to the specified user and update object ACLs. Invoke with--markerto resume if the command is interrupted. πbucket statsβ List bucket statistics plus other internal information about a bucket. πbucket rmβ Remove a bucket. πbucket checkβ Check bucket index. πbucket rewriteβ Rewrite all objects in the specified bucket. β»οΈbucket radoslistβ List the RADOS objects that contain the data for all objects in the designated bucket, if--bucket=<bucket>is specified. Otherwise, list the RADOS objects that contain data for all buckets. πbucket reshardβ Reshard a bucket's index. π§©bucket sync disableβ Disable bucket sync. π«bucket sync enableβ Enable bucket sync. βbi getβ Retrieve bucket index object entries. π₯bi putβ Store bucket index object entries. π€bi listβ List raw bucket index entries. πbi purgeβ Purge bucket index entries. π₯object rmβ Remove an S3/Swift object. Include--yes-i-really-mean-itto remove object's entry from bucket index, for example if it's damaged. πobject statβ Stat an S3/Swift object for its metadata. πobject manifestβ Display the manifest of an S3/Swift object, producing a list of RADOS objects containing the data. πobject unlinkβ Unlink S3/Swift object from bucket index. βοΈobject rewriteβ Rewrite the specified S3/Swift object. β»οΈobject reindexβ Add an S3/Swift object to its bucket's index. Used rarely for emergency repairs. πobjects expireβ Run expired objects cleanup. π§Ήperiod rmβ Remove a period. πperiod getβ Get the period info. πperiod get-currentβ Get the current period info. πperiod pullβ Pull a period. π₯period pushβ Push a period. π€period listβ List all periods. πperiod updateβ Update the staging period. πperiod commitβ Commit the staging period. βquota setβ Set quota params. βοΈquota enableβ Enable quota. βquota disableβ Disable quota. π«global quota getβ View global quota parameters. πglobal quota setβ Set global quota parameters. βοΈglobal quota enableβ Enable a global quota. βglobal quota disableβ Disable a global quota. π«realm createβ Create a new realm. πrealm rmβ Remove a realm. πrealm getβ Show the realm info. βΉοΈrealm get-defaultβ Get the default realm name. π―realm listβ List all realms. πrealm list-periodsβ List all realm periods. πrealm renameβ Rename a realm. βοΈrealm setβ Set the realm info (requires infile). πrealm defaultβ Set the realm as default. πrealm pullβ Pull a realm and its current period. π₯zonegroup addβ Add a zone to a zonegroup. βzonegroup createβ Create a new zone group info. ποΈzonegroup defaultβ Set the default zone group. πzonegroup rmβ Remove a zone group info. πzonegroup getβ Show the zone group info. βΉοΈzonegroup modifyβ Modify an existing zonegroup. βοΈzonegroup setβ Set the zone group info (requires infile). πzonegroup removeβ Remove a zone from a zonegroup. βzonegroup renameβ Rename a zone group. βοΈzonegroup listβ List all zone groups set on this cluster. πzonegroup placement listβ List zonegroup's placement targets. πzonegroup placement addβ Add a placement target id to a zonegroup. βzonegroup placement modifyβ Modify a placement target of a specific zonegroup. βοΈzonegroup placement rmβ Remove a placement target from a zonegroup. βzonegroup placement defaultβ Set a zonegroup's default placement target. πzone createβ Create a new zone. πzone rmβ Remove a zone. πzone getβ Show zone cluster params. βΉοΈzone setβ Set zone cluster params (requires infile). πzone modifyβ Modify an existing zone. βοΈzone listβ List all zones set on this cluster. πmetadata sync statusβ Get metadata sync status. πmetadata sync initβ Init metadata sync. πmetadata sync runβ Run metadata sync. πdata sync statusβ Get data sync status of the specified source zone. πdata sync initβ Init data sync for the specified source zone. πdata sync runβ Run data sync for the specified source zone. πsync error listβ List sync errors. β οΈsync error trimβ Trim sync errors. βοΈzone renameβ Rename a zone. βοΈzone placement listβ List a zone's placement targets. πzone placement addβ Add a zone placement target. βzone placement modifyβ Modify a zone placement target. βοΈzone placement rmβ Remove a zone placement target. βpool addβ Add an existing pool for data placement. πpool rmβ Remove an existing pool from data placement set. πpools listβ List placement active set. πpolicyβ Display bucket/object policies (e.g. permissions/ACLs etc.). πlog listβ List log objects. πlog showβ Dump a log from specific object or (bucket + date + bucket-id). (NOTE: required to specify formatting of date to"YYYY-MM-DD-hh"). πͺ΅log rmβ Remove log object. ποΈusage showβ Show the usage information (with optional user and date range). πusage trimβ Trim usage information (with optional user and date range). βοΈgc listβ Dump expired garbage collection objects (specify--include-allto list all entries, including unexpired). ποΈgc processβ Manually process garbage. β»οΈlc getβ Get lifecycle config for a bucket. πlc listβ List all bucket lifecycle progress. πlc processβ Manually process lifecycle transitions. If a bucket is specified (e.g., via--bucket_idor via--bucketand optional--tenant), only that bucket is processed. πmetadata getβ Get metadata info. βΉοΈmetadata putβ Put metadata info. π€metadata rmβ Remove metadata info. πmetadata listβ List metadata info. πmdlog listβ List metadata log which is needed for multi-site deployments. πmdlog trimβ Trim metadata log manually instead of relying on the gateway's integrated log sync. Before trimming, compare the listings and make sure the last sync was complete, otherwise it can reinitiate a sync. βοΈmdlog statusβ Read metadata log status. πbilog listβ List bucket index log which is needed for multi-site deployments. πbilog trimβ Trim bucket index log (use start-marker, end-marker) manually instead of relying on the gateway's integrated log sync. Before trimming, compare the listings and make sure the last sync was complete, otherwise it can reinitiate a sync. βοΈdatalog listβ List data log which is needed for multi-site deployments. πdatalog trimβ Trim data log manually instead of relying on the gateway's integrated log sync. Before trimming, compare the listings and make sure the last sync was complete, otherwise it can reinitiate a sync. βοΈdatalog statusβ Read data log status. πorphans findβ Init and run search for leaked RADOS objects. DEPRECATED. See thergw-orphan-listtool. β οΈorphans finishβ Clean up search for leaked RADOS objects. DEPRECATED. See thergw-orphan-listtool. β οΈorphans list-jobsβ List the current orphans search job IDs. DEPRECATED. See thergw-orphan-listtool. β οΈrole createβ Create a new role for use with STS (Security Token Service). πrole rmβ Remove a role. πrole getβ Get a role. π₯role listβ List the roles with specified path prefix. πrole modifyβ Modify the assume role policy of an existing role. βοΈrole-policy putβ Add/update permission policy to role. βrole-policy listβ List the policies attached to a role. πrole-policy getβ Get the specified inline policy document embedded with the given role. πrole-policy rmβ Remove the policy attached to a role. πreshard addβ Schedule a resharding of a bucket. πreshard listβ List all bucket resharding or scheduled to be resharded. πreshard processβ Process of scheduled reshard jobs. βοΈreshard statusβ Resharding status of a bucket. π
part 1 done, more coming π
reshard cancelβ nope, we're not resharding that bucket anymore, cancel it πtopic listβ lists out all your bucket notification topics β¨topic getβ grabs one bucket notification topic for you πtopic rmβ deletes a bucket notifications topic, bye bestie πtopic statsβ shows the persistent topic stats for bucket notifications, aka reservations, entries and size π₯topic dumpβ dumps (in JSON, bestie, it's giving structured data β¨) all the pending bucket notifications of a persistent topic
β¨ OPTIONS β¨
Okay so this is the big one, the options buffet, the main character section, let's go π«Ά
-c ceph.conf,--conf=ceph.confβ use thisceph.confconfig file instead of the default/etc/ceph/ceph.confwhen it's figuring out monitor addresses at startup π-m monaddress[:port]β connect to this specific monitor instead of letting it pick one out ofceph.confπ--tenant=<tenant>β the name of the tenant π--uid=uidβ the user you're operating on, that's the one π--new-uid=uidβ the new ID of the user. this one rides along with theuser renamecommand β¨--subuser=<name>β the name of the subuser π--access-key=<key>β the S3 access key π--email=emailβ the user's e-mail address, yes we're collecting those π§--secret/--secret-key=<key>β the secret key, shhh π€«--gen-access-keyβ generates a random access key (for S3) π²--gen-secretβ generates a random secret key π²--generate-keyβ create a user with or without credentials. here's the deal: if this is set to false, then the user cannot set--gen-access-key/--gen-secret/--secret-key/--access-key. if it's set to true, then the user cannot set--secret-key/--access-keyand instead bypasses those options in favor of--gen-secret/--gen-access-key. default is true π--key-type=<type>β the key type, and your options areswiftands3π--temp-url-key[-2]=<key>β the temporary URL key β³--max-bucketsβ max number of buckets a user can have (0means no limit at all, and a negative value disables bucket creation entirely, no cap fr). default is1000πΈ--access=<access>β sets the access permissions for the subuser. available ones areread,write,readwriteandfullβ--display-name=<name>β the display name of the user β¨--adminβ sets the admin flag on the user π--systemβ sets the system flag on the user π--bucket=[tenant-id/]bucketβ specify the bucket name. and if you don't give atenant-id, it just uses the tenant-id of the user (--uid) πͺ£--pool=<pool>β specify the pool name. it's also used withorphans findas the data pool to scan for leaked rados objects π--object=objectβ specify the object name π¦--date=yyyy-mm-ddβ a date in the formatyyyy-mm-ddπ--start-date=yyyy-mm-ddβ the start date in the formatyyyy-mm-ddπ--end-date=yyyy-mm-ddβ the end date in the formatyyyy-mm-ddπ--bucket-id=<bucket-id>β specify the bucket id π--bucket-new-name=[tenant-id/]<bucket>β optional for bucket link, use it to rename a bucket. and yeah you can specify the tenant-id, but honestly you don't need to in normal operation π--shard-id=<shard-id>β optional formdlog list,bi listanddata sync status. required formdlog trimβ οΈ--max-entries=<entries>β optional, for listing operations, to say the max entries you want π--purge-dataβ when you set this, removing the user also purges that user's data π (dramatic but yes)--purge-keysβ when you set this, removing the subuser also purges the subuser's keys π--purge-objectsβ when you set this, removing the bucket also purges every object inside it π--metadata-key=<key>β the key to retrieve metadata from, used withmetadata getπ--remote=<remote>β zone or zonegroup id of the remote gateway π--period=<id>β the period ID π--url=<url>β the URL for pushing/pulling a period or realm π--epoch=<number>β the period epoch π’--commitβ commit the period duringperiod updateβ--stagingβ get the staging period info π--masterβ set as master π--master-zone=<id>β the master zone ID π°--rgw-realm=<name>β the realm name β¨--realm-id=<id>β the realm ID π--realm-new-name=<name>β a new name for the realm π·οΈ--rgw-zonegroup=<name>β the zonegroup name π--zonegroup-id=<id>β the zonegroup ID π--zonegroup-new-name=<name>β the new name of the zonegroup π·οΈ--rgw-zone=<zone>β the zone in which the gateway is running π--zone-id=<id>β the zone ID π--zone-new-name=<name>β the new name of the zone π·οΈ--source-zoneβ the source zone for data sync π‘--defaultβ set the entity (realm, zonegroup, zone) as default β--read-onlyβ set the zone as read-only when adding it to the zonegroup π--placement-idβ placement ID for the zonegroup placement commands π--tags=<list>β the list of tags for zonegroup placement add and modify commands π·οΈ--tags-add=<list>β the list of tags to add for the zonegroup placement modify command β--tags-rm=<list>β the list of tags to remove for the zonegroup placement modify command β--endpoints=<list>β the zone endpoints π--index-pool=<pool>β the placement target index pool ποΈ--data-pool=<pool>β the placement target data pool πΎ--data-extra-pool=<pool>β the placement target data extra (non-EC) pool πΎ--placement-index-type=<type>β the placement target index type, sonormal,indexless, or#idποΈ--placement-inline-data=<true>β whether the placement target is configured to store a data chunk inline in head objects π§©--tier-type=<type>β the zone tier type ποΈ--tier-config=<k>=<v>[,...]β set zone tier config keys and values βοΈ--tier-config-rm=<k>[,...]β unset zone tier config keys ποΈ--sync-from-all[=false]β set/reset whether the zone syncs from all zonegroup peers π--sync-from=[zone-name][,...]β set the list of zones to sync from π₯--sync-from-rm=[zone-name][,...]β remove zone(s) from the list of zones to sync from π€--bucket-index-max-shardsβ override a zone's or zonegroup's default number of bucket index shards. this option is accepted by thezone create,zone modify,zonegroup add, andzonegroup modifycommands, and it applies to buckets that are created after the zone/zonegroup changes take effect β¨--fixβ fix the bucket index in addition to checking it π§--check-objectsβ bucket check: rebuilds the bucket index according to the actual object state π--format=<format>β specify the output format for certain operations. supported formats:xml,jsonπ--sync-statsβ an option for theuser statscommand. when you set it, it updates user stats with the current stats reported by the user's bucket indexes π--show-configβ show configuration βοΈ--show-log-entries=<flag>β enable/disable dumping of log entries onlog showπ--show-log-sum=<flag>β enable/disable dumping of log summation onlog showπ--skip-zero-entriesβlog showonly dumps entries that don't have a zero value in one of the numeric fields π--infileβ specify a file to read when setting data π--categories=<list>β comma separated list of categories, used inusage showποΈ--caps=<caps>β list of capabilities (e.g.,"usage=read, write; user=read") πͺ--compression=<compression-algorithm>β placement target compression algorithm, solz4,snappy,zlib, orzstdποΈ--yes-i-really-mean-itβ required as a guardrail for certain destructive operations π¨ (yeah she's for real for real)--min-rewrite-sizeβ specify the minimum object size for bucket rewrite (default4M) π--max-rewrite-sizeβ specify the maximum object size for bucket rewrite (defaultULLONG_MAX) π--min-rewrite-stripe-sizeβ specify the minimum stripe size for object rewrite (default0). and if the value is set to0, then the specified object will always be rewritten when restriping π--warnings-onlyβ when specified with bucket limit check, it lists only the buckets nearing or over the current max objects per shard value β οΈ--bypass-gcβ when specified with bucket deletion, it triggers object deletion without involving GC π--inconsistent-indexβ when specified with bucket deletion andbypass-gcset to true, it ignores bucket index consistency π--max-concurrent-iosβ maximum concurrent bucket operations. this affects operations that scan the bucket index, e.g., listing, deletion, and all scan/search operations such as finding orphans or checking the bucket index. the default is32π
π QUOTA OPTIONS π
--max-objectsβ specify the maximum number of objects (a negative value disables it) π’--max-sizeβ specify the maximum object size (inB/K/M/G/T, negative value disables it) π--quota-scopeβ the scope of the quota, sobucketoruserπ―
π ORPHANS SEARCH OPTIONS π
--num-shardsβ number of shards to use for temporary scan info π§©--orphan-stale-secsβ number of seconds to wait before declaring an object to be an orphan. the default is86400(24 hours) β°--job-idβ set the job id (fororphans find) π
π ORPHANS LIST-JOBS OPTIONS π
--extra-infoβ provide extra info in the job list π
π ROLE OPTIONS π
--role-nameβ the name of the role to create β¨--pathβ the path to the role π--assume-role-policy-docβ the trust relationship policy document that grants an entity permission to assume the role π€--policy-nameβ the name of the policy document π--policy-docβ the permission policy document π--path-prefixβ the path prefix for filtering the roles ποΈ
π¦ BUCKET NOTIFICATIONS/PUBSUB OPTIONS π¦
--topicβ the bucket notifications/pubsub topic name β¨--subscriptionβ the pubsub subscription name π¬--event-idβ the event id in a pubsub subscription π
β¨ EXAMPLES β¨
okay bestie this is the part where it all comes together, the little recipe book of "here's literally exactly what you type" π every single one of these is copy-paste-able, so go off.
Make a new user, iconic:
$ radosgw-admin user create --display-name="johnny rotten" --uid=johnny
{ "user_id": "johnny",
"rados_uid": 0,
"display_name": "johnny rotten",
"email": "",
"suspended": 0,
"subusers": [],
"keys": [
{ "user": "johnny",
"access_key": "TCICW53D9BQ2VGC46I44",
"secret_key": "tfm9aHMI8X76L3UdgE+ZQaJag1vJQmE6HDb5Lbrz"}],
"swift_keys": []}
look at those keys bestie, that's the whole glow-up right there πβ¨
Yeet a user:
$ radosgw-admin user rm --uid=johnny
Give a user a whole new name, main character rebrand:
$ radosgw-admin user rename --uid=johnny --new-uid=joe
Remove a user AND every single bucket they own with all the stuff inside it:
$ radosgw-admin user rm --uid=johnny --purge-data
β οΈ bestie be so for real before you run this one, --purge-data is not playing around, the data is gone gone π
Remove a bucket:
$ radosgw-admin bucket rm --bucket=foo
Link a bucket to a specific user (yes you need the bucket id, it's giving very specific):
$ radosgw-admin bucket link --bucket=foo --bucket_id=<bucket id> --uid=johnny
Unlink a bucket from a user, it's not theirs anymore, we're detaching:
$ radosgw-admin bucket unlink --bucket=foo --uid=johnny
Rename a bucket, sneaky little slay:
$ radosgw-admin bucket link --bucket=foo --bucket-new-name=bar --uid=johnny
Move a bucket from the old global tenant space over to a specified tenant, lowkey a relocation arc:
$ radosgw-admin bucket link --bucket=foo --uid='12345678$12345678'
Link a bucket to a specified user AND change the object ACLs at the same time, multitasking queen:
$ radosgw-admin bucket chown --bucket=foo --uid='12345678$12345678'
Show a bucket's logs from April 1st, 2012:
$ radosgw-admin log show --bucket=foo --date=2012-04-01-01 --bucket-id=default.14193.1
Show usage info for a user from March 1st up to but NOT including April 1st, 2012 (the boundary is exclusive, keep that in mind bestie):
$ radosgw-admin usage show --uid=johnny \
--start-date=2012-03-01 --end-date=2012-04-01
Show ONLY the summary of usage info for all the users, no log entries, we're keeping it cute and concise:
$ radosgw-admin usage show --show-log-entries=false
Trim the usage information for a user until March 1st, 2012:
$ radosgw-admin usage trim --uid=johnny --end-date=2012-04-01
π AVAILABILITY π
so radosgw-admin is part of Ceph, which is a massively scalable, open-source, distributed storage system (yes, the whole flex π
). if you want more info, please refer to the Ceph documentation at <https://docs.ceph.com>. go read it, it's good for you π«Ά
π SEE ALSO π
ceph<>(8)radosgw<>(8)
π Copyright π
2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0).
and that's the whole page bestie, you made it to the end, I'm so proud of you π₯Ήπ this was dev on Oct 06, 2026, filed under RADOSGW-ADMIN(8). now go create some users and slay responsibly β¨π
π¦ where this page comes from
- ubuntu stonking: ceph-common 20.2.4+ds1-0ubuntu1 Β· LGPL2.1 (see COPYING-LGPL2.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms