Scenario: Setting Up a Virtual Development Environment
Background:
You are enrolled in a university course that focuses on software development and system
administration. As part of your task, you have been provided access to a virtual Linux server. Your
assignment is to prepare this server as the backend for a software development project. This project
will require effort, and the server must be configured to support multiple users working on different
aspects of the project throughout the semester.
Objective:
Your main goal is to configure and secure the server, ensuring it is well-organized and optimized for
development work. You will need to demonstrate proficiency with Linux commands and system
management.
Tasks:
You begin by checking your current location within the server's file system and identifying which user
account you are logged in as. It's also important to determine which version of Linux the server is
running to ensure compatibility with the software you plan to deploy.
Next, you are tasked with creating a structured environment for the project. This includes setting up
separate directories for two main components of the project, which you decide to name `ProjectAlpha`
and `ProjectBeta`. Within `ProjectAlpha`, you create an initial file named `README.md`, writing
"Initial commit for Project Alpha" to signify the start of the project.
As you move to `ProjectBeta`, you set up a subdirectory for logs. You initiate this by creating a blank
file named `beta.log` which will store future log entries. You demonstrate your file handling skills by
copying the README file from `ProjectAlpha` to `ProjectBeta`, adjusting its name to
`BETA_README.md` to reflect its new context.
Your next task is to ensure that any error messages within the `ProjectBeta` are easy to locate. You use
command-line tools to search through files for the term "ERROR" and use pagination commands to
review the contents of `beta.log`.
In addition to setting up the file structure, you also configure user accounts for each member of your
team. After creating these accounts, you assign passwords and give administrative privileges to one of
the team members, which allows them to install necessary software and make system-wide changes.
You test these configurations by switching to the newly privileged user and checking their access level.
Finally, you focus on customizing the command line environment for ease of use. You change the
default shell for the user with administrative privileges to `bash` and set up several command aliases to
streamline common tasks. Before finishing, you clean up the environment by removing any
unnecessary or outdated aliases.
Completion:
Once all tasks are completed, you compile a detailed report documenting the commands used, the
rationale behind each configuration decision, and any challenges you encountered. This report is
submitted for evaluation and will be discussed in a subsequent class session to explore different
strategies and learn from each other's experiences.