Linux/Filesystems permissions

File system permissions controls the ability of the users to view, change, navigate, and execute the contents of the file system.

Objetives

 * Understand and format file systems
 * Understand file systems permissions
 * Understand setuid and setgid bits
 * Learn chmod commands:

Setuid
setuid and setgid (short for "set user ID" and "set group ID")[1] are Unix access rights flags that allow users to run an executable with the permissions of the executable's owner or group respectively and to change behaviour in directories. The  and   flags only have effect on binary executable files. Set these bits on scripts, like bash, perl or python do not have any effect.

chmod examples
Before: ls -la file.txt -rwxr-xr-x  1 root         root    31 Nov 27 11:34 file.txt

stat file.txt File: file.txt Size: 31       	Blocks: 8          IO Block: 4096   regular file Device: fd00h/64768d	Inode: 13         Links: 1 Access: (0755/-rwxr-xr-x) Uid: (    0/    root)   Gid: (    0/    root) Access: 2019-11-27 11:34:54.610196393 +0400 Modify: 2019-11-27 11:34:49.662193415 +0400 Change: 2019-11-27 11:34:49.666193418 +0400 Birth: -

chmod ug+s file.txt

After: ls -la file.txt -rwsr-sr-x 1 root root 31 Nov 27 11:34 file.txt

stat file.txt File: file.txt Size: 31       	Blocks: 8          IO Block: 4096   regular file Device: fd00h/64768d	Inode: 13         Links: 1 Access: (6755/-rwsr-sr-x) Uid: (    0/    root)   Gid: (    0/    root) Access: 2019-11-27 11:34:54.610196393 +0400 Modify: 2019-11-27 11:34:49.662193415 +0400 Change: 2019-11-27 12:11:20.637362248 +0400 Birth: -

Hidden and system attributes
Linux does not regard file systems' hidden and system attributes like Windows does. Instead, file and directory entry names starting with a dot are considered hidden, and can optionally be set to be revealed in file managers and command line tools.