Người dùng
Quản lý người dùng: thêm, xoá, tạm ngưng, bỏ tạm ngưng, v.v.
Liệt kê người dùng
Để liệt kê mọi người dùng, dùng lệnh sau:
hitechcloudcli user-list
Ví dụ kết quả
# hitechcloudcli user-list
+----+----------------+-------------------+----------------+----------------+-------+---------------------+
| id | username | email | plan_name | server | owner | registered_date |
+----+----------------+-------------------+----------------+----------------+-------+---------------------+
| 1 | stefan | jane@example.com | Developer Plus | stefan | NULL | 2025-12-25 14:49:38 |
| 2 | panel | stefan@netops.com | Developer Plus | panel | NULL | 2025-12-25 14:50:18 |
| 6 | emailfilterapi | emailfilterapi | Developer Plus | emailfilterapi | NULL | 2026-01-28 12:25:41 |
+----+----------------+-------------------+----------------+----------------+-------+---------------------+
Bạn cũng có thể xuất dữ liệu dạng JSON:
hitechcloudcli user-list --json
Ví dụ kết quả
{
"data": [
{
"id": 1000,
"username": "stefan",
"context": "stefan",
"owner": "root",
"package": {
"name": "Developer Plus",
"owner": "root"
},
"email": "jane@example.com",
"locale_code": "EN_us"
},
{
"id": 1001,
"username": "panel",
"context": "panel",
"owner": "root",
"package": {
"name": "Developer Plus",
"owner": "root"
},
"email": "stefan@netops.com",
"locale_code": "EN_us"
},
{
"id": 1002,
"username": "emailfilterapi",
"context": "emailfilterapi",
"owner": "root",
"package": {
"name": "Developer Plus",
"owner": "root"
},
"email": "emailfilterapi",
"locale_code": "EN_us"
}
],
"metadata": {
"result": "ok"
}
}
Để chỉ hiển thị số lượng người dùng:
hitechcloudcli user-list --total
Ví dụ kết quả
# hitechcloudcli user-list --total
Total number of users: 3
hoặc:
hitechcloudcli user-list --total --json
Ví dụ kết quả
#hitechcloudcli user-list --total --json
3
Liệt kê hạn mức của mọi người dùng
hitechcloudcli user-list --quota
Ví dụ kết quả
{
"timestamp": "2026-04-01T10:16:01Z",
"users": [
{"username":"stefan","uid":1000,"home_path":"/home/stefan/","disk_used":269744,"disk_soft":5120000,"disk_hard":5120000,"inodes_used":130,"inodes_soft":1000000,"inodes_hard":1000000},
{"username":"jane","uid":1001,"home_path":"/home/jane/","disk_used":550216,"disk_soft":5120000,"disk_hard":5120000,"inodes_used":143,"inodes_soft":1000000,"inodes_hard":1000000},
{"username":"demo","uid":1002,"home_path":"/home/demo/","disk_used":4138604,"disk_soft":10240000,"disk_hard":10240000,"inodes_used":74889,"inodes_soft":1000000,"inodes_hard":1000000}
]
}
Thêm người dùng
hitechcloudcli user-add <USERNAME> <PASSWORD|generate> <EMAIL> "<PLAN_NAME>" [--send-email] [--debug] [--reseller=<RESELLER_USERNAME>] [--server=<IP_ADDRESS>] [--key=<SSH_KEY_PATH>]
Để tạo người dùng mới, chạy lệnh sau:
hitechcloudcli user-add <USERNAME> <PASSWORD> <EMAIL> <PLAN_NAME>
Ví dụ:
hitechcloudcli user-add jane Str0ngPassw0rd jane@example.com 'Default Plan Nginx'
Dùng random làm mật khẩu để tạo một mật khẩu ngẫu nhiên mạnh.
Để gửi email kèm thông tin đăng nhập tới địa chỉ email của người dùng, truyền cờ --send-email.
Tạo người dùng trên máy chủ phụ (slave)
Để tạo người dùng mới trên một máy chủ khác:
- Tạo cặp khoá ssh và thiết lập kết nối ssh từ máy chủ chính (master) tới máy chủ phụ (slave).
- Chạy lệnh sau:
hitechcloudcli user-add <USERNAME> <PASSWORD> <EMAIL> "<PLAN_NAME>" --server=<IP_ADDRESS> --key=<SSH_KEY_PATH>
Tạo mọi người dùng mới trên máy chủ phụ
Để tự động tạo mọi người dùng sau này trên một máy chủ khác:
- Tạo cặp khoá ssh và thiết lập kết nối ssh từ máy chủ chính tới máy chủ phụ.
- Mở HiTechAdmin > Máy chủ > Node mặc định (
/server/node), nhập địa chỉ IPv4 của máy chủ từ xa và đường dẫn tới khoá riêng tư trên máy chủ này, rồi bấm Lưu cài đặt. Trang này kiểm tra rằng nó đăng nhập được qua SSH bằng khoá đó trước khi lưu. - Vậy là xong, mọi tài khoản người dùng mới sẽ được tạo trên máy chủ từ xa. Để quay lại tạo tài khoản t ại đây, xoá trống cả hai trường và lưu.
LƯU Ý: Máy chủ từ xa phải là bản cài mới của Ubuntu 24.04 - các bản phân phối và phiên bản khác không được hỗ trợ.
Tạo người dùng cho đại lý
hitechcloudcli user-add <USERNAME> <PASSWORD> <EMAIL> "<PLAN_NAME>" --reseller=<RESELLER_USERNAME>
Chuyển người dùng
Để chuyển tài khoản người dùng sang máy chủ khác:
hitechcloudcli user-transfer --account <HITECHCLOUD_USER> --host <DESTINATION_IP> --username <HITECHCLOUD_USERNAME> --password <DESTINATION_SSH_PASSWORD> --port 22
thêm cờ --live-transfer để tạm ngưng tài khoản sau khi chuyển, và chuyển tiếp DNS sang máy chủ mới.
Xoá người dùng
Để xoá một người dùng cùng toàn bộ dữ liệu của họ, chạy lệnh sau:
hitechcloudcli user-delete <USERNAME>
thêm cờ -y để không hỏi xác nhận.
Thao tác này không thể hoàn tác và sẽ xoá vĩnh viễn toàn bộ dữ liệu của người dùng.
Để xoá mọi người dùng cùng toàn bộ dữ liệu của họ, dùng cờ --all:
hitechcloudcli user-delete --all
Tạm ngưng người dùng
Để tạm ngưng (tạm thời chặn truy cập) một người dùng, chạy lệnh sau:
hitechcloudcli user-suspend <USERNAME> [-y]
Bỏ tạm ngưng người dùng
Để bỏ tạm ngưng (cho phép truy cập lại) một người dùng, chạy lệnh sau:
hitechcloudcli user-unsuspend <USERNAME>
Đổi tên người dùng
Để đổi tên người dùng, chạy:
hitechcloudcli user-rename <USERNAME> <NEW_USERNAME>
Đổi email
Để đổi email, chạy:
hitechcloudcli user-email <USERNAME> <NEW_EMAIL>
Đổi mật khẩu
Để đặt lại mật khẩu cho một người dùng HiTechCloud, bạn có thể dùng lệnh user-password:
hitechcloudcli user-password <USERNAME> <NEW_PASSWORD>
Đăng nhập với tư cách người dùng
Lệnh này cho phép bạn tạo liên kết tự động đăng nhập cho bất kỳ người dùng HiTechCloud nào.
hitechcloudcli user-login <USERNAME>
Ví dụ kết quả
# hitechcloudcli user-login demouser --open
https://demo.hitechcloud.org:2083/login_autologin?admin_token=EXAMPLE-TOKEN-NOT-A-REAL-ONE&username=demouser
Để vô hiệu hoá token hiện có của một người dùng:
hitechcloudcli user-login <USERNAME> --delete
Để mở liên kết trong trình duyệt:
hitechcloudcli user-login <USERNAME> --open
Đổi gói
Lệnh hitechcloudcli user-change_plan cho phép bạn đổi gói cho một người dùng.
hitechcloudcli user-change_plan <username> "<new_plan_name>"
Hạn mức
Lệnh hitechcloudcli user-quota áp dụng và tính lại hạn mức đĩa và inode cho một hoặc mọi người dùng.
hitechcloudcli user-quota <username|--all>
Ví dụ kết quả
# hitechcloudcli user-quota stefan
[2026-01-28 17:51:40] Processing user: stefan
[2026-01-28 17:51:40] Quota set for user stefan: 20480000 blocks (20 GB) and 2500000 inodes
[2026-01-28 17:51:40] Updating repquota file...
[2026-01-28 17:51:40] Repquota file updated successfully: /etc/hitechcloud/hitechcloud/core/users/repquota
Kiểm tra / tắt 2FA
Để tắt Xác thực hai yếu tố cho một người dùng, chạy lệnh sau:
hitechcloudcli user-2fa <USERNAME> [disable]
Gán / gỡ IP cho người dùng
Để gán một địa chỉ IP còn trống cho người dùng, chạy lệnh sau:
hitechcloudcli user-ip <USERNAME> <IP_ADDRESS>
Để gán cho người dùng này một địa chỉ IP đang được người dùng khác sử dụng, chạy lệnh sau:
hitechcloudcli user-ip <USERNAME> <IP_ADDRESS> --y
Để gỡ địa chỉ IP riêng khỏi một người dùng, chạy:
hitechcloudcli user-ip <USERNAME> delete
Kiểm tra
Kiểm tra tệp và bảo mật của một người dùng:
hitechcloudcli user-check <USERNAME>
# or
hitechcloudcli user-report <USERNAME>
Ví dụ kết quả
# hitechcloudcli user-check mozda
===== Checking user: mozda =====
---- Docker Daemon Security ----
[INFO] Running for user: mozda
[WARN] Inter-container communication on default bridge is allowed
[WARN] Docker logging level is not set to 'info' ('default')
[PASS] Docker is not allowed to modify iptables
[PASS] Not using deprecated aufs storage driver
[WARN] TLS authentication for Docker daemon is NOT configured
[PASS] Docker daemon is NOT listening on TCP socket
[PASS] Experimental features are NOT enabled
[PASS] Rootless context is configured
[PASS] Containers can not get new privileges
[PASS] Google DNS resolvers are configured
---- System and User Files ----
[PASS] /home/mozda/docker-data is configured for docker data.
[PASS] home.mozda.bin.rootlesskit file exists.
[PASS] .env file exists.
[PASS] docker-compose.yml file exists.
[PASS] backup.env file exists.
[PASS] crons.ini file exists.
[PASS] custom.cnf file exists.
[PASS] default.vcl file exists.
[PASS] httpd.conf file exists.
[PASS] nginx.conf file exists.
[PASS] openresty.conf file exists.
[PASS] pma.php file exists.
[PASS] Disk usage is below quota (3.80 GB used of 4.88 GB).
[PASS] Inode usage is below quota (113350 used of 1000000).
[INFO] Checking files ownership for user: mozda (UID: 1004, GID: 1004)
[WARN] File '/home/mozda/docker-data/overlay2/25af867389efa6af7eb6120dceef0bb601796ab469af0c9c4c798671594be432/diff/var/www/html' is owned by UID:100032 instead of UID:1004
[FAIL] Some docker files in /home/mozda/docker-data/ are not owned by UID:1004
---- Container Security Checks ----
[INFO] Found 2 running container(s)
---- Container: openresty ----
[PASS] openresty: Container running from HiTechCloud
[PASS] openresty: Container name matches compose service name: openresty
[PASS] openresty: Container is running
[PASS] openresty: Container is running as root
[PASS] openresty: Using specific tag for image: openresty/openresty:bullseye-fat
[WARN] openresty: No HEALTHCHECK configured
[WARN] openresty: SELinux options not set
[WARN] openresty: --no-new-privileges restriction not set
[PASS] openresty: No extra Linux capabilities added
[PASS] openresty: Privileged mode is disabled
[WARN] openresty: Bind mounts under /home/ or /etc/hitechcloud/
[PASS] openresty: Docker socket is NOT mounted
[PASS] openresty: sshd is NOT running inside container
[PASS] openresty: Using HiTechCloud network (mozda_www)
[PASS] openresty: All ports are bound to 127.0.0.1
[PASS] openresty: Memory usage is limited to .50 GB
[PASS] openresty: CPU usage is limited to .50 CPUs
[PASS] openresty: PID cgroup limit is set (100)
[WARN] openresty: Root filesystem is NOT read-only
[PASS] openresty: Host devices are NOT exposed
[WARN] openresty: Default ulimit is used
---- Container: php-fpm-8.2 ----
[PASS] php-fpm-8.2: Container running from HiTechCloud
[PASS] php-fpm-8.2: Container name matches compose service name: php-fpm-8.2
[PASS] php-fpm-8.2: Container is running
[PASS] php-fpm-8.2: Container is running as root
[WARN] php-fpm-8.2: No HEALTHCHECK configured
[WARN] php-fpm-8.2: SELinux options not set
[WARN] php-fpm-8.2: --no-new-privileges restriction not set
[PASS] php-fpm-8.2: No extra Linux capabilities added
[PASS] php-fpm-8.2: Privileged mode is disabled
[WARN] php-fpm-8.2: Bind mounts under /home/ or /etc/hitechcloud/
[PASS] php-fpm-8.2: Docker socket is NOT mounted
[PASS] php-fpm-8.2: sshd is NOT running inside container
[PASS] php-fpm-8.2: Using HiTechCloud network (mozda_db)
[PASS] php-fpm-8.2: No exposed ports
[PASS] php-fpm-8.2: Memory usage is limited to .25 GB
[PASS] php-fpm-8.2: CPU usage is limited to .12 CPUs
[PASS] php-fpm-8.2: PID cgroup limit is set (100)
[WARN] php-fpm-8.2: Root filesystem is NOT read-only
[PASS] php-fpm-8.2: Host devices are NOT exposed
[WARN] php-fpm-8.2: Default ulimit is used
===== Audit Summary =====
Total checks performed: 70
✅ Passed: 50
❌ Failed: 1
⚠️ Warnings: 16
ℹ️ Info: 3
⚠️ Critical issues found! Please review and address failed checks.
Xem dung lượng đĩa của người dùng
Mức sử dụng đĩa và inode được báo cáo bởi user-quota, lệnh này cũng tính lại và
áp dụng hạn mức của tài khoản:
hitechcloudcli user-quota <username|--all>
Chặn IP
Ngăn các địa chỉ IP hoặc dải CIDR cụ thể truy cập bất kỳ website nào của người dùng:
hitechcloudcli user-block_ip <username> [--list='ip_here another_ip' | --delete-all]
Liệt kê các IP bị chặn của một người dùng:
hitechcloudcli user-block_ip <username>
Chặn các địa chỉ IP truy cập website của người dùng:
hitechcloudcli user-block_ip <username> --list='11.22.33.44 124.64.23.0/24'
Gỡ mọi địa chỉ IP bị chặn của một người dùng:
hitechcloudcli user-block_ip <username> --delete-all
Xem nhật ký đăng nhập
Xem tối đa 20 lần đăng nhập thành công gần nhất của người dùng.
hitechcloudcli user-loginlog <USERNAME> [--json]
Varnish
Kiểm tra trạng thái bộ nhớ đệm Varnish của người dùng và bật/tắt dịch vụ Varnish.
hitechcloudcli user-varnish <USERNAME> [enable|disable|status]
Bật Varnish:
hitechcloudcli user-varnish <USERNAME> enable
Tắt Varnish:
hitechcloudcli user-varnish <USERNAME> disable
Kiểm tra trạng thái:
hitechcloudcli user-varnish <USERNAME> status
Kiểm tra trạng thái rút gọn (trả về Current status: on/off):
hitechcloudcli user-varnish <USERNAME>
Snapshot
Một snapshot nhanh, cục bộ của tài khoản, chụp trước một thay đổi rủi ro và khôi phục lại nếu có sự cố.
hitechcloudcli user-snapshot --account <USER> <--create|--list|--restore ID|--delete ID>
Snapshot là cục bộ, nhẹ và tồn tại ngắn: chỉ vài bản mới nhất được giữ, phần còn lại bị xoá, và chúng không bao giờ rời khỏi máy. Chúng không phải bản sao lưu — ổ đĩa hỏng sẽ mất luôn cả chúng. Xem Snapshot trong panel hosting.
Bộ sao lưu
Các bộ sao lưu tăng dần, chạy theo lịch, cho một tài khoản hosting.
hitechcloudcli user-backupset --account <USER> <--run|--full|--list|--prune|--restore FILE|--install-timer|--remove-timer>
| Tuỳ chọn | Tác dụng |
|---|---|
--run | Chạy bộ sao lưu ngay, theo kiểu tăng dần. |
--full | Tạo bản sao lưu đầy đủ thay vì tăng dần. |
--list | Liệt kê những gì bộ sao lưu đang chứa. |
--prune | Xoá những bản đã quá hạn. |
--restore <file> | Khôi phục từ một trong các bản đó. |
--install-timer / --remove-timer | Thêm hoặc gỡ timer systemd chạy bộ sao lưu theo lịch. |
- Liệt kê người dùng
- Li ệt kê hạn mức của mọi người dùng
- Thêm người dùng
- Tạo người dùng trên máy chủ phụ (slave)
- Tạo mọi người dùng mới trên máy chủ phụ
- Tạo người dùng cho đại lý
- Chuyển người dùng
- Xoá người dùng
- Tạm ngưng người dùng
- Bỏ tạm ngưng người dùng
- Đổi tên người dùng
- Đổi email
- Đổi mật khẩu
- Đăng nhập với tư cách người dùng
- Đổi gói
- Hạn mức
- Kiểm tra / tắt 2FA
- Gán / gỡ IP cho người dùng
- Kiểm tra
- Xem dung lượng đĩa của người dùng
- Chặn IP
- Xem nhật ký đăng nhập
- Varnish
- Snapshot
- Bộ sao lưu