Preparation Set 4
Q1: Question-1:
- Configure TCP/IP and "hostname" as following:
- IP ADDRESS = 192.168.208.138
- NETMASK = 255.255.255.0
- GATEWAY = 192.168.208.2
- DNS = 192.168.208.2
- Hostname = serverX.example.com
[root@node1 ~]# hostnamectl set-hostname serverX.example.com [root@node1 ~]# exec bash [root@serverX ~]# nmcli conn modify serverAnet2 ifname ens160 type ethernet ipv4.method manual ipv4.address 192.168.208.138/24 ipv4.dns 192.168.208.2 ipv4.gateway 192.168.208.2
Q2:Configure your servera VM repository installed the packages distribution is available via YUM:
- Base OS url = http://192.168.208.137/softwares/BaseOS
- App Stream url= http://192.168.208.137/softwares/AppStream
[root@serverX yum.repos.d]# pwd /etc/yum.repos.d [root@serverX yum.repos.d]# cat appstream.repo [appstream] name = appstream baseurl = http://192.168.208.137/softwares/AppStream enabled = 1 gpgcheck = 0 [root@serverX yum.repos.d]# cat baseos.repo [baseos] name = baseos baseurl = http://192.168.208.137/softwares/BaseOS enabled = 1 gpgcheck = 0 [root@serverX yum.repos.d]# yum list all
Q3: SELINUX PORT
- In your system, httpd service has some files in /var/www/html (do not change or alter files)
- solve the problem, httpd service of your system having some issues, service is not running on port 82.
[root@serverX ~]# systemctl status httpd [root@serverX ~]# vim /etc/httpd/conf/httpd.conf Listen 8200 # Copy the line from /etc/ssh/sshd_config semanage port -a -t http_port_t -p tcp 8200 [root@serverX ~]# semanage port -l | grep 8200 http_port_t tcp 8200, 8000, 82, 7788, 5566, 80, 81, 443, 488, 8008, 8009, 8443, 9000 trivnet1_port_t tcp 8200 trivnet1_port_t udp 8200 [root@serverX ~]# netstat -tnl | grep 82 tcp6 0 0 :::82 :::* LISTEN [root@serverX ~]# firewall-cmd --permanent --add-port=8200/tcp success [root@serverX ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http mountd nfs ntp rpc-bind ssh ports: 82/tcp protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Q4: Create the following users, groups and group memberships:
- (a) A group named admin.
- (b) A user harry who belongs to admin as a secondary group.
- (c) A user natasha who belongs to admin as a secondary group.
- (d) A user sarah who doesn’t have access to an interactive shell and who’s not a member of admin.
- (e) The users harry, natasha, sarah should all have a password of “password”
[root@serverX ~]# groupadd admin [root@serverX ~]# useradd harry -G admin [root@serverX ~]# useradd natasha -G admin [root@serverX ~]# useradd sarah -s /sbin/nologin [root@serverX ~]# echo "password" | passwd --stdin harry Changing password for user harry. passwd: all authentication tokens updated successfully. [root@serverX ~]# echo "password" | passwd --stdin natasha Changing password for user natasha. passwd: all authentication tokens updated successfully. [root@serverX ~]# echo "password" | passwd --stdin sarah Changing password for user sarah. passwd: all authentication tokens updated successfully.
Q5. Create a collaborative directory /common/admin with the following characteristics:
- (a) Group ownership of /common/admin is admin.
- (b) The directory should be readable, writable and accessible to members of admin, but not any other user.
- (It is understood that root has access to all files and directories on the system.)
- (c) Files created in /common/admin will automatically have group ownership set to the admin group.
[root@serverX common]# chown :admin admin [root@serverX common]# ls -lh total 0 drwxr-xr-x. 2 root admin 6 Oct 11 13:07 admin [root@serverX common]# chmod g+rwx admin [root@serverX common]# ls -lh total 0 drwxrwxr-x. 2 root admin 6 Oct 11 13:07 admin [root@serverX common]# chmod o-rwx admin [root@serverX common]# ls -lh total 0 drwxrwx---. 2 root admin 6 Oct 11 13:07 admin [root@serverX common]# chmod g+s admin [root@serverX common]# ls -lh total 0 drwxrws---. 2 root admin 6 Oct 11 13:07 admin
Q6: Configure autofs to automount the home directories of netuserX user. Note theFollowing:
- netuser1,2,3,4,5 home directory is exported via NFS, which is available on classroom.example.com(192.168.1.43) and your NFS-exports directory is /netdir/netuserX for netuserX (use netuser5 for this)
- netuserX's home directory is classroom.example.com:/home/guests/netuserX
- netuserX's home directory should be automounted using autofs service.
- home directories must be writable by their users on server : change IP address in /etc/exports. Also “systemctl restart nfs-server”
[root@serverX ~]# rpm -q nfs-utils nfs-utils-2.5.4-27.el9.aarch64 [root@serverX /]# vim /etc/auto.master [root@serverX /]# cat /etc/auto.master /netdir /etc/auto.nfs --timeout=300 [root@serverX /]# vim /etc/auto.nfs [root@serverX /]# cat /etc/auto.nfs * -rw,sync 192.168.208.137:/home/guests/& [netuser5@serverX netdir]$ systemctl status autofs [netuser5@serverX netdir]$ systemctl restart autofs [netuser5@serverX netdir]$ cd netuser5 [netuser5@serverX netuser5]$ ls u51 u52
Q7: Set a Cron job for harry on 12.30 at noon print /bin/echo on "hello".
[root@serverX ~]# cat /etc/cron.allow natasha harry [root@serverX ~]# su - harry Last login: Fri Oct 11 14:51:21 CST 2024 on pts/1 [harry@serverX ~]$ crontab -e no crontab for harry - using an empty one crontab: installing new crontab [harry@serverX ~]$ crontab -l 30 12 * * * /bin/echo "hello"
Q8: Configure ACL permission copy the file /etc/f1 to /var/tmp. Configure the permission of /var/tmp/f1 so that:
- (a)The file /var/tmp/f1 is owned by the root user
- (b)The file /var/tmp/f1 belongs to the group root.
- (c)The file /var/tmp/f1 should not be executable by anyone.
- (d)The user harry is able to read and write on /var/tmp/f1.
- (e)The user natasha can neither read nor write /var/tmp/f1.
- (f)All other users (current/future) have the ability to read /var/tmp/f1
[root@serverX tmp]# chown root:root fstab [root@serverX tmp]# ls -lh f1 -rwxrwxrwx. 1 root root 0 Oct 11 14:56 f1 [root@serverX tmp]# chmod u-x,g-x,o-x f1 [root@serverX tmp]# ls -lh f1 -rw-rw-rw-. 1 root root 0 Oct 11 14:56 f1 [root@serverX tmp]# setfacl -m u:harry:rw f1 [root@serverX tmp]# getfacl f1 # file: f1 # owner: root # group: root user::rw- user:harry:rw- group::rw- mask::rw- other::rw- [root@serverX tmp]# setfacl -m u:natasha:--- f1 [root@serverX tmp]# getfacl f1 # file: f1 # owner: root # group: root user::rw- user:harry:rw- user:natasha:--- group::rw- mask::rw- other::rw- [root@serverX tmp]# setfacl -m o:r-- f1 [root@serverX tmp]# getfacl f1 # file: f1 # owner: root # group: root user::rw- user:harry:rw- user:natasha:--- group::rw- mask::rw- other::r--
Q9: Configure your system so that it is an NTP pool of 2.centos.pool.ntp.org
[root@serverX ~]# rpm -q chrony [root@serverX ~]# systemctl status chronyd.service [root@serverX ~]# vim /etc/chrony.conf server us.pool.ntp.org iburst [root@serverX ~]# systemctl restart chronyd.service [root@serverX ~]# timedatectl set-ntp true [root@serverX ~]# timedatectl Local time: Fri 2024-10-11 15:09:00 CST Universal time: Fri 2024-10-11 07:09:00 UTC RTC time: Fri 2024-10-11 07:09:00 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no [root@serverX ~]# chronyc sources MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 155.248.196.28 2 6 17 25 -2353us[+2998us] +/- 175ms
Q10: Find the files owned by harry and copy them to /root/find.user
[root@serverX ~]# find / -type f -user harry -exec cp -rf {} /root/find.user \;
Q11: Create a new user with UID 1326 and user name as alies
[root@serverX ~]# useradd alies -u 1326 [root@serverX ~]# cat /etc/passwd | grep alies alies:x:1326:1326::/home/alies:/bin/bash
Q12: Create an archive file - Backup the /var/tmp directory as /root/test.tar.gz
[root@serverX ~]# tar -zcvf /root/test.tar.gz /var/tmp
Q13: Build a container as harry
- Use the URL docker.io/library/httpd to build the container image with the name “web”
- Build it in ~/mycontainer. Do not modify the container file
[harry@serverX ~]$ rpm -q container-tools container-tools-1-14.el9.noarch [harry@serverX ~]$ vim .config/containers/registries.conf [harry@serverX ~]$ cat .config/containers/registries.conf unqualified-search-registries = ["docker.io"] [[registry]] insecure = false blocked = false location = "docker.io" [root@serverX ~]# loginctl enable-linger harry [harry@serverX ~]$ mkdir mycontainer [harry@serverX mycontainer]$ pwd /home/harry/mycontainer # Download the Containerfile from this link [harry@serverX mycontainer]$ wget http://classroom.example.com/Containerfile # Check the Containerfile [harry@serverX mycontainer]$ cat Containerfile FROM docker.io/library/httpd [harry@serverX mycontainer]$ podman build -t web . [harry@serverX mycontainer]$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/web latest a3e79aafef7f 2 months ago 182 MB docker.io/library/httpd latest a3e79aafef7f 2 months ago 182 MB
Q14: 14. Create a container using an image that you created somewhere in the exam:
- Create a container with the user named harry, the container name should be ‘containerweb’
- Map ~/web directory to /usr/local/apache2/htdocs in the container
- Map port 8080 to port 80 in the container
- When you curl localhost:8080 it should read “This is my web page!”
- Container should run as a systemd service, so configure it as a service named ‘container-web.service’
- Container should run at boot time.
[harry@serverX web]$ pwd /home/harry/web [harry@serverX web]$ cat index.html <h1>This is a website !!</h1> [harry@serverX mycontainer]$ podman run -d -v ~/web:/usr/local/apache2/htdocs:Z -p 8080:80 --name containerweb localhost/web:latest d4a33b06973c4cf8d467f0c9cc36af0ad6f00661ab37f8a931995919334b7118 [harry@serverX mycontainer]$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a33b06973c localhost/web:latest httpd-foreground 5 seconds ago Up 6 seconds 0.0.0.0:8080->80/tcp, 80/tcp containerweb # From root [root@serverX ~]# vim /etc/httpd/conf/httpd.conf [root@serverX ~]# semanage port -a -t http_port_t -p tcp 8080 [root@serverX ~]# semanage port -l | grep 8080 http_cache_port_t tcp 8080, 8118, 8123, 10001-10010 http_port_t tcp 8080, 8200, 8000, 82, 7788, 5566, 80, 81, 443, 488, 8008, 8009, 8443, 9000 [harry@serverX user]$ pwd /home/harry/.config/systemd/user [harry@serverX user]$ podman generate systemd --name containerweb --files --new [harry@serverX user]$ ls container-containerweb.service [harry@serverX user]$ podman stop containerweb containerweb [root@serverX ~]# ssh harry@192.168.208.138 [harry@serverX user]$ systemctl --user enable container-containerweb.service Created symlink /home/harry/.config/systemd/user/default.target.wants/container-containerweb.service → /home/harry/.config/systemd/user/container-containerweb.service. [harry@serverX user]$ systemctl --user start container-containerweb.service [harry@serverX user]$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bef34e67be4b localhost/web:latest httpd-foreground 3 seconds ago Up 3 seconds 0.0.0.0:8080->80/tcp, 80/tcp containerweb [harry@serverX user]$ curl localhost:8080 <h1>This is a website !!</h1> [harry@serverX ~]$ sudo firewall-cmd --permanent --add-service=http success [harry@serverX ~]$ sudo firewall-cmd --permanent --add-port=8080/tcp success [harry@serverX ~]$ sudo firewall-cmd --reload # test from another server [root@serverB guests]# curl 192.168.208.138:8080 <h1>This is a website !!</h1>
Q15: Set the permissions automatically for a user
- All newly created files for user natasha should have -r-------- as the default permission.
- All newly created directories for user natasha should have dr-x------ as the default permission.
[root@serverX natasha]# vim .bashrc #~~~~~~~ Calculative Way ~~~~~~~~~ # DIr - 777 - 277 = 500 // 500 -> d r-x --- --- // # Fil - 666 - 266 = 400 // 266 -> - r-- --- --- // # Which to use : umask 277 or umask 266 # If umask 277 : dir ( - r-x --- --- ) / file ( - r-- --- --- ) :: Matched for both # If umask 266 : dir ( - r-x --x --x ) / file ( - r-- --- --- ) :: Matched for both #~~~~~~~ Simpler Way ~~~~~~~~~ # 666 - 400 = 266 files # 777 - 500 = 277 folder # Look at the higher value umask 277
Q16: The password for all new users should expire after 20 days.
[root@serverX ~]# vim /etc/login.defs PASS_MAX_DAYS 20
Q17: Assign the sudo privilege for users or groups to administrate without a password
[root@serverX ~]# visudo harry ALL=(ALL) NOPASSWD: ALL %sales ALL=(ALL) NOPASSWD: ALL
Q18: Create a script file: -if the paramater is “GM” it outputs “good morning” -- if it is “GN”, it outputs “good night”
[root@serverX script]# ./script1.sh GM Good Morning [root@serverX script]# ./script1.sh GN Good Night [root@serverX script]# ./script1.sh GD No result [root@serverX script]# cat ./script1.sh if [ $1 == "GM" ] then echo "Good Morning" elif [ $1 == "GN" ] then echo "Good Night" else echo "No result" fi
Q19: Set the root user password to break into the system
# Click e in rescue mode # add rd.break after quiet then press ctrl+x mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit remount
Q20: Create a repository file
[root@serverX yum.repos.d]# cat appstream.repo [appstream] name = appstream baseurl = http://192.168.208.137/softwares/AppStream enabled = 1 gpgcheck = 0 [root@serverX yum.repos.d]# cat baseos.repo [baseos] name = baseos baseurl = http://192.168.208.137/softwares/BaseOS enabled = 1 gpgcheck = 0 [root@serverX yum.repos.d]# yum list all | less # yum clean all # yum makecache [root@serverX yum.repos.d]# yum repolist all Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. repo id repo name status appstream appstream enabled baseos baseos enabled
Q21: Create a swap partition of 512MB at /dev/sdb
[root@serverX ~]# gdisk /dev/nvme0n3 Command (? for help): n Partition number (3-128, default 3): First sector (34-12582878, default = 7342080) or {+-}size{KMGTP}: Last sector (7342080-12582878, default = 12582878) or {+-}size{KMGTP}: +512M Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): L Type search string, or <Enter> to show all codes: swap 8200 Linux swap a502 FreeBSD swap a582 Midnight BSD swap a901 NetBSD swap bf02 Solaris swap Hex code or GUID (L to show codes, Enter = 8300): 8200 Changed type of partition to 'Linux swap' Command (? for help): p Disk /dev/nvme0n3: 12582912 sectors, 6.0 GiB Model: VMware Virtual NVMe Disk Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 84E0270F-9D78-4CBA-9023-AB303101E681 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 12582878 Partitions will be aligned on 2048-sector boundaries Total free space is 4194237 sectors (2.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 1050623 512.0 MiB 8200 Linux swap 2 1050624 7342079 3.0 GiB 8E00 Linux LVM 3 7342080 8390655 512.0 MiB 8200 Linux swap Command (? for help): w Do you want to proceed? (Y/N): y The operation has completed successfully. [root@serverX ~]# mkswap /dev/nvme0n3p3 [root@serverX ~]# vim /etc/fstab [root@serverX ~]# tail -1 /etc/fstab /dev/nvme0n3p3 swap swap defaults 0 0 [root@serverX ~]# systemctl daemon-reload [root@serverX ~]# swapon -a [root@serverX ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS ... nvme0n3 259:5 0 6G 0 disk └─nvme0n3p3 259:11 0 512M 0 part [SWAP] [root@serverX ~]# free -h total used free shared buff/cache available Mem: 3.5Gi 1.1Gi 1.9Gi 25Mi 764Mi 2.4Gi Swap: 3.0Gi 0B 3.0Gi
Q22: Resize the logical volume "datastore-engineering" size to 20 extents.
[root@serverX ~]# gdisk /dev/nvme0n3 Command (? for help): n Partition number (4-128, default 4): First sector (34-12582878, default = 8390656) or {+-}size{KMGTP}: Last sector (8390656-12582878, default = 12582878) or {+-}size{KMGTP}: Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): L Type search string, or <Enter> to show all codes: lv 8e00 Linux LVM Hex code or GUID (L to show codes, Enter = 8300): 8e00 Changed type of partition to 'Linux LVM' Command (? for help): p Number Start (sector) End (sector) Size Code Name 1 2048 1050623 512.0 MiB 8200 Linux swap 2 1050624 7342079 3.0 GiB 8E00 Linux LVM 3 7342080 8390655 512.0 MiB 8200 Linux swap 4 8390656 12582878 2.0 GiB 8E00 Linux LVM Command (? for help): w Do you want to proceed? (Y/N): y The operation has completed successfully. [root@serverX ~]# partprobe /dev/nvme0n3 [root@serverX ~]# pvcreate /dev/nvme0n3p4 Physical volume "/dev/nvme0n3p4" successfully created. [root@serverX ~]# pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p3 cs lvm2 a-- 18.41g 0 /dev/nvme0n2 myvg lvm2 a-- <5.00g <4.00g /dev/nvme0n3p2 wgroup lvm2 a-- 2.98g 2.20g /dev/nvme0n3p4 lvm2 --- <2.00g <2.00g [root@serverX ~]# vgcreate -s 10 datastore /dev/nvme0n3p4 Volume group "datastore" successfully created [root@serverX ~]# vgs VG #PV #LV #SN Attr VSize VFree cs 1 2 0 wz--n- 18.41g 0 datastore 1 0 0 wz--n- 1.99g 1.99g myvg 1 1 0 wz--n- <5.00g <4.00g wgroup 1 1 0 wz--n- 2.98g 2.20g [root@serverX ~]# lvcreate --name engineering -l 20 datastore Logical volume "engineering" created. [root@serverX ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cs -wi-ao---- 16.41g swap cs -wi-ao---- 2.00g engineering datastore -wi-a----- 200.00m mylv myvg -wi-a----- 1.00g wshare wgroup -wi-ao---- 800.00m [root@serverX ~]# lvdisplay /dev/datastore/engineering --- Logical volume --- LV Path /dev/datastore/engineering LV Name engineering VG Name datastore LV UUID 5ApWGI-aN0B-301A-2mNG-yos0-vF9a-zsJWBp LV Write Access read/write LV Creation host, time serverX.example.com, 2024-10-12 09:25:33 +0800 LV Status available # open 0 LV Size 200.00 MiB Current LE 20 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4 [root@serverX ~]# lvextend -L +100M /dev/datastore/engineering Size of logical volume datastore/engineering changed from 200.00 MiB (20 extents) to 300.00 MiB (30 extents). Logical volume datastore/engineering successfully resized. # Now we can perform the question's answer [root@serverX ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cs -wi-ao---- 16.41g swap cs -wi-ao---- 2.00g engineering datastore -wi-a----- 300.00m mylv myvg -wi-a----- 1.00g wshare wgroup -wi-ao---- 800.00m [root@serverX ~]# lvreduce -l -10 /dev/datastore/engineering No file system found on /dev/datastore/engineering. Size of logical volume datastore/engineering changed from 300.00 MiB (30 extents) to 200.00 MiB (20 extents). Logical volume datastore/engineering successfully resized. [root@serverX ~]# [root@serverX ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cs -wi-ao---- 16.41g swap cs -wi-ao---- 2.00g engineering datastore -wi-a----- 200.00m mylv myvg -wi-a----- 1.00g wshare wgroup -wi-ao---- 800.00m
Q23: Create a vdo named VDO1 of logical size 50GB (actual size 5GB) on sdd, under volume group VG1 and mount it at /vdo_m
[root@serverX ~]# vgs VG #PV #LV #SN Attr VSize VFree VG1 3 2 0 wz--n- <5.48g 488.00m cs 1 2 0 wz--n- 18.41g 0 datastore 1 1 0 wz--n- 1.99g <1.70g myvg 1 1 0 wz--n- <5.00g <4.00g wgroup 1 1 0 wz--n- 2.98g 2.20g [root@serverX ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert VDO1 VG1 vwi-a-v--- 50.00g vpool0 0.00 vpool0 VG1 dwi------- 5.00g 60.03 root cs -wi-ao---- 16.41g swap cs -wi-ao---- 2.00g engineering datastore -wi-a----- 300.00m mylv myvg -wi-a----- 1.00g wshare wgroup -wi-ao---- 800.00m [root@serverX ~]# lvcreate --type vdo -L 5G --virtualsize 50G --name VDO1 VG1 The VDO volume can address 2 GB in 1 data slab. It can grow to address at most 16 TB of physical storage in 8192 slabs. If a larger maximum size might be needed, use bigger slabs. Logical volume "VDO1" created. [root@serverX ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert VDO1 VG1 vwi-a-v--- 50.00g vpool0 0.00 vpool0 VG1 dwi------- 5.00g 60.03 root cs -wi-ao---- 16.41g swap cs -wi-ao---- 2.00g engineering datastore -wi-a----- 300.00m mylv myvg -wi-a----- 1.00g wshare wgroup -wi-ao---- 800.00m [root@serverX ~]# vim /etc/fstab [root@serverX ~]# tail -1 /etc/fstab /dev/VG1/VDO1 /vdo_m xfs defaults 0 0 [root@serverX ~]# mkfs -t xfs /dev/VG1/VDO1 meta-data=/dev/VG1/VDO1 isize=512 agcount=4, agsize=3276800 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=1 inobtcount=1 nrext64=0 data = bsize=4096 blocks=13107200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Discarding blocks...Done. [root@serverX ~]# systemctl daemon-reload [root@serverX ~]# mount -a [root@serverX ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n4 259:8 0 5G 0 disk ├─nvme0n4p1 259:13 0 1G 0 part │ └─VG1-vpool0_vdata 253:5 0 5G 0 lvm │ └─VG1-vpool0-vpool 253:6 0 50G 0 lvm │ └─VG1-VDO1 253:7 0 50G 0 lvm /vdo_m └─nvme0n4p2 259:16 0 4G 0 part └─VG1-vpool0_vdata 253:5 0 5G 0 lvm └─VG1-vpool0-vpool 253:6 0 50G 0 lvm └─VG1-VDO1 253:7 0 50G 0 lvm /vdo_m nvme0n5 259:9 0 5G 0 disk └─nvme0n5p1 259:15 0 500M 0 part └─VG1-vpool0_vdata 253:5 0 5G 0 lvm └─VG1-vpool0-vpool 253:6 0 50G 0 lvm └─VG1-VDO1 253:7 0 50G 0 lvm /vdo_m
Q24: Set the recommended tuned profile for your system.
[root@serverX ~]# rpm -q tuned tuned-2.24.0-1.el9.noarch [root@serverX ~]# systemctl status tuned [root@serverX ~]# systemctl start tuned [root@serverX ~]# tuned-adm recommend virtual-guest [root@serverX ~]# tuned-adm profile virtual-guest powersave [root@serverX ~]# tuned-adm active Current active profile: virtual-guest powersave
Q25: Build an application called “rhcsa” that prints the message "Welcome to user ablerate" when you’re logged in as the user "ablerate".
# Without application [root@serverX ~]# useradd ablerate [root@serverX ~]# passwd [root@serverX ~]# su - ablerate [ablerate@serverX ~]$ vim .bashrc [ablerate@serverX ~]$ tail -1 .bashrc echo "Welcome to user ablerate" [root@serverX ~]# su - ablerate Last login: Sat Oct 12 10:38:04 CST 2024 on pts/1 Welcome to user ablerate # With application [ablerate@serverX ~]$ vim .bashrc [ablerate@serverX ~]$ tail -1 .bashrc export PATH=$PATH:/home/ablerate/script [ablerate@serverX ~]$ source .bashrc Welcome to user ablerate [ablerate@serverX ~]$ echo $PATH /home/ablerate/.local/bin:/home/ablerate/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/sanjeeb/Script:/home/ablerate/script [ablerate@serverX script]$ vim rhcsa [ablerate@serverX script]$ cat rhcsa echo "Welcome to user ablerate" [ablerate@serverX script]$ chmod 777 rhcsa [ablerate@serverX script]$ ls -lh total 4.0K -rwxrwxrwx. 1 ablerate ablerate 32 Oct 12 10:57 rhcsa [root@serverX ~]# su - ablerate Last login: Sat Oct 12 10:49:08 CST 2024 on pts/1 Welcome to user ablerate