← VCE Software Development U4O2

Essential Eight: restricting administrative privileges

An Essential Eight strategy: give admin accounts only to people who need them, only for tasks that need them, using separate admin accounts and limited production access.

Understanding Essential Eight: restricting administrative privileges in VCE Software Development U4O2

What it does: Limiting production access to a few named people reduces who can cause damage if an account is misused or compromised. Denying admin functions to non-admin roles shows least privilege: access is limited to what the role requires. Separate admin accounts mean that if the daily account is compromised through phishing or a malicious website, the attacker does not get admin power. Admin access should be given only while it is needed. Leftover privileges are an easy target for attackers. This is the name of the Essential Eight strategy, and its meaning is limiting admin rights to those who need them for specific tasks.

Common mistakes: Admin rights should be limited to the tasks that need them. Returning True lets an admin do any task. It should be 'return task in user.tasks'. A separate admin account should only be used for admin tasks. Everyday work should use the standard account 'sam'.

Class: _____________________  ·  Name: _____________________  ·  Date: _________

Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.

This module's key terms are also in a printable crossword (Modules 81–95) and word search (Modules 49–130).

Take this worksheet further — free with Cloodit

Each concept is reinforced from every angle — learned, then applied, then tested.

Learning
Duo
Which statement best describes the Essential Eight strategy 'restrict administrative privileges'?
Every developer gets an admin account so they can work without delaysOnly people who need admin accounts get them, and only for tasks that need them
Matches
developer.email = "sam@corp.com" developer.privileges = "domain admin"
↓
Everyday accounts used for email and browsing are given permanent admin rights, so malware or phishing could run with full control
Applying
Meanings
Term
restrict administrative privileges
Meaning
An Essential Eight strategy: give admin accounts only to people who need them, only for tasks that need them, using separate admin accounts and limited production access.
Practice
developer.production_access <- FALSE
Testing
Gaps
GRANT ON prod.* TO auditor;
Check Answer
Spots
3 return False
4 return True

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Reindeer' badge — Dictionary Guide, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

Quick Questions

1. Which statement best describes the Essential Eight strategy 'restrict administrative privileges'?
A. Every developer gets an admin account so they can work without delays
B. Only people who need admin accounts get them, and only for tasks that need them ✓
Restricting administrative privileges limits powerful accounts to those who need them. Giving everyone admin access greatly increases the damage a stolen account can do.
2. A developer needs to read emails and browse the web as well as manage servers. What is the better setup?
A. One admin account used for everything to keep things simple
B. A standard account for daily tasks and a separate admin account for admin tasks ✓
Separate admin accounts mean that if the daily account is compromised through phishing or a malicious website, the attacker does not get admin power.
3. Who should be able to make changes directly to the production environment?
A. Only a small number of approved staff who need that access ✓
B. All developers, because they wrote the code
Limiting access to production reduces the chance of accidental changes, insider threats and attackers reaching live systems and data.
4. Which is a good example of restricting administrative privileges?
A. Removing admin rights from a developer who has moved to a different project ✓
B. Letting a developer keep admin rights just in case they need them later
Admin access should be given only while it is needed. Leftover privileges are an easy target for attackers.
5. How does restricting administrative privileges link to the principle of least privilege?
A. It applies least privilege to powerful accounts by giving only the access needed ✓
B. It is unrelated, because least privilege only applies to standard users
Least privilege means users get the minimum access needed for their job. Restricting admin privileges applies this idea to the most powerful accounts.

Match the Pairs

restrict administrative privileges → An Essential Eight strategy that limits powerful admin accounts to people who need them, and only for the tasks that need them
adminAccount = "j.lee-admin" → A separate admin account used only for admin tasks, kept apart from the person's everyday user account
Only a small named group of developers can change the production environment → production.allowedUsers = ["leadDev", "opsAdmin"]
Restricting admin privileges applies the principle of least privilege by giving only the access needed for a role → if user.role != "admin": deny(adminPanel)
developer.email = "sam@corp.com" developer.privileges = "domain admin" → Everyday accounts used for email and browsing are given permanent admin rights, so malware or phishing could run with full control
grantAccess(everyDeveloper, production, "admin") → Every developer has admin access to production, even those who do not need it, which widens the attack surface

Key Term

restrict administrative privileges
An Essential Eight strategy: give admin accounts only to people who need them, only for tasks that need them, using separate admin accounts and limited production access.

Fill in the Blanks

1. GRANT SELECT ON prod.* TO auditor;
Hint: Type the read-only privilege keyword so the auditor gets only the access they need on production.
2. REVOKE ALL ON prod.* FROM devUser;
Hint: Type the keyword that removes every privilege, so a developer has no powerful access to production.
3. IF needsTask AND isAdmin THEN
Hint: Type the logical operator that requires both conditions, so admin rights are used only for tasks that need them.
4. CREATE USER aliceAdmin;
Hint: Type the keyword for the kind of object being created, here a separate admin account kept apart from everyday use.
5. REVOKE DROP ON prod.* FROM devUser;
Hint: Type the keyword that links the REVOKE command to the account losing the privilege, limiting access to production.

Spot the Error

Question 1
A def can_use_admin(user, task):
B if user.role != 'admin':
C return False
D return True
Line D — Admin rights should be limited to the tasks that need them. Returning True lets an admin do any task. It should be 'return task in user.tasks'.
Question 2
A def pick_account(task):
B if task == 'install_software':
C return 'sam_admin'
D return 'sam_admin'
Line D — A separate admin account should only be used for admin tasks. Everyday work should use the standard account 'sam'.
Question 3
A prod_admins = ['ops_lead']
B if user.is_staff:
C allow(user)
D else:
E deny(user)
Line B — Access to production must be limited to a small approved list. Checking is_staff lets all staff in. It should be 'if user in prod_admins:'.
Question 4
A admin_accounts = everyone
B for acct in admin_accounts:
C grant_admin(acct)
D log(acct, 'granted')
Line A — Admin accounts should go only to people who need them. Giving them to everyone breaks the strategy. The list should name the specific admin accounts.
Question 5
A def finish_task(user):
B log(user, 'task done')
C user.admin = True
D return user
Line C — Admin rights should only last for the task that needs them. Setting admin to True keeps the privilege after the task. It should be False.

Student with a class code? Join your class →