Summary and Setup
This is the curriculum for CSC 586, System Administration and Security. The website is built with The Carpentries Workbench.
- Instructor: Linh B. Ngo
- Office: UNA 138
- Office Hours: By appointment
- Email: lngo AT wcupa DOT edu
- Phone: 610-436-2595
Course Information
- The course runs from May 28, 2024 until June 30, 2024. It is a fully
online course.
- The course is 100% asynchrounous.
- All class materials and recorded links to the lectures will be provided via D2L.
Required Materials:
- We will utilize the following textbook in this course:
- Unix and Linux System Administration Handbook 5th Edition by Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, and Dan Mackin.
- You are expected to have a computer system that meets the minimum expectations as outlined by West Chester University Information Services on the Recommended Student Computer Configuration. You need a working web-camera and microphone.
Resources and Accessibility:
- For general technical support, students can contact WCU IT HelpDesk at 610-436-3350 or via email: helpdesk@wcupa.edu.
- For distance education support, students can contact WCU Distance Education Services at 610-436-3373 or via email: distanceed@wcupa.edu.
- A Discord server will be created and invitation link made available inside D2L. Technical questions specific to online competition platforms used in the course can be sent via email to the instructor or posted on the Discord server.
Course Description
This course is a hands-on study of operating system administration essentials with a focus on systems security and time in the lab. Additionally, various script languages are taught to provide a basis for understanding and extending the system capabilities.
Learning Objectives
Assessments and Grading:
Method of Evaluation
Assessment | % of Final Grade | Course Objectives Assessed | Program Objectives Assessed |
---|---|---|---|
Programming Assignments | 60% | CSLO 1 | CSPO 1, 2, 3 |
Quizzes | 40% | CSLO 1, 2 | CSPO 1 |
Lab | 20% | CSLO 2, 3 | CSPO 1, 2, 3 |
Grade Scale:
Grade | Quality Points | Percentage Equivalents | Interpretation |
---|---|---|---|
A | 4.00 | Superior graduate attainment | |
A- | 3.67 | ||
B+ | 3.33 | Satisfactory graduate attainment | |
B | 3.00 | ||
B- | 2.67 | ||
C+ | 2.33 | Attainment below graduate expectations | |
C | 2.00 | ||
C- | 1.67 | ||
F | 0 | < 70% | Failure |
D grades are not used. Refer to the Graduate Catalog for description of NG (No Grade), W, & other grades.
Assessments:
- Assignments: Write various scripting programs to automate the installation and configuration process
- Labs: Deploy complex Linux infrastructures with proper configuration and security options
- Quizzes: Weekly long quizzes (20-30 minutes) that aim to assess understanding of theoretical concepts necessary to support the tasks decribed in the assignments and labs.
University Policies
Academic & Personal Integrity
It is the responsibility of each student to adhere to the university’s standards for academic integrity. Violations of academic integrity include any act that violates the rights of another student in academic work, that involves misrepresentation of your own work, or that disrupts the instruction of the course. Other violations include (but are not limited to): cheating on assignments or examinations; plagiarizing, which means copying any part of another’s work and/or using ideas of another and presenting them as one’s own without giving proper credit to the source; selling, purchasing, or exchanging of term papers; falsifying of information; and using your own work from one class to fulfill the assignment for another class without significant modification. Proof of academic misconduct can result in the automatic failure and removal from this course. For questions regarding Academic Integrity, the No-Grade Policy, Sexual Harassment, or the Student Code of Conduct, students are encouraged to refer to the Department Undergraduate Handbook, the Undergraduate Course Catalog, the Ram’s Eye View, or the University Website.
Students with Disabilities
If you have a disability that requires accommodations under the Americans with Disabilities Act (ADA), please present your letter of accommodations and meet with me as soon as possible so that I can support your success in an informed manner. Accommodations cannot be granted retroactively. If you would like to know more about West Chester University’s Services for Students with Disabilities (OSSD), please visit them at 223 Lawrence Center. Their phone number is 610-436-2564, their fax number is 610-436-2600, their email address is ossd@wcupa.edu, or visit the OSSD website. In an effort to assist students who either receive or may believe they are entitled to receive accommodations under the Americans with Disabilities Act and Section 504 of the Rehabilitation Act of 1973, the University has appointed a student advocate to be a contact for students who have questions regarding the provision of their accommodations or their right to accommodations. The advocate will assist any student who may have questions regarding these rights. The Director for Equity and Compliance/Title IX Coordinator has been designated in this role. Students who need assistance with their rights to accommodations should contact them at 610-436-2433.
The University’s Americans with Disabilities policy is available on the website. If you encounter an area of this course that is not accessible to you, please contact me.
Excused Absences Policy
Students are advised to carefully read and comply with the excused absences policy, including absences for university-sanctioned events, contained in the WCU Undergraduate Catalog. In particular, please note that the responsibility for meeting academic requirements rests with the student, that this policy does not excuse students from completing required academic work, and that professors can require a fair alternative to attendance on those days that students must be absent from class in order to participate in a University-Sanctioned Event.
Reporting Incidents of Sexual Violence
West Chester University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to comply with the requirements of Title IX of the Education Amendments of 1972 and the University’s commitment to offering supportive measures in accordance with the new regulations issued under Title IX, the University requires faculty members to report incidents of sexual violence shared by students to the University’s Title IX Coordinator. The only exceptions to the faculty member’s reporting obligation are when incidents of sexual violence are communicated by a student during a classroom discussion, in a writing assignment for a class, or as part of a University-approved research project. Faculty members are obligated to report sexual violence or any other abuse of a student who was, or is, a child (a person under 18 years of age) when the abuse allegedly occurred to the person designated in the University Protection of Minors Policy. Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence is set forth at the webpage for the Office of Diversity, Equity, and Inclusion.
Inclusive Learning Environment and Anti-Racist Statement
Diversity, equity, and inclusion are central to West Chester University’s mission as reflected in our Mission Statement, Values Statement, Vision Statement and Strategic Plan: Pathways to Student Success. We disavow racism and all actions that silence, threaten, or degrade historically marginalized groups in the U.S. We acknowledge that all members of this learning community may experience harm stemming from forms of oppression including but not limited to classism, ableism, heterosexism, sexism, Islamophobia, anti-Semitism, and xenophobia, and recognize that these forms of oppression are compounded by racism.
Our core commitment as an institution of higher education shapes our expectation for behavior within this learning community, which represents diverse individual beliefs, backgrounds, and experiences. Courteous and respectful behavior, interactions, and responses are expected from all members of the University. We must work together to make this a safe and productive learning environment for everyone. Part of this work is recognizing how race and other aspects of who we are shape our beliefs and our experiences as individuals. It is not enough to condemn acts of racism. For real, sustainable change, we must stand together as a diverse coalition against racism and oppression of any form, anywhere, at any time.
Resources for education and action are available through WCU’s Office for Diversity, Equity, and Inclusion (ODEI), DEI committees within departments or colleges, the student ombudsperson, and centers on campus committed to doing this work (e.g., Dowdy Multicultural Center, Center for Women and Gender Equity, and the Center for Trans and Queer Advocacy).
Guidance on how to report incidents of discrimination and harassment is available at the University’s Office of Diversity, Equity and Inclusion.
Emergency Preparedness
All students are encouraged to sign up for the University’s free WCU ALERT service, which delivers official WCU emergency text messages directly to your cell phone. For more information, visit www.wcupa.edu/wcualert. To report an emergency, call the Department of Public Safety at 610-436-3311.
Electronic Mail Policy
It is expected that faculty, staff, and students activate and maintain regular access to University provided e-mail accounts. Official university communications, including those from your instructor, will be sent through your university e-mail account. You are responsible for accessing that mail to be sure to obtain official University communications. Failure to access will not exempt individuals from the responsibilities associated with this course.
Resources for Student Success
Expectations for Student Success in Distance Education
An online course uses technology to provide you, the student, with
greater flexibility regarding when and where you learn. To be a
successful online learner you must capitalize on this increased
flexibility by doing the following. -
Self-Motivation and Self-Discipline
: Active participation
in online activities is expected. This means that you login to the
course frequently, engage with the provided materials, and read and
respond to communications in a timely and thoughtful manner. Online
courses require you to take more responsibility for your learning.
- Planning and Organization
: You will need disciplined work
habits, effective time management skills, and the ability to work both
alone and collaboratively if you wish to be successful in an online
course. You should expect to devote 9 to 12 hours per week to this
course.
You may find that you need to work harder than you would in a
traditional lecture class.
- Communication Skills
: In an online course communication
takes place primarily through the written word. You need strong English
reading and writing skills to express your thoughts. Online courses also
expect you to proactively reach out to your instructor for assistance
when you need it. Finally, pay attention to communication guidelines and
be respectful of your fellow students when you communicate.
Minimum Student Technical Skills
You are expected to be competent in the use of computers, the World Wide Web, and commonly used software programs such as the Microsoft Office Suite of applications and Adobe PDF readers. In addition, you should be able to utilize a web-camera and microphone. You should have a basic understanding of how to use the common elements of the university learning management system.
Students without experience using the university’s learning management system (Desire2Learn) can contact the Student Help Desk to arrange instruction, can contact Distance Education Support, or can complete tutorials in Navigating Digital Learning.
Hours for support services may vary. Check their websites for times of operation.
- General Technical Support: Contact the WCU IT Helpdesk at 610-436-3350 or email helpdesk@wcupa.edu
- Distance Education Support: Contact The Office of Digital Learning & Innovation at 610-436-3373 or email distanceed@wcupa.edu
- Additional technical support information will be provided for tools as needed throughout the course.
Accessibility Policies, Privacy Policies, and Support Site Information:
This course uses a variety of tools. To access a tool’s accessibility and privacy policy, navigate to the Distance Education Accessibility and Privacy Policies website.
Student Academic and Support Services
Student academic and support services provided by the university can be found on the Ram’s Eye View Services website.
Library Resources for Distance Education Students
The West Chester University Library makes resources available to distance education students. Please review their Library Services for Distance Students website for specific information.
Course Topics and Schedules
- Quizzes are typically disseminated once a week.
Week | Topic | Assessments |
---|---|---|
1 | Linux, A Brief History | - |
Linux system administrators | - | |
Introduction to the Linux shell | - | |
Access control | - | |
Process control | Quiz 1 | |
2 | The filesystem | - |
User management | - | |
Software installation and configuration | - | |
Linux scripting | Quiz 2, Assignment 1 due | |
3 | More Bash scripting | - |
Networked file system | - | |
Networked file system Lab | Quiz 3, Assignment 3 due | |
4 | Single Sign On | - |
Single Sign On with Remote Storage Lab | Quiz 4, Assignment 4 due | |
5 | Linux in Container | - |
LAMPS Stack Lab | - |
For this class, you will be interacting with remote Linux environment
on
CloudLab via terminals. The
instructions below need to be completed to ensure appropriate access to
support materials.
Software Setup: Terminal Application
Prior to workshop, Windows users should download and install Git for Windows. If you already have this installed, it is perhaps time for an update, as the latest Git for Windows software will have Git Bash integrated with Windows Terminal.
After running the installer, make sure the following steps are done correctly:
-
Select Components
: check the Add a Git Bash Profile to Windows Terminal box. -
Choose the default editor used by Git
: scroll up on the dropdown list and choose User the Nano editor by default. -
Adjusting the name of the initial branch in new repositories
: ensure that Let Git decide is selected. -
Adjusting your PATH environment
: ensure that Git from the command line and also from 3rd-party software is selected. -
Choosing the SSH executable
: select Use bundled OpenSSH. -
Choosing HTTPS transport backend
: ensure that Use the native Windows Secure Channel Library is selected. -
Configuring the line ending conversion
: ensure that Checkout Windows-style, commit Unix-style line endings is selected. -
Configuring the terminal emulator to use with Git Bash
: ensure that Use Windows’ default console window is selected. -
Choose the default behavior of 'git pull'
: ensure that Fast-forward or merge is selected. -
Choose a credential helper
: ensure that “Git Credential Manager” is selected. -
Configuring extra options
: check both boxes on Enable file system caching and Enable symbolic links. - Do not check any
Configurating experimental options
boxes. - Click on “Install”.
- Click on “Finish”.
To launch Git Bash, you can launch the Git Bash app directly via Windows Main Menu

You can also launch Git Bash via Windows Terminal. Windows Terminal
is a powerful terminal program intended to replace the older
Command Prompt
and Power Shell
launchers. The
terminal is available by default with Windows 11. For earlier version,
it can be downloaded and installed via Windows App Store
.
More detailed instructions can be found at https://learn.microsoft.com/en-us/windows/terminal/install.

For Mac users, you can find your Linux-based terminal app by click
the search icon (magnifying glass icon in the top right corner of your
screen) to open the search box and start typing terminal
into the box. The Terminal app will show up, and you can launch the app
directly.

For Linux users, it is assumed that you can able to launch the Linux terminal (in a manner similar to MacOS users).
Register for a CloudLab account
CloudLab is an NSF-funded experimental testbed for future computing research and education. CloudLab allows researchers control to the bare metal of a diverse and distributed set of resources at large scale. As a result, it allows repeatable and scientific design of experiments. Some key characteristics of CloudLab include:
-
Sliceability
: the ability to support virtualization while maintaining some degree of isolation for simultaneous experiments -
Deep programmability
: the ability to influence the behavior of computing, storage, routing, and forwarding components deep inside the network, not just at or near the network edge.
- Visit CloudLab’s website
- Click Request an Account
- Fill in the information as shown below and click Submit Request
- Fill in the information as shown below and click
Submit Request
-
Username
: Use your WCUPA username. Make sure everything is lowercase. -
Full Name
: Your first and last name -
Email
: Use a non-WCUPA email. WCUPA email tends to block the confirmation email. -
Select Country
: United States -
Select State
: Pennsylvania -
City
: Malvern -
Institutional Affiliation
: West Chester University of Pennsylvania - Ignore the
SSH Public Key file
box for now. - Enter a password of your choice in
Password
andConfirm Password
boxes. - Check
Join Existing Project
forProject Information
. -
Project Name
: SecureEDU
-
- Wait for a confirmation email to arrive in your wcupa.edu mailbox. You might have to resubmit a new request if you don’t see this email in about half an hour.

- After your account is confirmed, the instructor will be able to see your application and can grant you access to CloudLab.
- If you already had a CloudLab account, you can select
Start/Join Project
under your username, then selectJoin Existing Project
and provide the nameSecureEDU
.
- Launch your terminal (setup in the previous section) and run the following command:
Callout
- Hit
Enter
for all questions. - Do not enter a password or change the default location of the files.

- Run the following command to display the public key

- Drag your mouse over to paint/copy the key (just the text, no extra spaces after the last character)
- Log into CloudLab, click on your username (top right) and select
Manage SSH Keys
:

- Paste the key into the
Key
box and clickAdd Key
.
Setup GitHub repository
- If you have not had a GitHub account at this point, go to GitHub website and create a new account.
- Go to your GitHub account, under
Repositories
, selectNew
.- You can select any name for your repo.
- It must be
public
repository. - The
Add a README file
box must be checked. - Click
Create repository
when done.
- In your new Git repository, click
Add file
and selectCreate new file
- Type
profile.py
for the file name and enter the following content into the text editor.
PYTHON
import geni.portal as portal
import geni.rspec.pg as rspec
# Create a Request object to start building the RSpec.
request = portal.context.makeRequestRSpec()
# Create a XenVM
node = request.XenVM("node")
node.disk_image = "urn:publicid:IDN+emulab.net+image+emulab-ops:UBUNTU22-64-STD"
node.routable_control_ip = "true"
node.addService(rspec.Execute(shell="/bin/sh", command="sudo apt update"))
node.addService(rspec.Execute(shell="/bin/sh", command="sudo apt install -y apache2"))
node.addService(rspec.Execute(shell="/bin/sh", command='sudo systemctl status apache2'))
# Print the RSpec to the enclosing page.
portal.context.printRequestRSpec()
- Click
Commit new file
when done.
- Login to your CloudLab account, click
Experiments
on top left, selectCreate Experiment Profile
.

- Click on
Git Repo
- Paste the URL of your previously created Git repo
here and click
Confirm

- Enter the name for your profile, put in some words for the Description.
- You will not have a drop-down list of Project.
- Click
Create
when done.

- Click
Instantiate
to launch an experiment from your profile.

- Select a Cluster from Wisconsin, Clemson, or Emulab, then click
Next
. - Do not do anything on the next
Start on date/time
screen. ClickFinish
.

- Your experiment is now being
provision
.

- Once resources are provisioned, CloudLab will boot up your experiment.

- When it is ready, you can use the provided SSH command to log in to your experiment (assuming your key was set up correctly).
- The command is in the List View tab.

Callout
- If you fail to connect to the
ready
experiment, it is most likely that your public SSH key has not been copied correctly into your CloudLab account. - Check the copied key carefully, and repeat the copy process if necessary (you don’t need to generate a new key)
- Click
Terminate
, then find your profile and instantiate it again.