Skip to content

Rahul7387/Testing-Linux-and-Server-Assessment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Testing, Linux and Server Assessment Description Assignment Questions

Question 1: Set Up Your DevOps Project Structure

Objective: Create a complete project directory from scratch, apply correct permissions, and set ownership. The structure you build here will be used directly by your script in Question 2.

● Create the directory /home/ec2-user/webapp/ with three subdirectories inside it: scripts/, logs/, and config/ using a single mkdir -p command.

● Use cat > to create config/app.conf with two lines of content: APP_NAME=WebApp and PORT=8080. Save using Ctrl+D.

● Use touch to create an empty file at logs/app.log. Confirm it is 0 bytes using ls -l.

● Set permissions: chmod 755 scripts/ and chmod 644 config/app.conf. Explain in your own words what 755 and 644 mean for owner, group, and others.

● Recursively change ownership of the entire webapp/ directory to root:root using chown -R. Then run ls -lR /home/ec2-user/webapp/ and share the output to confirm every file and folder shows root root as owner.

Expected final structure:

webapp/

├── scripts/ (drwxr-xr-x root root)

├── logs/ (drwxr-xr-x root root)

└── config/ (drwxr-xr-x root root)

├── app.conf          (-rw-r--r--  root root)

└── app.log           (-rw-r--r--  root root)

Brief Steps:

● Create all directories at once: mkdir -p /home/ec2-user/webapp/scripts /home/ec2-user/webapp/logs /home/ec2-user/webapp/config

● Create app.conf with content: cat > /home/ec2-user/webapp/config/app.conf (type content, then Ctrl+D)

● Create empty log file: touch /home/ec2-user/webapp/logs/app.log

● Set permissions: chmod 755 /home/ec2-user/webapp/scripts && chmod 644 /home/ec2-user/webapp/config/app.conf

● Change ownership recursively: sudo chown -R root:root /home/ec2-user/webapp/

● Verify the full structure: ls -lR /home/ec2-user/webapp/

----------------------------Solution:------------------------------------------------------------

Create all directories

sudo mkdir -p /home/ec2-user/webapp/scripts /home/ec2-user/webapp/logs /home/ec2-user/webapp/config

Create app.conf with content

sudo bash -c 'cat > /home/ec2-user/webapp/config/app.conf << EOF APP_NAME=WebApp PORT=8080 EOF'

Create empty log file

sudo touch /home/ec2-user/webapp/logs/app.log

Verify 0 bytes

ls -l /home/ec2-user/webapp/logs/app.log

Set permissions

sudo chmod 755 /home/ec2-user/webapp/scripts sudo chmod 644 /home/ec2-user/webapp/config/app.conf

Change ownership to root recursively

sudo chown -R root:root /home/ec2-user/webapp/

Verify full structure

ls -lR /home/ec2-user/webapp/

Screenshot

image ---------------------------------------------------------------------------------------------------------------------------------------------------

Question 2: Write an Interactive Log Script

Objective: Using the webapp/ structure from Question 1, write a bash script that takes user input, reads a config file, and writes timestamped log entries. The log entries you create here will be the input for Question 3.

● Create a new script file at /home/ec2-user/webapp/scripts/log_user.sh using vim. Start with the correct shebang line.

● Use read -p to prompt the user to enter their name and store it in a variable called username.

● Use cat with the absolute path to display the contents of config/app.conf to the screen.

● Append a log entry to logs/app.log using echo >> in this exact format: Login: $username Date: $(date). Then display the full log file contents.

● Give the script execute permission with chmod +x and run it at least 3 times using different names (e.g., Chirag, Priya, Ravi) so the log file has multiple entries for Question 3.

Sample script structure:

#!/bin/bash

read -p "Enter your name: " username

cat /home/ec2-user/webapp/config/app.conf

echo "Login: $username Date: $(date)" >> /home/ec2-user/webapp/logs/app.log

cat /home/ec2-user/webapp/logs/app.log

Brief Steps:

● Navigate into scripts directory: cd /home/ec2-user/webapp/scripts/

● Open vim and create the script: vim log_user.sh → press i → write script → Esc → :wq

● Give execute permission: chmod +x log_user.sh

● Run the script 3 times with different names: ./log_user.sh

● Check the log file was updated: cat /home/ec2-user/webapp/logs/app.log

----------------------------Solution:------------------------------------------------------------

Create the script (no vim — direct write)

sudo bash -c 'cat > /home/ec2-user/webapp/scripts/log_user.sh << EOF #!/bin/bash read -p "Enter your name: " username cat /home/ec2-user/webapp/config/app.conf echo "Login: $username Date: $(date)" >> /home/ec2-user/webapp/logs/app.log cat /home/ec2-user/webapp/logs/app.log EOF'

Give execute permission

sudo chmod +x /home/ec2-user/webapp/scripts/log_user.sh

Run 3 times with different names

sudo /home/ec2-user/webapp/scripts/log_user.sh # Enter: Chirag sudo /home/ec2-user/webapp/scripts/log_user.sh # Enter: Priya sudo /home/ec2-user/webapp/scripts/log_user.sh # Enter: Ravi

Verify log entries

cat /home/ec2-user/webapp/logs/app.log

Screenshot

image ----------------------------------------------------------------------------------------------------------------------------------------------------------- **Question 3: User Management and File Permission Control**

Objective: Create 4 Linux users. Two of them must have write access to the log_user.sh script created in Question 2, and the other two must have read-only access. Use Linux groups and chmod to control this.

● Create a group called writers

● Create 4 users with home directories:

● Add the two write-access users to the writers group:

● Change the group ownership of log_user.sh to writers: sudo chown root:writers /home/ec2-user/webapp/scripts/log_user.sh

● Set permissions to 664 so writers group gets rw and others get r only: sudo chmod 664 /home/ec2-user/webapp/scripts/log_user.sh

● Verify the permission output shows: -rw-rw-r-- root writers log_user.sh

● Switch to each user and test access to confirm it is working correctly:

Permission Layout (chmod 664):

chmod 664 log_user.sh

   6          6          4

Owner(rw) Group(rw) Others(r)

root writers devuser3, devuser4

Brief Steps:

● Create the writers group: sudo groupadd writers

● Create all 4 users: sudo useradd -m devuser1 (repeat for devuser2, devuser3, devuser4)

● Add devuser1 and devuser2 to writers: sudo usermod -aG writers devuser1 && sudo usermod -aG writers devuser2

● Change group ownership of the script: sudo chown root:writers /home/ec2-user/webapp/scripts/log_user.sh

● Set 664 permissions: sudo chmod 664 /home/ec2-user/webapp/scripts/log_user.sh

● Verify permissions: ls -l /home/ec2-user/webapp/scripts/log_user.sh

● Test write access (devuser1/devuser2): su - devuser1 then echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh

● Test read-only access (devuser3/devuser4): su - devuser3 then cat /home/ec2-user/webapp/scripts/log_user.sh

----------------------------Solution:------------------------------------------------------------

Create writers group

sudo groupadd writers

Create 4 users with home directories

sudo useradd -m devuser1 sudo useradd -m devuser2 sudo useradd -m devuser3 sudo useradd -m devuser4

Set passwords for all users

sudo passwd devuser1 sudo passwd devuser2 sudo passwd devuser3 sudo passwd devuser4

Add devuser1 and devuser2 to writers group

sudo usermod -aG writers devuser1 sudo usermod -aG writers devuser2

Change group ownership of script to writers

sudo chown root:writers /home/ec2-user/webapp/scripts/log_user.sh

Set 664 permissions

sudo chmod 664 /home/ec2-user/webapp/scripts/log_user.sh

Verify permissions

ls -l /home/ec2-user/webapp/scripts/log_user.sh

Test devuser1 — write should succeed

su - devuser1 echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

Test devuser2 — write should succeed

su - devuser2 echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

Test devuser3 — write should fail

su - devuser3 cat /home/ec2-user/webapp/scripts/log_user.sh echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

Test devuser4 — write should fail

su - devuser4 cat /home/ec2-user/webapp/scripts/log_user.sh echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

Screenshot

image image image image image image

Commands : Question 1:

Create all directories

sudo mkdir -p /home/ec2-user/webapp/scripts /home/ec2-user/webapp/logs /home/ec2-user/webapp/config

Create app.conf with content

sudo bash -c 'cat > /home/ec2-user/webapp/config/app.conf << EOF APP_NAME=WebApp PORT=8080 EOF'

Create empty log file

sudo touch /home/ec2-user/webapp/logs/app.log

Verify 0 bytes

ls -l /home/ec2-user/webapp/logs/app.log

Set permissions

sudo chmod 755 /home/ec2-user/webapp/scripts sudo chmod 644 /home/ec2-user/webapp/config/app.conf

Change ownership to root recursively

sudo chown -R root:root /home/ec2-user/webapp/

Verify full structure

ls -lR /home/ec2-user/webapp/

Question 2:

Create the script (no vim — direct write)

sudo bash -c 'cat > /home/ec2-user/webapp/scripts/log_user.sh << EOF #!/bin/bash read -p "Enter your name: " username cat /home/ec2-user/webapp/config/app.conf echo "Login: $username Date: $(date)" >> /home/ec2-user/webapp/logs/app.log cat /home/ec2-user/webapp/logs/app.log EOF'

Give execute permission

sudo chmod +x /home/ec2-user/webapp/scripts/log_user.sh

Run 3 times with different names

sudo /home/ec2-user/webapp/scripts/log_user.sh # Enter: Chirag sudo /home/ec2-user/webapp/scripts/log_user.sh # Enter: Priya sudo /home/ec2-user/webapp/scripts/log_user.sh # Enter: Ravi

Verify log entries

cat /home/ec2-user/webapp/logs/app.log

Question 3:

Create writers group

sudo groupadd writers

Create 4 users with home directories

sudo useradd -m devuser1 sudo useradd -m devuser2 sudo useradd -m devuser3 sudo useradd -m devuser4

Set passwords for all users

sudo passwd devuser1 sudo passwd devuser2 sudo passwd devuser3 sudo passwd devuser4

Add devuser1 and devuser2 to writers group

sudo usermod -aG writers devuser1 sudo usermod -aG writers devuser2

Change group ownership of script to writers

sudo chown root:writers /home/ec2-user/webapp/scripts/log_user.sh

Set 664 permissions

sudo chmod 664 /home/ec2-user/webapp/scripts/log_user.sh

Verify permissions

ls -l /home/ec2-user/webapp/scripts/log_user.sh

Test devuser1 — write should succeed

su - devuser1 echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

Test devuser2 — write should succeed

su - devuser2 echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

Test devuser3 — write should fail

su - devuser3 cat /home/ec2-user/webapp/scripts/log_user.sh echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

Test devuser4 — write should fail

su - devuser4 cat /home/ec2-user/webapp/scripts/log_user.sh echo 'test' >> /home/ec2-user/webapp/scripts/log_user.sh exit

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors