RHCSA EX200 - Managing Files LAB

creating a tar from /usr/share/doc directory 

 [csr@rhel-lab1 ~]$ du -sh /usr/share/doc

63M /usr/share/doc

[csr@rhel-lab1 ~]$ tar -cf documentation.tar /usr/share/doc

tar: Removing leading `/' from member names

[csr@rhel-lab1 ~]$ ls

2 archives documentation.tar Desktop Documents Downloads Music output Pictures Public Templates Videos

[csr@rhel-lab1 ~]$ ls -l

total 59748

-rw-r--r--. 1 csr csr 1328 Apr 11 18:55 2

drwxr-xr-x. 2 csr csr 26 Apr 9 18:32 archives

-rw-r--r--. 1 csr csr 61173760 Apr 15 18:33 documentation.tar

drwxr-xr-x. 2 csr csr 6 Apr 10 12:03 Desktop

drwxr-xr-x. 2 csr csr 72 Apr 11 18:04 Documents

drwxr-xr-x. 2 csr csr 6 Apr 10 12:03 Downloads

drwxr-xr-x. 2 csr csr 6 Apr 10 12:03 Music

-rw-r--r--. 1 csr csr 6 Apr 11 17:56 output

drwxr-xr-x. 2 csr csr 6 Apr 10 12:03 Pictures

drwxr-xr-x. 2 csr csr 6 Apr 10 12:03 Public

drwxr-xr-x. 2 csr csr 6 Apr 10 12:03 Templates

drwxr-xr-x. 2 csr csr 6 Apr 10 12:03 Videos

[csr@rhel-lab1 ~]$ du -sh *.tar

59M ddocumentation.tar 

 listing content of a tar file - tar-tvf filename (t list the content,  -v verbose, -f use file archive) 

 [csr@rhel-lab1 ~]$ tar -tvf documentation.tar | more

drwxr-xr-x root/root 0 2024-04-09 17:31 usr/share/doc/

drwxr-xr-x root/root 0 2024-04-08 14:55 usr/share/doc/hwdata/

-rw-r--r-- root/root 175 2023-08-21 01:22 usr/share/doc/hwdata/LICENSE

drwxr-xr-x root/root 0 2024-04-08 14:55 usr/share/doc/xkeyboard-config/

-rw-r--r-- root/root 510 2021-06-08 15:20 usr/share/doc/xkeyboard-config/AUTHORS

-rw-r--r-- root/root 9244 2021-06-08 15:20 usr/share/doc/xkeyboard-config/COPYING

-rw-r--r-- root/root 861 2021-06-08 15:20 usr/share/doc/xkeyboard-config/HOWTO.testing

-rw-r--r-- root/root 2303 2021-06-08 15:20 usr/share/doc/xkeyboard-config/HOWTO.transition

-rw-r--r-- root/root 5108 2021-06-08 15:20 usr/share/doc/xkeyboard-config/NEWS

-rw-r--r-- root/root 1627 2021-06-08 15:20 usr/share/doc/xkeyboard-config/README

-rw-r--r-- root/root 7515 2021-06-08 15:20 usr/share/doc/xkeyboard-config/README.config

-rw-r--r-- root/root 23948 2021-06-08 15:20 usr/share/doc/xkeyboard-config/README.enhancing

-rw-r--r-- root/root 1882 2021-06-08 15:20 usr/share/doc/xkeyboard-config/README.symbols

 

 create the same but compressed using gz 

 [csr@rhel-lab1 ~]$ tar -czvf documentation.tar.gz /usr/share/doc | more

tar: Removing leading `/' from member names

/usr/share/doc/

/usr/share/doc/hwdata/

/usr/share/doc/hwdata/LICENSE

/usr/share/doc/xkeyboard-config/

/usr/share/doc/xkeyboard-config/AUTHORS

/usr/share/doc/xkeyboard-config/COPYING

/usr/share/doc/xkeyboard-config/HOWTO.testing

/usr/share/doc/xkeyboard-config/HOWTO.transition

/usr/share/doc/xkeyboard-config/NEWS

/usr/share/doc/xkeyboard-config/README

/usr/share/doc/xkeyboard-config/README.config

/usr/share/doc/xkeyboard-config/README.enhancing

/usr/share/doc/xkeyboard-config/README.symbols

/usr/share/doc/tzdata/

/usr/share/doc/tzdata/README

/usr/share/doc/tzdata/theory.html

/usr/share/doc/tzdata/tz-art.html

/usr/share/doc/tzdata/tz-link.html

[csr@rhel-lab1 ~]$ du -sh docu*.*

59M documentation.tar

19M documentation.tar.gz

 

 using J for compression 

 [csr@rhel-lab1 ~]$ tar -cjvf documentation.tar.bz2 /usr/share/doc | more

tar: Removing leading `/' from member names

/usr/share/doc/

/usr/share/doc/hwdata/

/usr/share/doc/hwdata/LICENSE

/usr/share/doc/xkeyboard-config/

/usr/share/doc/xkeyboard-config/AUTHORS

/usr/share/doc/xkeyboard-config/COPYING

/usr/share/doc/xkeyboard-config/HOWTO.testing

/usr/share/doc/xkeyboard-config/HOWTO.transition

/usr/share/doc/xkeyboard-config/NEWS

/usr/share/doc/xkeyboard-config/README

/usr/share/doc/xkeyboard-config/README.config

/usr/share/doc/xkeyboard-config/README.enhancing

/usr/share/doc/xkeyboard-config/README.symbols

/usr/share/doc/tzdata/

[csr@rhel-lab1 ~]$ du -sh docu*.*

59M documentation.tar

16M documentation.tar.bz2

19M documentation.tar.gz

 

 

 Listing the gz file content 

 [csr@rhel-lab1 ~]$ tar -ttzvf documentation.tar.gz | more

drwxr-xr-x root/root 0 2024-04-09 17:31 usr/share/doc/

drwxr-xr-x root/root 0 2024-04-08 14:55 usr/share/doc/hwdata/

-rw-r--r-- root/root 175 2023-08-21 01:22 usr/share/doc/hwdata/LICENSE

drwxr-xr-x root/root 0 2024-04-08 14:55 usr/share/doc/xkeyboard-config/

-rw-r--r-- root/root 510 2021-06-08 15:20 usr/share/doc/xkeyboard-config/AUTHORS

-rw-r--r-- root/root 9244 2021-06-08 15:20 usr/share/doc/xkeyboard-config/COPYING

-rw-r--r-- root/root 861 2021-06-08 15:20 usr/share/doc/xkeyboard-config/HOWTO.testing

-rw-r--r-- root/root 2303 2021-06-08 15:20 usr/share/doc/xkeyboard-config/HOWTO.transition

-rw-r--r-- root/root 5108 2021-06-08 15:20 usr/share/doc/xkeyboard-config/NEWS

-rw-r--r-- root/root 1627 2021-06-08 15:20 usr/share/doc/xkeyboard-config/READ 

 untar file and view the content using tree 

 [csr@rhel-lab1 ~]$ mkdir doctests

[csr@rhel-lab1 ~]$ mv documentation.tar* /doctests/

mv: target '/doctests/' is not a directory

[csr@rhel-lab1 ~]$ mv documentation.tar* ~/doctests/

[csr@rhel-lab1 ~]$ cd doctests/

[csr@rhel-lab1 doctests]$ ls

documentation.tar documentation.tar.bz2 documentation.tar.gz

[csr@rhel-lab1 doctests]$ tar -xzvf documentation.tar.gz 

[csr@rhel-lab1 doctests]$ ls -la

total 93816

drwxr-xr-x. 3 csr csr 99 Apr 15 18:51 .

drwx------. 17 csr csr 4096 Apr 15 18:49 ..

-rw-r--r--. 1 csr csr 61173760 Apr 15 18:33 documentation.tar

-rw-r--r--. 1 csr csr 15930018 Apr 15 18:44 documentation.tar.bz2

-rw-r--r--. 1 csr csr 18954095 Apr 15 18:42 documentation.tar.gz

drwxr-xr-x. 3 csr csr 19 Apr 15 18:51 usr

[csr@rhel-lab1 doctests]$ tree usr | more

usr

└── share

 └── doc

 ├── abattis-cantarell-fonts

 │

 ├── NEWS

 │

 └── README.md

 ├── accountsservice

 │

 ├── AUTHORS

 │

 └── README.md

 ├── adcli

 │

 ├── AUTHORS

 │

 ├── ChangeLog

 │

 ├── COPYING

 │

 ├── NEWS

 │

 └── README

 ├── adobe-mappings-cmap

 │

 ├── README.md

 │

 └── VERSIONS.txt

 ├── adobe-mappings-pdf

 │

 └── README.md

 ├── adobe-source-code-pro-fonts

 │

 └── README.md

 ├── alsa-lib

 │

 ├── asoundrc.txt

 

   

 extract a single file from the tar document 

 [csr@rhel-lab1 doctests]$ tar -xzvf documentation.tar.gz usr/share/doc/gdisk/gdisk_test.sh

usr/share/doc/gdisk/gdisk_test.sh

[csr@rhel-lab1 doctests]$ 

[csr@rhel-lab1 doctests]$ tree usr

usr

└── share

 └── doc

 └── gdisk

 └── gdisk_test.sh

 

   

 using gunzip 

 cloud_user@server1: ~ $ ls

audit build init_pass mariadb_repo_setup Public Templates wget-1.19.5-8.el8_1.1.x86_64.rpm

cloud_user@server1: ~ $ gzip wget-1.19.5-8.el8_1.1.x86_64.rpm 

cloud_user@server1: ~ $ ll

total 740

drwxrwxr-x. 2 cloud_user cloud_user 74 Sep 8 2020 audit

drwxrwxr-x. 2 cloud_user cloud_user 55 Sep 8 2020 build

-rw-r--r--. 1 cloud_user cloud_user 1 Apr 30 2021 init_pass

-rwxrwxr-x. 1 cloud_user cloud_user 19519 Sep 9 2020 mariadb_repo_setup

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Public

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Templates

-rw-r--r--. 1 cloud_user cloud_user 729756 Sep 9 2020 wget-1.19.5-8.el8_1.1.x86_64.rpm.gz

 

 unzip it 

 cloud_user@server1: ~ $ gunzip wget-1.19.5-8.el8_1.1.x86_64.rpm.gz 

cloud_user@server1: ~ $ ll

total 760

drwxrwxr-x. 2 cloud_user cloud_user 74 Sep 8 2020 audit

drwxrwxr-x. 2 cloud_user cloud_user 55 Sep 8 2020 build

-rw-r--r--. 1 cloud_user cloud_user 1 Apr 30 2021 init_pass

-rwxrwxr-x. 1 cloud_user cloud_user 19519 Sep 9 2020 mariadb_repo_setup

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Public

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Templates

-rw-r--r--. 1 cloud_user cloud_user 752504 Sep 9 2020 wget-1.19.5-8.el8_1.1.x86_64.rpm

cloud_user@server1: ~ $ 

 

 same apply to bzip 

 cloud_user@server1: ~ $ bzip2 wget-1.19.5-8.el8_1.1.x86_64.rpm 

cloud_user@server1: ~ $ ll

total 744

drwxrwxr-x. 2 cloud_user cloud_user 74 Sep 8 2020 audit

drwxrwxr-x. 2 cloud_user cloud_user 55 Sep 8 2020 build

-rw-r--r--. 1 cloud_user cloud_user 1 Apr 30 2021 init_pass

-rwxrwxr-x. 1 cloud_user cloud_user 19519 Sep 9 2020 mariadb_repo_setup

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Public

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Templates

-rw-r--r--. 1 cloud_user cloud_user 736128 Sep 9 2020 wget-1.19.5-8.el8_1.1.x86_64.rpm.bz2

cloud_user@server1: ~ $ bunzip2 wget-1.19.5-8.el8_1.1.x86_64.rpm.bz2 

cloud_user@server1: ~ $ ll

total 760

drwxrwxr-x. 2 cloud_user cloud_user 74 Sep 8 2020 audit

drwxrwxr-x. 2 cloud_user cloud_user 55 Sep 8 2020 build

-rw-r--r--. 1 cloud_user cloud_user 1 Apr 30 2021 init_pass

-rwxrwxr-x. 1 cloud_user cloud_user 19519 Sep 9 2020 mariadb_repo_setup

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Public

drwxr-xr-x. 2 cloud_user cloud_user 6 May 8 2019 Templates

-rw-r--r--. 1 cloud_user cloud_user 752504 Sep 9 2020 wget-1.19.5-8.el8_1.1.x86_64.rpm

cloud_user@server1: ~ $ 

 

   

 Task 2 

 Using brackets and how to create multiple files 

 cloud_user@server1: ~ $ mkdir -p ~/code/ursula/{cloudform,xml} ~/code/mortimer/json

cloud_user@server1: ~ $ tree code

code

├── mortimer

│

 └── json

└── ursula

 ├── cloudform

 └── xml

5 directories, 0 files

cloud_user@server1: ~ $ 

cloud_user@server1: ~ $ touch ~/code/ursula/{file1,file2,file3}.json ~/code/ursula/file{1,2,3}.xml

cloud_user@server1: ~ $ tree code

code

├── mortimer

│

 └── json

└── ursula

 ├── cloudform

 ├── file1.json

 ├── file1.xml

 ├── file2.json

 ├── file2.xml

 ├── file3.json

 ├── file3.xml

 └── xml

5 directories, 6 files

cloud_user@server1: ~ $ touch ~/code/mortimer/{file1,file2,file3}.cf

cloud_user@server1: ~ $ tree

.

├── audit

│

 ├── devsys05-account-audit.log

│

 └── devsys08-account-audit.log

├── build

│

 ├── devsys12-account-audit.log

│

 └── dnf.log

├── code

│

 ├── mortimer

│

 │

 ├── file1.cf

│

 │

 ├── file2.cf

│

 │

 ├── file3.cf

│

 │

 └── json

│

 └── ursula

│

 ├── cloudform

│

 ├── file1.json

│

 ├── file1.xml

│

 ├── file2.json

│

 ├── file2.xml

│

 ├── file3.json

│

 ├── file3.xml

│

 └── xml

├── init_pass

├── mariadb_repo_setup

├── Public

├── Templates

└── wget-1.19.5-8.el8_1.1.x86_64.rpm

 

 moving files around 

 cloud_user@server1: ~ $ mv ~/code/ursula/*.xml ~/code/ursula/xml/

cloud_user@server1: ~ $ tree

.

├── audit

│

 ├── devsys05-account-audit.log

│

 └── devsys08-account-audit.log

├── build

│

 ├── devsys12-account-audit.log

│

 └── dnf.log

├── code

│

 ├── mortimer

│

 │

 ├── file1.cf

│

 │

 ├── file2.cf

│

 │

 ├── file3.cf

│

 │

 └── json

│

 └── ursula

│

 ├── cloudform

│

 ├── file1.json

│

 ├── file2.json

│

 ├── file3.json

│

 └── xml

│

 ├── file1.xml

│

 ├── file2.xml

│

 └── file3.xml

├── init_pass

├── mariadb_repo_setup

├── Public

├── Templates

└── wget-1.19.5-8.el8_1.1.x86_64.rpm

10 directories, 16 files

cloud_user@server1: ~ $ 

cloud_user@server1: ~ $ mv ~/code/ursula/*.json ~/code/mortimer/json/

cloud_user@server1: ~ $ tree code

code

├── mortimer

│

 ├── file1.cf

│

 ├── file2.cf

│

 ├── file3.cf

│

 └── json

│

 ├── file1.json

│

 ├── file2.json

│

 └── file3.json

└── ursula

 ├── cloudform

 └── xml

 ├── file1.xml

 ├── file2.xml

 └── file3.xml

5 directories, 9 files

cloud_user@server1: ~ $ 

cloud_user@server1: mortimer $ mv *.cf ../ursula/cloudform/

cloud_user@server1: mortimer $ cd

cloud_user@server1: ~ $ tree code

code

├── mortimer

│

 └── json

│

 ├── file1.json

│

 ├── file2.json

│

 └── file3.json

└── ursula

 ├── cloudform

 │

 ├── file1.cf

 │

 ├── file2.cf

 │

 └── file3.cf

 └── xml

 ├── file1.xml

 ├── file2.xml

 └── file3.xml

5 directories, 9 files

cloud_user@server1: ~ $ 

cloud_user@server1: ~ $ cp ~/code/ursula/cloudform/ ~/code/mortimer/ -r

cloud_user@server1: ~ $ tree code

code

├── mortimer

│

 ├── cloudform

│

 │

 ├── file1.cf

│

 │

 ├── file2.cf

│

 │

 └── file3.cf

│

 └── json

│

 ├── file1.json

│

 ├── file2.json

│

 └── file3.json

└── ursula

 ├── cloudform

 │

 ├── file1.cf

 │

 ├── file2.cf

 │

 └── file3.cf

 └── xml

 ├── file1.xml

 ├── file2.xml

 └── file3.xml

6 directories, 12 files

cloud_user@server1: ~ $ rm -rf ~/code/ursula/cloudform/

cloud_user@server1: ~ $ tree code

code

├── mortimer

│

 ├── cloudform

│

 │

 ├── file1.cf

│

 │

 ├── file2.cf

│

 │

 └── file3.cf

│

 └── json

│

 ├── file1.json

│

 ├── file2.json

│

 └── file3.json

└── ursula

 └── xml

 ├── file1.xml

 ├── file2.xml

 └── file3.xml

5 directories, 9 files

cloud_user@server1: ~ $ 

 

   

 task 3 creating softlinks and hardlinks 

 l 

 cloud_user@server1: links $ ll

total 0

cloud_user@server1: links $ touch original 

cloud_user@server1: links $ ll -i #Use -i to show the inode nuber

total 0

12583416 -rw-rw-r--. 1 cloud_user cloud_user 0 Apr 16 01:20 original

cloud_user@server1: links $ 

 

 creating a softlink 

 cloud_user@server1: links $ ln -s original softlink

cloud_user@server1: links $ ll -i

total 0

12583416 -rw-rw-r--. 1 cloud_user cloud_user 0 Apr 16 01:20 original

12583419 lrwxrwxrwx. 1 cloud_user cloud_user 8 Apr 16 01:22 softlink -> original

 

 creating a softlink to a folder, we can notice they have different inode numbers 

 cloud_user@server1: links $ mkdir directory

cloud_user@server1: links $ ln -s directory/ otherdirectory

cloud_user@server1: links $ ls -li

total 0

33560168 drwxrwxr-x. 2 cloud_user cloud_user 6 Apr 16 01:22 directory

12583416 -rw-rw-r--. 1 cloud_user cloud_user 0 Apr 16 01:20 original

12583420 lrwxrwxrwx. 1 cloud_user cloud_user 10 Apr 16 01:22 otherdirectory -> directory/

12583419 lrwxrwxrwx. 1 cloud_user cloud_user 8 Apr 16 01:22 softlink -> original

 

 creating a hardlink we can notice the inode is the same 

 cloud_user@server1: links $ ln original hardlink

cloud_user@server1: links $ ls -li

total 0

33560168 drwxrwxr-x. 2 cloud_user cloud_user 6 Apr 16 01:22 directory

12583416 -rw-rw-r--. 2 cloud_user cloud_user 0 Apr 16 01:20 hardlink

12583416 -rw-rw-r--. 2 cloud_user cloud_user 0 Apr 16 01:20 original

12583420 lrwxrwxrwx. 1 cloud_user cloud_user 10 Apr 16 01:22 otherdirectory -> directory/

12583419 lrwxrwxrwx. 1 cloud_user cloud_user 8 Apr 16 01:22 softlink -> original

 

 creating a softlink to fstab 

 cloud_user@server1: links $ ln -s /etc/fstab softtab

cloud_user@server1: links $ ll -i

total 0

33560168 drwxrwxr-x. 2 cloud_user cloud_user 6 Apr 16 01:22 directory

12583416 -rw-rw-r--. 2 cloud_user cloud_user 0 Apr 16 01:20 hardlink

12583416 -rw-rw-r--. 2 cloud_user cloud_user 0 Apr 16 01:20 original

12583420 lrwxrwxrwx. 1 cloud_user cloud_user 10 Apr 16 01:22 otherdirectory -> directory/

12583419 lrwxrwxrwx. 1 cloud_user cloud_user 8 Apr 16 01:22 softlink -> original

12583421 lrwxrwxrwx. 1 cloud_user cloud_user 10 Apr 16 01:25 softtab -> /etc/fstab

 

 now a hardlink to fstab 

 cloud_user@server1: links $ ln /etc/fstab hardtab

ln: failed to create hard link 'hardtab' => '/etc/fstab': Operation not permitted

cloud_user@server1: links $ sudo ln /etc/fstab hardtab

[sudo] password for cloud_user: 

cloud_user@server1: links $ ll -i

total 4

33560168 drwxrwxr-x. 2 cloud_user cloud_user 6 Apr 16 01:22 directory

12583416 -rw-rw-r--. 2 cloud_user cloud_user 0 Apr 16 01:20 hardlink

 71951 -rw-r--r--. 2 root root 475 May 8 2019 hardtab

12583416 -rw-rw-r--. 2 cloud_user cloud_user 0 Apr 16 01:20 original

12583420 lrwxrwxrwx. 1 cloud_user cloud_user 10 Apr 16 01:22 otherdirectory -> directory/

12583419 lrwxrwxrwx. 1 cloud_user cloud_user 8 Apr 16 01:22 softlink -> original

12583421 lrwxrwxrwx. 1 cloud_user cloud_user 10 Apr 16 01:25 softtab -> /etc/fstab

 

 finding where  a hardlink belongs using the inode to search 

 cloud_user@server1: links $ find / -inum 71951 2> /dev/null

/proc/2428/oom_adj

/etc/fstab

/home/cloud_user/links/hardtab

 

 Now we are going to find by inode number and also execute an ls -li 

 cloud_user@server1: links $ find / -inum 71951 -exec ls -li {} \; 2> /dev/null

71951 -rw-r--r--. 1 root root 0 Apr 16 01:27 /proc/2428/oom_adj

71951 -rw-r--r--. 2 root root 475 May 8 2019 /etc/fstab

71951 -rw-r--r--. 2 root root 475 May 8 2019 /home/cloud_user/links/hardtab

cloud_user@server1: links $ 

 

 cloud_user@server1: links $ find ./ -inum 12583416

./original

./hardlink

cloud_user@server1: links $ 

 

   

 Task 4 

 share directory for tree users 

 creating a working folder 

 loud_user@server1: ~ $ sudo -i

[sudo] password for cloud_user: 

root@server1: ~ # mkdir /project-phoenix

root@server1: ~ # ls

anaconda-ks.cfg aws-cfn-bootstrap-1.4 original-ks.cfg

root@server1: ~ # pwd

/root

root@server1: ~ # cd ..

root@server1: / # ls

bin boot data dev etc home lib lib64 media mnt opt proc project-phoenix root run sbin srv swapfile sys tmp usr var

root@server1: / # cd /home/

root@server1: home # ls -ld /project-phoenix/

drwxr-xr-x. 2 root root 6 Apr 16 02:11 /project-phoenix/

 

 creating users 

 root@server1: home # 

root@server1: home # useradd -m -g users -G devops snuffy ; passwd snuffy

Changing password for user snuffy.

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.

root@server1: home # useradd -m -g devops -G users ursula ; passwd ursula

Changing password for user ursula.

New password: 

Retype new password: 

Sorry, passwords do not match.

passwd: Authentication token manipulation error

root@server1: home # passwd ursula

Changing password for user ursula.

New password: 

Retype new password: 

Sorry, passwords do not match.

^[[Apasswd: Authentication token manipulation error

root@server1: home # passwd ursula

Changing password for user ursula.

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.

root@server1: home # useradd -m -g sysadmins -G users mortimer ; passwd mortimer

Changing password for user mortimer.

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.

root@server1: home # cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin

systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

polkitd:x:998:996:User for polkitd:/:/sbin/nologin

unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin

sssd:x:996:993:User for sssd:/:/sbin/nologin

insights:x:995:992:Red Hat Insights:/var/lib/insights:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

chrony:x:994:991::/var/lib/chrony:/sbin/nologin

cloud_user:x:1001:1001::/home/cloud_user:/bin/bash

ssm-user:x:1002:1002::/home/ssm-user:/bin/bash

qemu:x:107:107:qemu user:/:/sbin/nologin

rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin

pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin

gluster:x:993:986:GlusterFS daemons:/run/gluster:/sbin/nologin

saslauth:x:992:76:Saslauthd user:/run/saslauthd:/sbin/nologin

geoclue:x:991:985:User for geoclue:/var/lib/geoclue:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

dnsmasq:x:984:984:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

pipewire:x:983:982:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin

colord:x:982:981:User for colord:/var/lib/colord:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

radvd:x:75:75:radvd user:/:/sbin/nologin

gnome-initial-setup:x:981:980::/run/gnome-initial-setup/:/sbin/nologin

avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

setroubleshoot:x:980:979::/var/lib/setroubleshoot:/sbin/nologin

flatpak:x:979:978:User for flatpak system helper:/:/sbin/nologin

devops:x:1003:1003:DevOps Admin Service Account:/home/devops:/bin/bash

mysql:x:977:976:MySQL server:/var/lib/mysql:/sbin/nologin

snuffy:x:1004:100::/home/snuffy:/bin/bash

ursula:x:1005:1003::/home/ursula:/bin/bash

mortimer:x:1006:49999::/home/mortimer:/bin/bash

 

 Set folder permissions 

 set the grouup to users and change permissions to folder 

 root@server1: home # 

root@server1: home # ls -ld /project-phoenix/

drwxr-xr-x. 2 root root 6 Apr 16 02:11 /project-phoenix/

root@server1: home # chown .users /project-phoenix/

root@server1: home # ls -ld /project-phoenix/

drwxr-xr-x. 2 root users 6 Apr 16 02:11 /project-phoenix/

root@server1: home # chmod g+w /project-phoenix/

root@server1: home # ls -ld /project-phoenix/

drwxrwxr-x. 2 root users 6 Apr 16 02:11 /project-phoenix/

root@server1: home # 

 

 test permissions 

 root@server1: home # su snuffy 

snuffy@server1: home $ touch /project-phoenix/snuffy.file1

snuffy@server1: home $ exit

exit

root@server1: home # sudo - ursula

sudo: -: command not found

root@server1: home # su - ursula

[ursula@server1 ~]$ touch /project-phoenix/ursula.file1

[ursula@server1 ~]$ exit

logout

root@server1: home # su - mortimer

[mortimer@server1 ~]$ touch /project-phoenix/mortimer.file1

[mortimer@server1 ~]$ logout

root@server1: home # ls -l /project-phoenix/

total 0

-rw-r--r--. 1 mortimer sysadmins 0 Apr 16 02:18 mortimer.file1

-rw-r--r--. 1 snuffy users 0 Apr 16 02:18 snuffy.file1

-rw-r--r--. 1 ursula devops 0 Apr 16 02:18 ursula.file1

root@server1: home # 

 

 Change so all users has the same ownership 

 root@server1: home # ls -ld /project-phoenix/ ; ls -l /project-phoenix/

drwxrwxr-x. 2 root users 68 Apr 16 02:18 /project-phoenix/

total 0

-rw-r--r--. 1 mortimer sysadmins 0 Apr 16 02:18 mortimer.file1

-rw-r--r--. 1 snuffy users 0 Apr 16 02:18 snuffy.file1

-rw-r--r--. 1 ursula devops 0 Apr 16 02:18 ursula.file1

root@server1: home # chmod g+s /project-phoenix/

root@server1: home # ls -ld /project-phoenix/

drwxrwsr-x. 2 root users 68 Apr 16 02:18 /project-phoenix/

root@server1: home # su - snuffy

Last login: Tue Apr 16 02:17:55 UTC 2024 on pts/0

[snuffy@server1 ~]$ touch /project-phoenix/snuffy.file2

[snuffy@server1 ~]$ exxit

bash: exxit: command not found...

e^C

[snuffy@server1 ~]$ exit

logout

root@server1: home # su - ursula

Last login: Tue Apr 16 02:18:22 UTC 2024 on pts/0

[ursula@server1 ~]$ touch /project-phoenix/ursula.file2

[ursula@server1 ~]$ exit

logout

root@server1: home # su - mortimer 

Last login: Tue Apr 16 02:18:36 UTC 2024 on pts/0

[mortimer@server1 ~]$ touch /project-phoenix/mortimer.file2

[mortimer@server1 ~]$ exit

logout

root@server1: home # ls -ld /project-phoenix/

drwxrwsr-x. 2 root users 130 Apr 16 02:20 /project-phoenix/

root@server1: home # ls -l /project-phoenix/

total 0

-rw-r--r--. 1 mortimer sysadmins 0 Apr 16 02:18 mortimer.file1

-rw-r--r--. 1 mortimer users 0 Apr 16 02:20 mortimer.file2

-rw-r--r--. 1 snuffy users 0 Apr 16 02:18 snuffy.file1

-rw-r--r--. 1 snuffy users 0 Apr 16 02:20 snuffy.file2

-rw-r--r--. 1 ursula devops 0 Apr 16 02:18 ursula.file1

-rw-r--r--. 1 ursula users 0 Apr 16 02:20 ursula.file2

 

 make another change to make sure users cannot delete files from other users 

 root@server1: home # chmod +t /project-phoenix/

root@server1: home # ls -ld /project-phoenix/

drwxrwsr-t. 2 root users 130 Apr 16 02:20 /project-phoenix/ # Notice there is a t at the end of the permissions

root@server1: home # 

root@server1: home # chown .users /project-phoenix/*.* # change all file groups to users

root@server1: home # ls -l /project-phoenix/

total 0

-rw-r--r--. 1 mortimer users 0 Apr 16 02:18 mortimer.file1

-rw-r--r--. 1 mortimer users 0 Apr 16 02:20 mortimer.file2

-rw-r--r--. 1 snuffy users 0 Apr 16 02:18 snuffy.file1

-rw-r--r--. 1 snuffy users 0 Apr 16 02:20 snuffy.file2

-rw-r--r--. 1 ursula users 0 Apr 16 02:18 ursula.file1

-rw-r--r--. 1 ursula users 0 Apr 16 02:20 ursula.file2