Book: LPI Linux Certification in a Nutshell
Section: Chapter 10.  Exam 101 Highlighter's Index



10.2 Devices, Linux Filesystems, and the Filesystem Hierarchy Standard (Topic 2.4)

10.2.1 Objective 1: Create Partitions and Filesystems

10.2.1.1 Disk drives and partitions
  • IDE disks are known as /dev/hda, /dev/hdb, /dev/hdc, and /dev/hdd.

  • SCSI disks are known as /dev/sda, /dev/sdb, /dev/sdc, and so on.

  • Three types of partitions:

    Primary

    Filesystem container. At least one must exist, and up to four can exist on a single physical disk. They are identified with numbers 1 to 4, such as /dev/hda1, /dev/hda2, and so on.

    Extended

    A variant of a primary partition but it cannot contain a filesystem. Instead, it contains one or more logical partitions. Only one extended partition may exist, and it takes one of the four possible spots for primary partitions.

    Logical

    Created within the extended partition. From 1 to 12 logical partitions may be created. They are numbered from 5 to 16, such as /dev/hda5, /dev/hda10, and so on.

  • Up to 15 partitions with filesystems may exist on a single physical disk.

10.2.1.2 The root filesystem and mount points
  • The top of the filesystem tree is occupied by the root filesystem. Other filesystems are mounted under it, creating a unified filesystem.

  • /etc, /lib, /bin, /sbin, and /dev must be part of the root filesystem.

10.2.1.3 Partition and filesystem management commands

The following commands are commonly used to repair and manage filesystems:

fdisk [device]

Manipulate or display the partition table for device using a command-driven interactive text interface. device is a physical disk such as /dev/hda, not a partition such as /dev/hda1.

mkfs device

Make a filesystem on device.

mkswap device

Prepare a partition for use as swap space.

10.2.2 Objective 2: Maintain the Integrity of Filesystems

These commands are commonly used in day-to-day filesystem maintenance:

df [directories]

Display overall disk utilization information for mounted filesystems on directories.

du [directories]

Display disk utilization information for directories.

fsck filesystems

Check filesystems for errors and optionally correct them.

10.2.3 Objective 3: Control Filesystem Mounting and Unmounting

10.2.3.1 Managing the filesystem table
  • /etc/fstab contains mount information for filesystems. Each line contains a single filesystem entry made up of six fields, shown in Table 10-5.

Table 10-5. Fields Found in the /etc/fstab File

Entry

Description

Device

The device file for the partition holding the filesystem.

Mount point

The directory upon which the filesystem is to be mounted.

Filesystem type

A filesystem type, such as ext2.

Mount options

A comma-separated list.

Dump frequency

For use with dump.

Pass number for fsck

Used at boot time.

10.2.3.2 Mounting and unmounting

The following commands are used to mount and unmount filesystems:

mount device

mount directory

mount device directory

Mount filesystems onto the hierarchy. The first and second forms consult /etc/fstab for additional information.

umount device

umount directory

Unmount the filesystem on device or mount it on directory.

10.2.3.3 Filesystem types

Common filesystem types compatible with Linux include:

ext2

The standard Linux filesystem.

iso9660

The standard CD-ROM format.

msdos

The MS-DOS FAT filesystem.

nfs

Remote servers.

proc

The proc filesystem, which is a system abstraction for access to kernel parameters.

swap

Swap partitions.

vfat

Virtual FAT, used instead of msdos.

10.2.4 Objective 4: Set and View Disk Quota

  • Quotas are used to enforce a disk space or an inode maximum on individuals, groups, or both.

  • These types of quota limits can be set:

    Per-user hard

    The maximum size for an individual.

    Per-user soft

    A warning threshold.

    Per-group hard

    The maximum size for a group.

    Per-group soft

    A warning threshold.

    Grace period

    A time restriction on the soft limit.

  • These commands manipulate quotas:

quota user
quota -g group

Display quota limits on user or group.

quotaon [ filesystems]

Enable previously configured disk quotas on one or more filesystems.

quotaoff [ filesystems]

Disable disk quotas on one or more filesystems.

quotacheck [ filesystems]

Examine filesystems and compile quota databases. Usually run via cron.

edquota names

Modify user or group quotas by spawning a text editor.

repquota filesystems

Display a summary report of quota status for filesystems, or use -a for all filesystems:

Enabling quotas requires usrquota and/or grpquota options in /etc/fstab, creation of quota.user and quota.group files at the top of the filesystem, a quotacheck, and a quotaon.

10.2.5 Objective 5: Use File Permissions to Control Accessto Files

10.2.5.1 Access control
  • Access control is implemented using a set of properties called the access mode, stored in the inode. Three classes of user are defined:

    User

    The user that owns the file.

    Group

    The group that owns the file.

    Other

    All other users on the system.

  • Three permissions are either granted or not granted to each class of user:

    Read (r)

    Allows access to file contents and listing of directory contents.

    Write (w)

    Allows writing a file or creating files in a directory.

    Execute (x)

    Allows execution of a file and read/write files in a directory.

  • These comprise nine bits in the mode User rwx, Group rwx, and Other rwx.

  • Three additional mode bits are defined:

    SUID

    To grant processes the rights of an executable file's owner.

    SGID

    To grant processes the rights of an executable file's group.

    Sticky bit

    Prohibits file deletion by nonowners.

  • These 12-mode bits are often referred to in octal notation as well as with mnemonic constructs.

  • Mode bits are displayed using such commands as ls and stat.

10.2.5.2 Setting access modes
  • New files receive initial access mode as described by the umask.

  • The umask strips specified bits from the initial mode settings. Typical umasks are 002 and 022.

  • Existing file modes are changed using chmod with either symbolic or octal mode specifications:

    • Symbolic:

      [ugoa][-+=][rwxXst]
    • Octal bits:

      user r, w, x, group r, w, x, other r, w, x
      rwxrwxrwx = 111111111 = 777
      rwxr-xr-- = 111101100 = 751 

    chmod uses the following syntax:

    chmod mode files

    Modify the access mode on files using a symbolic or octal mode.

10.2.6 Objective 6: Manage File Ownership

  • Access modes are tied to file ownership.

  • Files have both individual and group ownership:

    chown user-owner.group-owner files

    Change the owner and/or group of files to user-owner and/or group-owner.

    chgrp group-owner files

    Change the group ownership of files to group-owner.

  • chgrp functionality is included in chown.

10.2.7 Objective 7: Create and Change Hardand Symbolic Links

  • A link is a pseudonym for another file.

  • Links take very little space in the filesystem.

  • A symbolic link is a tiny file that contains a pointer to another file. Symbolic links can span filesystems.

  • A hard link is a copy of a file's directory entry. Both directory entries point to the same inode and thus the same data, ownership, and permissions.

ln has the following syntax:

ln file link
ln files directory

Create link to file or in directory for all files. Symbolic links are created with the -s option.

10.2.8 Objective 8: Find System Files and Place Filesin the Correct Location

  • The FHS is used by Linux distributions to standardize filesystem layout. It defines two categories of data use, each with opposing subtypes:

    • Data sharing: sharable data can be used by multiple host systems on a network. Non-sharable data is unique to one particular host system.

    • Data modification: variable data is changed continually by naturally occurring (i.e., frequent) processes. Static data is left alone, remaining unchanged over extended periods of time.

  • The FHS seeks to define the filesystem contents in these terms and locate information accordingly.

10.2.8.1 The directory hierarchy
  • The root filesystem:

    • Must contain utilities and files sufficient to boot the operating system, including the ability to mount other filesystems.

    • Should contain the utilities needed by the system administrator to repair or restore a damaged system.

    • Should be relatively small.

  • /usr contains system utilities and programs that do not appear in the /root partition. It includes directories such as /bin, /lib, /local, and /src.

  • /var contains varying data such as printer spools and log files, including directories such as log, mail, and spool.

10.2.8.2 Locating files
  • Various methods can be used to locate files in the filesystem:

    which command

    Determine the location of command and display the full pathname of the executable program that the shell would launch to execute it.

    find paths expression

    Search for files that match expression starting at paths and continuing recursively.

    locate patterns

    Locate files whose names match one or more patterns by searching an index of files previously created.

    updatedb

    Refresh (or create) the slocate database, usually via cron.

    whatis keywords
    apropos keywords

    Search the whatis database for keywords. whatis finds only exact matches, while apropos finds partial word matches.