diff --git a/init_user_state.py b/init_user_state.py
new file mode 100644
index 0000000000000000000000000000000000000000..a700082176e3f8564941eb3033cdd562198cae69
--- /dev/null
+++ b/init_user_state.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+import argparse
+import dataset
+import sys
+import subprocess
+import rabbit_config as rcfg
+from datetime import datetime
+
+parser = argparse.ArgumentParser()
+parser.add_argument("-f", "--force", action="store_true", help="force update")
+parser.add_argument(
+    "--dry-run", action="store_true", help="enable dry run mode"
+)
+args = parser.parse_args()
+
+default_state = "ok"
+
+db = dataset.connect(f"sqlite:///prod_rmq_agents/{rcfg.db_path}/user_reg.db")
+table = db["user_state"]
+
+if table.__len__() > 0 and not args.force:
+    print("table user_state not empty, abort.")
+    sys.exit()
+
+# Getting user list
+users = subprocess.run(
+    ["ls", "/data/user"], stdout=subprocess.PIPE, encoding="UTF-8"
+).stdout.split()
+
+# Update user_state table
+for user in users:
+    if args.dry_run:
+        print(f"Table insert user: {user}, state: {default_state}")
+    else:
+        table.insert(
+            {"username": user, "state": default_state, "date": datetime.now()}
+        )