LPIC-101
Jump to navigation
Jump to search
LPIC-101
What does Linux mean?⌘
Outline⌘
- First Day:
- Session I:
- Introduction to the course
- Session II:
- Topic 101: System Architecture
- Session III:
- Topic 102: Linux Installation and Package Management
- Session IV:
- Topic 102: Linux Installation and Package Management
- Session I:
Outline #2⌘
- Second Day:
- Session I:
- Topic 103: GNU and Unix Commands
- Session II:
- Topic 103: GNU and Unix Commands
- Session III:
- Topic 104: Devices, Linux Filesystems, Filesystem Hierarchy Standard
- Session IV:
- Topic 104: Devices, Linux Filesystems, Filesystem Hierarchy Standard
- Session I:
First Day - Session I⌘
LPI certification path⌘
LPIC-101 exam⌘
- Detailed Objectives: https://www.lpi.org/our-certifications/exam-101-objectives
- Certification Authorities:
- PearsonVUE: http://www.pearsonvue.com/
- Prometric: https://www.prometric.com/en-us/Pages/home.aspx
- Exam Cost: 188$ (prizes in local currency updated on a daily basis)
- Exam Duration: 90m (60 questions)
- Exam Passing Score: 500 in 200 - 800 scale
- Certificate Expiration Date: 5 years
- Question Type: closed
- Exam Topic Weigths
References⌘
- Books:
- R. Tracy. "LPIC-1/CompTIA Linux+ Certification All-in-One Exam Guide". McGraw-Hill Osborne Media, 1st edition
- R. W. Smith. "CompTIA Linux+ Complete Study Guide (Exams LX0-101 and LX0-102)". Wiley Publishing, Inc., 2nd edition
- A. Header, S. A. Schneiter, B. G. Pessanba and J. Stanger. "LPI Linux Certification in a Nutshell". O'Reilly, 3rd edition
- Websites:
- TLDP (The Linux Documentation Project) website: http://www.tldp.org/
- Debian documentation: https://www.debian.org/doc/
- Ubuntu documentation: https://www.ubuntu.com/
- RedHat documentation: https://access.redhat.com/site/documentation/en-US/
- Internet
- Man pages
Introduction to the lab⌘
Lab components:
- Laptop with host OS
- Virtual Machines with Linux on:
- VMs: Ubuntu, CentOS
- Credentials:
- admin user: root / terminal
- non-admin user: terminal / terminal
- VirtualBox:
- 64-bit version (click here to download)
- Snapshots (top right corner)
- Press right "Control" key to release
First Day - Session II⌘
101.1 Determine and configure hardware
settings⌘
Computer architecture⌘
Peripherals⌘
- Peripheral - device that is used to put information into or get information out of the computer
- Types of peripherals (by purpose):
- input - interacts or sends data to the computer
- output - provides output to the user from the computer
- storage - stores data processed by the computer
- Types of peripherals (by location):
- integrated - peripherals located inside the computer
- external - peripherals located outside the computer
- HotPlug - function allowing replacing the device without a need to reboot the system
Linux kernel & kernel modules⌘
Mass storage devices⌘
- Interfaces:
- SATA (Serial ATA)
- SCSI (Small Computer System Interface)
- SAS (Serial Attached SCSI)
- USB (Universal Serial Bus)
- Naming convention:
- starts with sd (for Scsi Device)
- followed by a-ZZ representing an order in which the device is found
- ends with 1-63 representing partition number
- Partition types:
- primary - 4 per disk
- extended - 1 per disk
- logical - 59 per disk
Hardware management⌘
- Management tools:
- lspci - displays devices connected to PCI bus
- lsusb - displays devices connected to USB bus
- lsmod - displays loaded kernel modules
- modprobe - adds / removes kernel modules
- Virtual filesystems:
- /dev (devfs) - contains device files for all the devices
- /proc (procfs) - contains files defining runtime kernel parameters
- /sys (sysfs) - contains files representing kernel objects, their attributes and relations
- /tmp (tmpfs) - contains temporary system files
- Lab Exercise 101.1
101.2 Boot the system⌘
Basic terms⌘
- SMPS (Switching Mode Power Supply)
- ROM (Read-Only Memory)
- RAM (Random-Access Memory)
- BIOS (Basic Input/Output System)
- UEFI (Unified Extensible Firmware Interface)
- POST (Power-On Self-Test)
- MBR (Master Boot Record)
- PBR (Partition Boot Record)
- GPT (GUID Partition Table)
- LILO (LInux LOader)
- GRUB (GRand Unified Bootloader)
- INITRD (INITial RamDisk)
- INITRAMFS (INITial RAMFileSystem)
- ROOTFS (ROOT FileSystem)
Boot sequence⌘
- SMPS is turned on.
- BIOS is loaded from ROM into RAM.
- BIOS performs POST.
- BIOS checks the boot order.
- BIOS loads MBR containing Stage 1 bootloader into RAM.
- Stage 1 bootloader loads Stage 1.5 bootloader into RAM.
- Stage 1.5 bootloader loads Stage 2 bootloader into RAM.
- Stage 2 bootloader loads kernel into RAM and passes parameters into it.
- Kernel loads INITRD or INITRAMFS into RAM.
- With a help of tools located in INITRD / INITRAMFS kernel attempts to mount the ROOTFS.
- Kernel executes the "init" script.
- Init forks and executes System V scripts.
Interaction with BIOS and GRUB⌘
- F2 - enters BIOS menu
- F12 - enters boot order menu
- Esc - enters GRUB menu
- c - enters GRUB CLI
- e - modifies GRUB entry
- Ctrl+x - saves changes and boots the system
Boot events⌘
- Logging daemons:
- klogd - logs Linux kernel messages
- syslogd - logs Linux system messages
- Log files:
- /var/log/messages - contains messages logged by klogd
- /var/log/syslog - contains messages logged by syslogd
- Management tools:
- dmesg - prints kernel ring buffer
- Lab Exercise 101.2
101.3 Change runlevels / boot targets and shutdown or reboot system⌘
Runlevels (boot targets)⌘
- Runlevel (boot target) - defines mode of the operating system
- Linux runlevels (boot targets):
Runlevel | Boot target | Meaning |
---|---|---|
0 | poweroff.target | Halt |
1 | rescue.target | Single-user mode |
2, 3, 4 | multi-user.target | Multi-user mode with network |
5 | graphical.target | Multi-user mode with network and X11 |
6 | reboot.target | Reboot |
Init, System V, Systemd and Upstart⌘
- Init - main system process executed by kernel
- System V - defines an order in which startup scripts are executed
- Systemd - System V descendant (adopted by leading distributions)
- Upstart - System V descendant (adopted by Ubuntu up to Wily release)
- Both Systemd and Upstart fix the problem of fixed order in System V
Runlevels management⌘
- Management tools:
- runlevel - displays current runlevel
- init - changes current runlevel once
- telinit - changes current runlevel once
- shutdown - brings the system down and powers the computer off
- halt - brings the system down
- poweroff - stops the system (symlink to halt)
- reboot - reboots the system
- wall - sends notification to logged in users
- Configuration files:
- /etc/inittab - contains information regarding default runlevel
- /etc/init.d/* - system processes start-stop scripts
Boot targets management⌘
- Management tools:
- systemctl isolate <boot.target> - changes "runlevel" temporarily
- systemctl <enable / disable> <boot.target> - enables / disables "runlevel"
- systemctl set-default <boot.target> - changes "runlevel" permanently
- Configuration files:
- /etc/systemd - systemd configuration
- /usr/lib/systemd - units configuration
- Lab Exercise 101.3
First Day - Sessions III and IV⌘
102.1 Design hard disk layout⌘
Disk partitioning⌘
- Basic terms:
- Partition - logical storage unit on the hard disk
- Mount point - directory in the filesystem on which an additional filesystem is mounted
- Boot flag - 1-bit value in partition table used by Windows-type boot loader to elect bootable partition
- Swap - storage space used when the systems runs out of RAM space
- LVM (Logical Volume Manager) - high-end disks and partitions manager
- Designing disk layout:
- Should I partition my disk or install the system on the entire disk without partitioning?
- Should I use the default settings when partitioning the disk or should I do it manually?
- Should I use high-end disks and partitions manager like LVM or not?
- How much Swap space should I allocate for the system?
- Which directories in the filesystem should I place on separate partitions?
- What should be the size of each partition?
CHS (Cylinder-Head-Sector)⌘
- HDD is a block device with a block size of 512 bytes (aka sector).
- Lab Exercise 102.1
102.2 Install a boot manager⌘
GRUB configuration⌘
- GRUB 1:
- /boot/grub/menu.lst - main configuration file
- GRUB 2:
- /boot/grub/grub.cfg - main configuration file
- /etc/grub.d/* - GRUB 2 templates
- /etc/default/grub - GRUB settings
- update-grub - generates /boot/grub/grub.cfg file
- grub-mkconfig - generates GRUB 2 configuration file
- Full documentation available at GNU GRUB Manual 2.00
GRUB installation⌘
- GRUB 1:
# grub # runs GRUB CLI > root (hdX,Y) # specifies rootfs location > setup (hdX) # installs GRUB into the first sector of specified disk
- GRUB 2:
# grub-install /dev/sdX # installs GRUB into the first sector of specified disk
Superblocks⌘
- Basic terms:
- Filesystem - controls how the data is stored and retrieved from the mass storage
- Metadata - stores structural information about the filesystem
- Superblock - metadata structure used to store information about:
- filesystem type
- filesystem size
- filesystem status
- other metadata structures
- Basic commands:
- dumpe2fs [filesystem] | grep -i superblock - displays location of primary and backup superblocks
- fsck -b [location] [filesystem] - attempts to repair the filesystem using the alternative superblock
- Lab Exercise 102.2
- Shared library - libraries loaded by the program during its startup
- Naming convention:
lib[library name].so.[version]
- Shared libraries location:
- /lib - primary hierarchy
- /lib64 - primary hierarchy (64-bit libraries)
- /usr/lib - secondary hierarchy
- /usr/lib64 - secondary hierarchy (64-bit libraries)
- /usr/local/lib - tertiary hierarchy
- /usr/local/lib64 - tertiary hierarchy (64-bit libraries)
- /*/lib - other locations
- /*/lib64 - other locations (64-bit libraries)
- Configuration files:
- /etc/ld.so.conf - contains new-line separated list of directories in which to look for shared libraries
- /etc/ld.so.cache - contains an ordered list of candidate libraries
- Management tools:
- ldd - lists shared library dependencies for the binary
- ldconfig - creates /etc/ld.so.cache file based on the /etc/ld.so.conf file
- Environmental variables:
- LD_LIBRARY_PATH - contains colon-separated list of directories in which to temporarily look for additional shared libraries
- Lab Exercise 102.3
102.4 Use Debian package management⌘
Debian package management system⌘
- Debian package managers:
- .deb - standard Debian packages extension
- DPKG (Debian PacKaGe) - low-end Debian package manager
- APT (Advanced Packaging Tool) - high-end Debian package manager
- Configuration files:
- /etc/dpkg/dpkg.conf - contains DPKG configuration
- /etc/apt/apt.conf - contains APT configuration
- /etc/apt/sources.list - contains list of Debian repositories
- Management tools:
- dpkg - interface to DPKG
- dpkg-reconfigure - reconfigures options of already installed packages
- apt / apt-get - interfaces to APT
- apt-cache - interface to APT cache
- aptitude - alternative to APT
Debian repositories configuration⌘
- /etc/apt/sources.list:
deb [URL] [release(-[pocket])] [components] deb-src [URL] [release(-[pocket])] [components]
- deb - repository of pre-compiled binary packages
- deb-src - repository of source packages
- URL - URL of the repository
- distribution - release name
- components:
- main - packages compliant with DFSG
- contrib - packages depending on packages non-compliant with DFSG
- non-free - packages non-compliant with DFSG
- Debian repository list generator: http://debgen.simplylinux.ch/
Debian packages management⌘
- Install package:
- dpkg -i [deb package]
- apt-get install [package name]
- Uninstall package:
- dpkg -r [package name]
- apt-get remove [package name]
- Upgrade package:
- dpkg -i [deb package]
- apt-get update; apt-get install [package name]
- Upgrade all packages:
- apt-get update; apt-get upgrade
Debian packages management #2⌘
- Display package using specific file:
- dpkg -S [file]
- Display files installed by the package:
- dpkg -L [package name]
- Display package dependencies:
- dpkg -I [deb package]
- apt-cache showpkg [package name]
- Display package version:
- dpkg -l [package name]
- Lab Exercise 102.4
102.5 Use RPM and YUM package management⌘
RedHat package management system⌘
- RedHat package managers:
- .rpm - standard RedHat packages extension
- RPM (RPM Package Manager) - low-end RedHat package manager
- YUM (Yellowdog Updater, Modified) - high-end RedHat package manager
- Configuration files:
- /etc/rpmrc - contains RPM configuration
- /etc/yum.conf - contains YUM configuration
- /etc/yum.repos.d - contains list of RedHat repositories
- Management tools:
- rpm - interface to RPM
- yum - interface to YUM
- rpm2cpio - converts rpm package to cpio archive
- yumdownloader - downloads rpm package from yum repository
RedHat repositories configuration⌘
- /etc/yum.repos.d:
[section] name=[name] baseurl=[URL] enabled=[0-1] gpgcheck=[0-1] gpgkey=[URL]
- section - specifies repository ID
- name - specifies human-readable repository name
- baseurl - URL of the repository
- enabled - disables / enables the repository
- gpgcheck - disables / enables GPG signature-checking during packages installation
- gpgkey - specifies location of repository public key
RedHat packages management⌘
- Install package:
- rpm -i [rpm package]
- yum install [package name]
- Uninstall package:
- rpm -e [package name]
- yum remove [package name]
- Upgrade package:
- rpm -U [rpm package]
- yum update [package name]
- Upgrade all packages:
- yum update
RedHat packages management #2⌘
- Display package using specific file:
- rpm -qf [file]
- Display files installed by the package:
- rpm -ql [package name]
- Display package dependencies:
- rpm -qR [rpm package]
- Display package version:
- rpm -qa [package name]
- Lab Exercise 102.5
Second Day - Sessions I and II⌘
103.1 Work on the command line⌘
Linux shell⌘
- Shell - command-line interpreter that provides traditional user interface to Unix-like systems
- Virtual terminal - conceptual combination of the keyboard and display for a computer user interface
- Bash (Bourne Again Shell)
- Basic shell commands:
- bash - executes new bash process
- man - displays man page for the command
- uname - displays system information
- pwd - displays current working directory
- echo - prints into the standard output device
Environmental variables⌘
- Environmental variable - variable defining a behavior of the environment
- Management tools:
- env - displays set environmental variables
- export - causes the environmental variable to be inherited by child processes
- set - sets a value of the environmental variable
- unset - unsets the environmental variable
- The most common environmental variables:
- HOSTNAME - system hostname
- USERNAME - username
- PATH - paths in which to search for executables
- PWD - current working directory
- LANG - locale category
Shell I/O streams⌘
- stdin:
- standard input
- file descriptor 0
- example: keyboard
- stdout:
- standard output
- file descriptor 1
- example: display
- stderr:
- standard errors output
- file descriptor 2
- example: log file
Bash history⌘
- Bash history management:
- ~/.bash_history - contains history of commands executed in bash
- history - displays history of commands executed in bash
- Re-executing commands:
- !! - executes the most recent command
- !n - executes n-th command from the history
- !-n - executes the command that is n-th from the end in the history
- ![string] - executes the most recent command which starts with the string
- !?[string]? - executes the most recent command which contains the string
Linux paths⌘
- Absolute vs relative paths:
- absolute path - full path (the same regardless of the working directory)
- relative path - a path relative to the working directory
- Path shortcuts:
- . - current directory
- .. - parent directory
- ~ - user home directory
- Programs execution:
- using absolute path: i.e. /usr/local/bin/program
- using relative path: i.e. ./program
- Lab Exercise 103.1
103.2 Process text streams using filters⌘
Filter commands⌘
- cat - concatenates files and prints on the standard output
- head - outputs the first part of files
- tail - outputs the last part of files
- nl - numbers lines of files
- wc - prints newline, word, and byte counts for each file
- sort - sorts lines of text files
- uniq - reports or omits repeated lines
- expand - converts tabs to spaces
- unexpand - converts spaces to tabs
Filter commands #2⌘
- fmt - simple optimal text formatter
- cut - remove sections from each line of files
- join - joins lines of two files on a common field
- paste - merges lines of the file
- pr - converts text files for printing
- od - dumps files in octal and other formats
- split splits a file into pieces
- tr - translates or deletes characters
- sed - stream editor for filtering and transforming text
- Lab Exercise 103.2
103.3 Perform basic file management⌘
File management commands⌘
- touch - makes files / changes file timestamps
- mkdir - makes directories
- rm - removes files or directories
- rmdir - removes empty directories
- ls - lists directory contents
- file - determines file type
- cp - copies files and directories
- mv - moves files and directories
- dd - converts and copies a file
Archives⌘
- Archive types:
- TAR (Tape ARchive) - base UNIX archiving format, no compression
- CPIO (CoPy In/Out) - base UNIX archiving format, no compression
- GZIP (Gnu ZIP) - base GNU compression utility
- BZIP2 (Burrows ZIP 2) - open-source compression utility
- Management tools:
- tar - tar archive management tool
- cpio - cpio archive management tool
- gzip / gunzip - compresses or expands files (GZIP)
- bzip2 / bunzip2 - compresses or expands files (BZIP2)
Globbing⌘
- ? - matches any single character
- * - matches any string including an empty string
- [character1character2] - matches any single character from character class
- ![character1character2] - matches any single character out of character class
- [character1-character2] - maches any single character from character range
- ![character1-character2] - maches any single character out of character range
- Lab Exercise 103.3
103.4 Use streams, pipes and redirects⌘
Streams⌘
- > - redirects output from stdout to the file and overwrites it
- >> - redirects output from stdout to the file and appends it
- &> - redirects output from stdout and stderr to the file and overwrites it
- &>> - redirects output from stdout and stderr to the file and appends it
- descriptor1>&descriptor2 - redirects output from descriptor1 to descriptor2
- < - redirects the output from the file to stdin
- << - redirects the output from "here document" to stdin
Pipes and redirects⌘
- Pipe - redirects output of one command to the input of another command:
command1 | command2
- Redirect - redirects output of one command to argument of another command:
command2 `command1` command2 $(command1) command2 -exec command1
- Writing to standard output and file simultaneously:
echo test | tee /tmp/test_output
- Executing command on multiple files:
find ~/ | xargs echo
- Lab Exercise 103.4
103.5 Create, monitor and kill processes⌘
Processes and jobs⌘
- Process - any running program with its own address space
- Daemon - process which runs in the background
- Job - process started from the shell interactively
- Foreground - process state in which terminal input is directed to process input
- Background - process state in which terminal input is directed to shell input
- Signal - allows interaction with processes
Linux signals⌘
- Common signals:
- SIGHUP (1) - hangup detected on controlling terminal or death of controlling process
- SIGINT (2) - interrupt from keyboard
- SIGKILL (9) - kill signal
- SIGTERM (15) - termination signal
- SIGSTP (18) - stop typed at terminal
Processes management⌘
- ps - displays a snapshot of the current processes
- top - displays dynamically updated list of the current processes
- jobs - displays a snapshot of the current jobs
- kill - sends a signal to the process
- fg - restarts the job in the foreground
- bg - restarts the job in the background
- nohup - runs a command immune to hangups
- & - runs the process in the background
- Lab Exercise 103.5
103.6 Modify process execution priorities⌘
Process execution priorities⌘
- Priorities:
- there are 40 priorities in range from -20 to 19
- the smaller number, the higher priority
- processes started by regular users have priority equal to 0 by default
- Management tools:
- nice - runs the program with specified priority
- renice - changes priority of the running process
- Lab Exercise 103.6
103.7 Search text files using regular expressions⌘
Regular expressions⌘
- Regular expression - sequence of characters which form a search pattern
- Regular expression types:
- basic - Unix-like regular expressions
- extended - enhanced regular expressions
- Linux search tools:
- grep - prints lines matching pattern defined by basic regular expressions
- egrep - prints lines matching pattern defined by extended regular expressions
- fgrep - prints lines matching pattern defined by fixed strings
Extended regular expressions - metacharacters⌘
- ^ - beginning of the line
- $ - end of the line
- \b - end of the word
- . - any single character
- \w - alphanumeric character
- \W - non-alphanumeric character
- \d - digit character
- \D - non-digit character
- \s - whitespace character
- \S - non-whitespace character
- [character1character2] - any character from the class of characters
- [^character1character2] - any character out of the class of characters
- () - subexpression for further reference
Extended regular expressions - alternations
and quantifiers⌘
- Alternations:
- expression1 | expression2 - expression1 or expression2
- Quantifiers:
- ? - zero or one occurance
- * - zero or more occurrences
- + - one or more occurrences
- {ammount1,ammount2} - amount1 to amount2 occurrences
- {,ammount} - amount or less occurrences
- {ammount,} - amount or more occurrences
- Lab Exercise 103.7
103.8 Perform basic file editing operations
using vi⌘
Vi basis⌘
- Why vi?:
- It is installed by default in most of the Unix-like systems
- It can be used to edit files very quickly once learnt properly
- It is a ninja tool :)
- Vi modes:
- command mode - commands are accepted and text is not created
- text mode - text is created and command are not accepted
- Esc - switches from text mode to command mode
- Vim (Vi IMproved) - enhanced vi program
Cursor movement⌘
- h - moves left
- j - moves down
- k - moves up
- l - moves right
- w - moves to the beginning of the next word on the current line
- e - moves to the end of the next word on the current line
- b - moves to the previous word on the current line
- Ctrl+f - scrolls forward one page
- Ctrl+b - scrolls backward one page
- number G - moves to the line number number
- H - moves to the top line on the screen
- L - moves to the bottom line on the screen
Vi commands⌘
- i - enters insert mode before the cursor
- a - enters insert mode after the cursor
- x - deletes the character
- r - replaces one character
- R - enters replace mode before the cursor
- dd - deletes the line
- dnd - deletes n lines
- o - opens a new line below the current one and enters insert mode
- O - opens a new line above the current one and enters insert mode
- yy - copies the line
- yny - copies n lines
- p - puts text after cursor deleted or copied by the last command
- P - puts text before cursor deleted or copied by the last command
Searching for pattern and closing the file⌘
- Searching for pattern:
- /pattern - searches for the pattern forward
- n - finds next pattern in the forward search
- ?pattern - searches for the pattern backward
- n - finds next pattern in the backward search
- Closing the file:
- ZZ - saves the file and exits from vi
- :wq! - saves the file and exits from vi
- :q! - exits from vi
- :e! - re-opens the file
Second Day - Sessions III and IV⌘
104.1 Create partitions and filesystems⌘
Linux filesystems⌘
Filesystem | Maximum file size | Maximum partition size | Journaling |
---|---|---|---|
EXT2 | 2TB | 32TB | No |
EXT3 | 2TB | 32TB | Yes |
EXT4 | 16TB | 1EB | Yes |
XFS | 8EB | 8EB | Yes |
ReiserFS | 8TB | 16TB | Yes |
FAT32 | 4GB | 8TB | No |
Partitioning disk⌘
- fdisk (Fixed DISK) - basic partition editor:
- m - displays help menu
- p - prints the partition table
- n - adds a new partition
- d - deletes a partition
- t - changes a partition's system id
- w - writes table to disk and exits
- cfdisk (C Fixed DISK) - curses-based version of fdisk
- parted (PARTition EDitor) - advanced partition editor
- GParted (Graphical PARTition EDitor) - graphical version of parted
Creating and mounting filesystems⌘
- Regular filesystems:
- mkfs - creates the filesystem
- mkfs.filesystem - creates the filesystem of specified type
- mount - mounts the filesystem
- umount - unmounts the filesystem
- Swap space:
- mkswap - creates Swap space
- swapon - enables Swap space
- swapoff - disables Swap space
- Lab Exercise 104.1
104.2 Maintain the integrity of filesystems⌘
Journal and inodes⌘
- Journal:
- a log of recent changes made to the filesystem metadata
- is inspected by the filesystem driver after the filesystem crash
- contains information about recently changed parts of the filesystem
- speeds up filesystem recovery after the crash
- Inode:
- metadata structure used to represent the filesystem object (file or directory)
- stores object's attributes and its disk block locations
- object's attributes include ownership, permissions, timestamps, etc.
- on most of the Linux filesystems the number of inodes is fixed and pre-defined
Filesystem integrity management⌘
- df - reports filesystem disk space usage
- du - estimates file space usage
- fsck - checks and repairs a Linux filesystem
- e2fsck - checks a Linux EXT filesystems
- debugfs - EXT filesystems debugger
- dumpe2fs - dumps EXT filesystem information
- make2fs - creates EXT filesystems
- tune2fs - adjusts tunable EXT filesystem parameters
- resize2fs - resizes EXT filesystems
- packages for XFS filesystems management:
- xfs_tools - for Debian-based systems
- xfsprogs - for RedHat-based systems
- Lab Exercise 104.2
104.3 Control mounting and unmounting of
filesystems⌘
Mounting filesystems permanently⌘
- /media - mount point for filesystems on removable devices
- /etc/mtab - contains a list of currently mounted filesystems
- /etc/fstab - contains associations between devices and their mount points
[device] [mount point] [type] [options] [dump] [pass]
- device - specifes the device on which the filesystem resides
- mount point - specifies the directory on which to mount the filesystem
- type - specifies filesystem type
- options - specifies mount options
- dump - specifies whether the dump command should consider the filesystem for backup
- pass - specifies the order of checking the filesystems at a boot time
Fstab - options⌘
- defaults - default mount options (rw,auto,user,exec,suid,async,dev)
- ro - mounts the filesystem in RO (Read-Only) mode
- rw - mounts the filesystem in RW (Read-Write) mode
- auto - the filesystem should be mounted automatically at the boot time
- noauto - the filesystem should not be mounted automatically at the boot time
- user - non-root user allowed to mount and unmount the filesystem
- nouser - non-root user is not allowed to mount and unmount the filesystem
- exec - allows execution of programs on the filesystem
- noexec - disallows execution of programs on the filesystem
Fstab - options #2⌘
- suid - allows execution of programs with SUID and SGID flags on the filesystem
- nosuid - disallows execution of programs with SUID and SGID flags on the filesystem
- sync - I/O operations are performed synchronously on the filesystem
- async - I/O operations are performed asynchronously on the filesystem
- dev - interprets block special devices on the filesystem
- nodev - does not interpret block special devices on the filesystem
- noatime - disables recording of access time timestamps
- Lab Exercise 104.3
104.4 Manage disk quotas⌘
Quotas⌘
- Quotas:
- define maximum allowable disk space to be used by particular user or group
- on the XFS filesystems quotas are part of the filesystem metadata
- on other filesystems quotas are stored in aquota.user and aquota.group files
- quota files need to be stored in the root directory of the filesystem
- limits in quota files are measured in 1KB blocks
- Limit types:
- soft - can be exceeded, warning generated
- hard - cannot be exceeded
- Grace period - defines for how long the soft limit can be exceeded
Quota files⌘
- aquota.user / aquota.group:
[filesystem] [blocks] [soft] [hard] [inodes] [soft] [hard]
- filesystem - device with the concerned filesystem
- blocks - number of blocks used by the user
- first soft - user's soft limit of the blocks
- first hard - user's hard limit of the blocks
- inodes - number of inodes used by the user
- second soft - user's soft limit of the inodes
- second hard - user's hard limit of the inodes
Quota management⌘
- Quota installation:
- Debian: apt-get install quota quotatool
- RedHat: yum install quota
- Management tools:
- quota - displays disk usage and limits
- repquota - summarizes quotas for the filesystem
- quotacheck - scans the filesystem for disk usage and creates, checks, and repairs quota files
- warnquota - sends e-mail to the user which is over the quota
- edquota - edits user quotas
- quotatool - tool to edit disk quotas from the command line
- quotaon - turns filesystem quotas on
- quotaoff - turns filesystem quota off
- Lab Exercise 104.4
104.5 Manage file permissions and ownership⌘
Linux permissions⌘
- Linux permissions are stored in four bitarrays with a size of 3 bits:
- bitarray 1 - defines special permissions (SUID, SGID and Sticky bits)
- bitarray 2 - defines owner permissions
- bitarray 3 - defines group permissions
- bitarray 4 - defines others permissions
- Linux permissions are written in one chararray with a size od 9 bits:
- character 1-3 - defines owner permissions and SUID bit
- character 4-6 - defines group permissions and SGID bit
- character 7-9 - defines others permissions and Sticky bit
Owner, group and others permissions⌘
- read:
- displaying files and displaying directories' content
- set on the first bit in bitarrays 2-4 for owner, group and others respectively
- r character on chararray's 1st, 4th and 7th elements for owner, group and others respectively
- write:
- modifying files and modifying directories' content
- set on the second bit in bitarrays 2-4 for owner, group and others respectively
- w character on chararray's 2nd, 5th and 8th elements for owner, group and others respectively
- execute:
- executing files and entering directories
- set on the third bit in bitarrays 2-4 for owner, group and others respectively
- x character on chararray's 3rd, 6th and 9th elements for owner, group and others respectively
SUID, SGID and Sticky bits⌘
- SUID (Set User ID):
- causes that users executing the program will inherit owner's permissions, UID and GID
- set on the first bit in bitarray 1
- s (s + x) or S (s - x) character on chararray's 3rd element
- SGID (Set Group ID):
- causes that newly created files and subdirectories in the directory will inherit GID
- set on the second bit in bitarray 1
- s (s + x) or S (s - x) character on chararray's 6th element
- Sticky:
- causes that items can be removed by item's owner, directory's owner or root user
- set on the third bit in bitarray 1
- t (t + x) or T (t - x) character on chararray's 9th element
Setting permissions⌘
- Permissions can be set by:
- providing decimal representation of bitarrays followed one by one (bitarray 1 optional; 0 by default)
- providing a principal, operation and characters of permissions
- Principals:
- u - item owner
- g - item group
- o - others
- Operations:
- = - sets following permissions
- + - adds following permissions
- - - removes following permissions
Permissions management⌘
- chmod - changes item permissions
- chown - changes item owner
- chgrp - changes item group
- umask - manages default permissions of newly created items
- sets permissions that we want to restrict
- default system permissions for files: 0666
- default system permissions for directories: 0777
- Lab Exercise 104.5
104.6 Create and change hard and symbolic
links⌘
Linux links⌘
- Link - defines a referral to another item in the filesystem
- Link types:
- hard links - associate multiple items with the single inode
- soft links - point to another item in the filesystem
- Links creation:
- hard links:
ln linked linking
- soft links:
ln -s linked linking
- ls -l command
Hard links vs soft links⌘
- Comparison:
Feature | Hard links | Soft links |
---|---|---|
Inode creation | Do not create new inode | Create new inode |
Can link directories | No | Yes |
Can cross filesystem boundaries | No | Yes |
Linked item post-removal behaviour | Does not change | Stop working |
Notation | - | l |
- Lab Exercise 104.6
104.7 Find system files and place files in the
correct location⌘
FHS⌘
- FHS (Filesystem Hirearchy Standard) - defines directory structure:
- / - primary hierarchy root and root directory of the entire file system hierarchy
- /bin - essential command binaries that need to be available in single user mode
- /boot - boot loader files
- /dev - essential devices
- /etc - host-specific system-wide configuration files
- /home - users' home directories containing saved files, personal settings, etc.
- /lib - 32-bit libraries essential for the binaries in /bin and /sbin
- /lib64 - 64-bit libraries essential for the binaries in /bin and /sbin
- /media - mount points for removable media
- /mnt - temporarily mounted filesystems
FHS #2⌘
- /opt - optional application software packages
- /proc - virtual filesystem providing information about kernel parameters
- /root - home directory for the root user
- /run - information about the running system since last boot
- /sbin - essential system binaries
- /srv - site-specific data which are served by the system
- /sys - devices files
- /tmp - temporary files
- /usr - secondary hierarchy root
- /var - variable files — files whose content is expected to continually change
Localization tools⌘
- find - searches for files in a directory hierarchy
- locate - used to index and quickly search for files in the system
- updatedb - updates the database for slocate
- whereis - locates the binary, source, and manual page files for a command
- which - shows the full path of shell commands
- type - shows whether the command is shell built-in or an external binary
- Lab Exercise 104.7
Certification and Surveys⌘
- Congratulations on completing the course!
- Official Certification:
- LPI: https://www.lpi.org
- Paerson VUE: http://www.pearsonvue.com/
- Prometric: https://www.prometric.com/en-us/Pages/home.aspx
- Visit http://www.nobleprog.com for other courses
- Surveys: http://www.nobleprog.pl/te