Webmin gives you a browser interface for the three jobs you do most on a Linux VPS: adding users, scheduling cron jobs and controlling system services. This guide walks through each task in Webmin, then shows the command-line equivalent so you can confirm the change actually landed on the server.
Manage users, cron jobs and services in Webmin
All three tasks live under the System category in the left menu:
- Users and Groups — create, edit and delete Linux accounts.
- Scheduled Cron Jobs — add and edit crontab entries per user.
- Bootup and Shutdown — start, stop, restart and enable systemd services.
Webmin writes to the same files you would edit over SSH (/etc/passwd, /etc/shadow, /var/spool/cron/crontabs/, systemd units), so nothing is hidden from the command line. That also means a mistake takes effect immediately.
Before you start
You need:
- Webmin installed and reachable. The default address is
https://203.0.113.10:10000. If it is not installed yet, follow How to install Webmin on a Linux VPS. - A Webmin login with root or sudo rights. The account you set during installation works.
- TCP port 10000 open in your firewall if you connect from outside:
sudo ufw allow 10000/tcp. - An SSH session open as a fallback, so you can fix a broken service without the panel.
Warning: Webmin edits live system files and applies changes straight away. Never stop sshd, networking or your firewall from the UI unless you can reach the browser console in your VPS provider's control panel to recover.
Add a Linux user in Webmin
- Open System → Users and Groups.
- Click Create a new user.
- Fill in the form:
- Username:
deploy - Password: type one, or choose No password if the account will only use SSH keys.
- Group: leave Create a new group with the same name selected, or pick an existing group.
- Home directory:
/home/deploy - Shell:
/bin/bash
- Leave Create home directory set to Yes and click Create.
Webmin runs the equivalent of useradd and writes the entry to /etc/passwd and /etc/shadow. To give the account sudo rights, edit the user and add it to the sudo group on Ubuntu or Debian, or wheel on AlmaLinux and Rocky:
sudo usermod -aG sudo deployTo add an SSH key instead of a password, open the user in Webmin and use the SSH public keys tab, then paste the public key.
Tip: Accounts that only run an application should not have a login shell. Set the shell to /usr/sbin/nologin. See Create system users for apps and services and List users and groups on a Linux server.
Schedule a cron job in Webmin
- Open System → Scheduled Cron Jobs.
- Click Create a new scheduled cron job.
- Set the fields:
- Command: the full path, for example
/usr/bin/restic backup /home --repo /mnt/backup - Run as user:
rootordeploy - Schedule: use Simple schedule for drop-downs, or Cron-style to type the five fields directly.
- Active: Yes
- Send output to: an email address if you want cron errors by mail, otherwise leave blank.
- Click Create.
For a job that runs every day at 03:30, set Minutes to 30, Hours to 3, and leave the rest as *. Webmin stores the entry in /var/spool/cron/crontabs/<user> on Debian and Ubuntu, or /var/spool/cron/<user> on the RHEL family.
Warning: Cron runs with a minimal environment and a short PATH. Use absolute paths for every command, or set PATH at the top of the script you call.
Control services in Webmin
- Open System → Bootup and Shutdown.
- Find the service in the list, for example
nginx. - Use Start, Stop or Restart on that row. The status column shows Running or Stopped.
- Toggle Start at boot to enable or disable the unit at boot time.
The same module shows every systemd unit on the server, so you can also check whether something like fail2ban or docker is enabled. For monitoring, the System and Server Status module can watch a service or a TCP port and alert you when it goes down.
Warning: Stopping a database or web server drops live connections. Restart during a quiet window and confirm the service comes back before you close the tab.
Check it works
Log in over SSH and confirm each change from the command line:
id deploy
sudo crontab -l -u deploy
systemctl status nginx --no-pagerYou should see the user with its groups, the cron line you added, and active (running) for the service. In Webmin, open System → System Logs → cron to see recent job runs, or check the journal:
journalctl -u cron -n 20On AlmaLinux and Rocky the unit is called crond instead of cron.
Troubleshooting
- Webmin will not load at
https://IP:10000— the port is blocked or the service is down. Runsudo ufw allow 10000/tcp, check any cloud firewall, thensudo systemctl status webmin. - New user cannot log in over SSH — the shell is set to
/usr/sbin/nologinor/bin/false, or password authentication is disabled in/etc/ssh/sshd_config. Check withgrep deploy /etc/passwd. - Cron job never runs — wrong run-as user, a relative path, or the script is not executable. Run
chmod +xon the script and checkjournalctl -u cron -n 50for errors. - Service restart fails — usually a syntax error in the config. Test first with
sudo nginx -t, then read the reason withjournalctl -u nginx -e. - Webmin shows stale information — click the module name in the left menu to reload it. Some lists are cached until you refresh.
