Bird
Raised Fist0
Operating Systemsknowledge~30 mins

Capability-based security in Operating Systems - Mini Project: Build & Apply

Choose your learning style10 modes available
Understanding Capability-based Security
📖 Scenario: You are learning about how computers control access to resources like files and devices. Capability-based security is a way to manage permissions by giving specific 'capabilities' or keys to users or programs.Imagine a library where each visitor has a special card that lets them borrow certain books. This card is like a capability that grants access only to allowed books.
🎯 Goal: Build a simple model of capability-based security using a dictionary to represent users and their capabilities. Then, check if a user has permission to access a resource.
📋 What You'll Learn
Create a dictionary named user_capabilities with exact user names and their capability lists
Create a variable named resource with the exact resource name to check
Write a loop using for user, capabilities in user_capabilities.items() to find users with access to the resource
Add a final statement that stores the list of users who can access the resource in a variable named authorized_users
💡 Why This Matters
🌍 Real World
Capability-based security is used in operating systems and software to control access to files, devices, and services by giving specific permissions to users or programs.
💼 Career
Understanding capability-based security helps in roles like system administration, security engineering, and software development where managing access control is critical.
Progress0 / 4 steps
1
Create the user capabilities dictionary
Create a dictionary called user_capabilities with these exact entries: 'alice': ['read', 'write'], 'bob': ['read'], and 'carol': ['execute'].
Operating Systems
Hint

Use curly braces {} to create a dictionary. Each key is a user name string, and each value is a list of capability strings.

2
Set the resource to check
Create a variable called resource and set it to the string 'read' to represent the capability you want to check.
Operating Systems
Hint

Assign the string 'read' to the variable resource.

3
Find users with the capability
Use a for loop with variables user and capabilities to iterate over user_capabilities.items(). Inside the loop, check if resource is in capabilities and collect those users in a list called authorized_users.
Operating Systems
Hint

Use for user, capabilities in user_capabilities.items(): to loop. Check if resource is in capabilities. If yes, add user to authorized_users.

4
Complete the authorized users list
Ensure the variable authorized_users contains the list of users who have the resource capability. This completes the capability check.
Operating Systems
Hint

The list authorized_users should have all users who can 'read'. No extra code needed if previous step is correct.

Practice

(1/5)
1. What is the main idea behind capability-based security?
easy
A. Access is controlled only by usernames and passwords
B. Permissions are granted randomly to users
C. Security is based on firewall rules only
D. Users or programs get tokens that directly grant permissions

Solution

  1. Step 1: Understand capability-based security concept

    It means giving users or programs special tokens that say what they can do.
  2. Step 2: Compare with other methods

    Unlike passwords or firewalls, capability tokens directly grant permission.
  3. Final Answer:

    Users or programs get tokens that directly grant permissions -> Option D
  4. Quick Check:

    Capability tokens = direct permission [OK]
Hint: Focus on tokens that grant direct access [OK]
Common Mistakes:
  • Confusing capability tokens with passwords
  • Thinking security is only about firewalls
  • Believing permissions are random
2. Which of the following is a correct way to describe a capability in capability-based security?
easy
A. A token that grants specific access rights
B. A password string stored in a file
C. A firewall rule blocking IP addresses
D. A username used for login

Solution

  1. Step 1: Define what a capability is

    A capability is a token that grants specific access rights to a resource.
  2. Step 2: Eliminate incorrect options

    Passwords, firewall rules, and usernames are not capabilities.
  3. Final Answer:

    A token that grants specific access rights -> Option A
  4. Quick Check:

    Capability = access token [OK]
Hint: Remember capability means access token, not password [OK]
Common Mistakes:
  • Mixing capabilities with passwords
  • Thinking firewall rules are capabilities
  • Confusing usernames with capabilities
3. Consider a system where a program holds a capability token allowing it to read a file. What happens if the program tries to write to the file?
medium
A. The write operation fails because the capability only allows reading
B. The write operation succeeds because the program has access
C. The system asks the user for permission
D. The file is deleted automatically

Solution

  1. Step 1: Understand capability permissions

    Capabilities specify exact rights, here only read permission is given.
  2. Step 2: Predict system behavior on unauthorized action

    Trying to write without write permission causes failure.
  3. Final Answer:

    The write operation fails because the capability only allows reading -> Option A
  4. Quick Check:

    Capability limits action to allowed rights [OK]
Hint: Check if capability includes the requested permission [OK]
Common Mistakes:
  • Assuming any access means all actions allowed
  • Thinking system prompts user for permission
  • Believing unauthorized actions delete files
4. A program tries to use a capability token but gets an error. Which of these is the most likely cause?
medium
A. The user forgot their password
B. The capability token was revoked or expired
C. The system has no internet connection
D. The program has too many tokens

Solution

  1. Step 1: Identify common reasons for capability errors

    Revoked or expired tokens cause access errors.
  2. Step 2: Eliminate unrelated causes

    Too many tokens, internet issues, or user passwords do not affect capability token validity.
  3. Final Answer:

    The capability token was revoked or expired -> Option B
  4. Quick Check:

    Revoked/expired token = error cause [OK]
Hint: Check if token is still valid before use [OK]
Common Mistakes:
  • Blaming network issues for capability errors
  • Thinking password affects capability tokens
  • Assuming token count causes errors
5. In a capability-based system, how can you safely share access to a resource with another program without giving full control?
hard
A. Allow the other program to run as administrator
B. Share your password with the other program
C. Give the other program a capability token with limited permissions
D. Disable all security checks temporarily

Solution

  1. Step 1: Understand safe sharing in capability systems

    Sharing limited permission tokens lets others access only what you allow.
  2. Step 2: Avoid unsafe methods

    Sharing passwords, admin rights, or disabling security risks full control and breaches.
  3. Final Answer:

    Give the other program a capability token with limited permissions -> Option C
  4. Quick Check:

    Limited capability token = safe sharing [OK]
Hint: Share only limited tokens, never passwords or full rights [OK]
Common Mistakes:
  • Sharing passwords instead of tokens
  • Granting full admin rights unnecessarily
  • Turning off security checks
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard