Vijay Krishnavanshi
Open Source Developer at KDE
What are we gonna talk about?
Abhishek Bundela @abhibundela
Vijay Krishnavanshi
@vkrishnavanshi
Content
What is a file system and why should you care about it?
A file-system is the methods and data structures that an operating system uses to keep track of files on a disk or partition*
Before a disk or partition can be used as a file system its data structures need to be initialised.
FS Name | Year Introduced | Original OS | Max File Size | Max FS Size | Journaling |
---|---|---|---|---|---|
FAT16 | 1983 | MSDOS V2 | 4GB | 16MB to 8GB | N |
FAT32 | 1997 | Windows 95 | 4GB | 8GB to 2TB | N |
NTFS | 1993 | Windows NT | 16EB | 16EB | Y |
HFS+ | 1998 | Mac OS | 8EB | ? | N |
ext2 | 1993 | Linux | 16GB to 2TB4 | 2TB to 32TB | N |
ext3 | 1999 | Linux | 16GB to 2TB4 | 2TB to 32TB | Y |
XFS | 1994 | IRIX | 9EB | 9EB | Y |
Types of most common file-systems -
Which file system should you use?
Well it depends on your choice like what you want to do with it. If you need to set up a server you should use centralised file system as you would wan to have some control over you user.
Linux uses centralised file system as you will find everything under root (/) that is one of the reason why you se linux everywhere on servers.
For Linux, ext4 or ext3 are most popular file-systems, because they are journaled.
Say you have root (/)
Now What ?
Lets walk through / directory :-
/bin - the bin directory contains several useful commands that are of use to both the system administrator as well as non-privileged users. It usually contains the shells like bash, csh, etc.... and commonly used commands like cp, mv, rm, cat, ls.
All that a root user can need to repair a system is here.
/boot - directory stores data that is used before the kernel begins executing user-mode programs.
This directory store GRUB. Next time you grub goes missing you know where to find it.
/dev - is the location of special or device files. Here you can find you hard drives, pen drives, speakers and what not. Anything that is connected to your system is listed here.
/etc - It is the configuration centre of your system. It contains all system related configuration files in here or in its sub-directories.
Important places /etc/apt/, /etc/sudoers
/initrd.img - This is the RAM disk that can then be mounted as the root file system and programs can be run from it.
/lib - It contains all that library that is required by the commands in /bin and /sbin
/lost+found - Its exactly what it sounds :P
Sometimes when your system might crash or a power failure might take the machine down. Either way, at the next boot, a lengthy filesystem check using fsck is done. Fsck goes through the system and tries to recover any corrupt files that it finds. The result of this recovery operation is placed in this directory.
/media - Its dedicated directory for removable medias in newer systems
/mnt - This is a generic mount point under which you mount your filesystems or devices.
You can mount any of the removable drive or new partition under this point using command mount.
/opt - This directory is reserved for all the software and add-on packages that are not part of the default installation.
/proc - is very special in that it is also a virtual filesystem. Why?
Let's Inspect it.
Important Directories: /proc/bin/, /proc/net/
/root - This is the home directory of the System Administrator, 'root'.
/sbin - contains the important root related command files.
/usr - is shareable, read-only directory. That means that /usr directory is shareable between various FHS-compliant hosts and must not be written to. Any information that is host-specific or varies with time is stored elsewhere.
/tmp - for temporary files.
'Mountable' directories are: '/home', '/mnt', '/tmp', '/usr' and '/var'. Essential for booting are: '/bin', '/boot', '/dev', '/etc', '/lib', '/proc' and '/sbin'.
/var - Contains variable data like system logging files, mail and printer spool directories, and transient and temporary files. Some portions of /var are not shareable between different systems. For instance, /var/log, /var/lock, and /var/run. Other portions may be shared, notably /var/mail, /var/cache/man, /var/cache/fonts, and /var/spool/news.
Linux Security Fundamentals
Content
User Management
Authentication files
/etc/passwd : Stores users and properties related to users
/etc/shadow : Stores authentication properties specific to users
/etc/group : stores group as well as users in the secondary groups
/etc/security/opasswd : Stores old password used
Commands to manipulate files
Privilege Management
Sudo is a program to control users access to run commands as privileged users (root).
VISUDO : Edit the sudoers file. Sudoers allows particular users to run various commands as the root, without needing the root password.
Linux Permissions
Unix permissions are limited to three categories for files and directories.
Following permissions are available.
Access Control
Access Control provides an additional, more flexible permission mechanism for file systems. It is designed to assist with UNIX file permissions. ACL allows you to give permissions for any user or group to any disc resource.
File Attributes
Pluggable Authentication Module
Linux Pluggable Authentication Modules (PAM) provide dynamic authentication support for applications and services in a linux.
E.g. Logging in, Setting up accounts etc.
Users can add the modules to change the behaviour of these.
Pam Groups
Selinux
Security-Enhanced Linux (SELinux) is a Linux kernal security module that provides a mechanism for supporting access control security policies. It limits damage when other security layer failed. Selinux implements mandatory access control means anything if doesn't given explicit permission it will deny the services.
Modes
Any Questions ?
You can also mail us.
vijaykrishnavanshi@gmail.com
abhi.bundela1996@gmail.com
Thank You :)
By Vijay Krishnavanshi