ISBN-10:
0133927318
ISBN-13:
9780133927313
Pub. Date:
01/06/2015
Publisher:
Prentice Hall
A Practical Guide to Ubuntu Linux / Edition 4

A Practical Guide to Ubuntu Linux / Edition 4

by Mark G. Sobell
Current price is , Original price is $59.99. You

Temporarily Out of Stock Online

Please check back later for updated availability.

This item is available online through Marketplace sellers.

Overview

The Most Complete, Easy-to-Follow Guide to Ubuntu Linux

“As an in-depth guide to Ubuntu, this book does an exceptional job of covering everything from using the Unity desktop to exploring key server configurations.”

–Elizabeth K. Joseph, Systems Administrator & Ubuntu Community Member

  • The #1 Ubuntu resource, fully updated for Ubuntu 14.04 (Trusty Tahr)–the Long Term Support (LTS) release Canonical will support into 2019
  • Extensive new coverage of installation, security, virtualization, MariaDB, Python Programming, and much more
  • Updated JumpStarts help you set up many complex servers in minutes
  • Hundreds of up-to-date examples, plus four updated indexes deliver fast access to reliable answers

Mark Sobell’s A Practical Guide to Ubuntu Linux®, Fourth Edition, is the most thorough and up-to-date reference to installing, configuring, securing, and working with Ubuntu desktops and servers.

This edition has been fully updated for Ubuntu 14.04 (Trusty Tahr), a milestone LTS (Long Term Support) release, which Canonical will support on both desktops and servers into 2019.

Sobell walks you through every essential feature and technique, from installing Ubuntu to working with the latest Ubuntu Unity desktop, and from configuring servers and monitoring networks to handling day-to-day system administration. His exceptionally clear explanations demystify everything from Apache, Samba, and postfix, to ufw, virtualization, and MariaDB/MySQL database management. PLUS a new chapter on programming in Python, today’s most popular system automation tool!

Fully updated JumpStart sections quickly help you get complex servers running–often in minutes. You’ll also find up-to-date guidance on new LPI and CompTIA Linux certification pathways for Linux professionals.

Sobell draws on his immense Linux knowledge to explain both the “hows” and the “whys” of Ubuntu. He’s taught hundreds of thousands of readers and never forgets what it’s like to be new to Linux. Whether you’re a user, administrator, or programmer, you’ll find everything you need here–now, and for years to come.

The world’s most practical Ubuntu Linux book is now even more useful!

This book delivers

  • Completely revamped installation coverage reflecting Ubuntu 14.04’s improved ubiquity (graphical) and debian-installer (textual) installers
  • Updated JumpStarts for quickly setting up Samba, Apache, postfix, FTP, NFS, CUPS, OpenSSH, DNS, and other complex servers
  • Revamped and updated explanations of the ufw, gufw, and iptables firewall tools
  • An all-new chapter on creating VMs (virtual machines) locally and in the cloud
  • New coverage of the MariaDB open source plug-in replacement for MySQL
  • Comprehensive networking coverage, including DNS/BIND, NFS, NIS, FTP, LDAP, and Cacti network monitoring
  • Expert coverage of Internet server configuration and customization, including apache2 (Web) and postfix (mail)
  • A new chapter covering state-of-the-art security techniques, including sudo, cryptography, hash functions, SSL certificates, plus a section on using GPG (GNU Privacy Guard) to protect documents in transit
  • Deep coverage of essential administration tasks–from managing users to CUPS printing, and from configuring LANs and LDAP to building VMs (virtual machines)
  • Complete instructions on keeping systems up to date using apt-get, dpkg, and other tools
  • And much more . . . including a revised 500+ term glossary and four indexes

Product Details

ISBN-13: 9780133927313
Publisher: Prentice Hall
Publication date: 01/06/2015
Pages: 1400
Product dimensions: 7.40(w) x 9.10(h) x 2.10(d)

About the Author

Mark G. Sobell is President of Sobell Associates Inc., a consulting firm that specializes in UNIX and Linux training, support, and custom software development. He has more than thirty years of experience working with UNIX and Linux systems and is the author of many best-selling books, including A Practical Guide to Red Hat® Linux®, Seventh Edition, and A Practical Guide to Linux® Commands, Editors, and Shell Programming, Third Edition, both from Prentice Hall.

Read an Excerpt

The Book

Whether you are an end user, a system administrator, or a little of both, this book explains with step-by-step examples how to get the most out of an Ubuntu Linux system. In 27 chapters, this book takes you from installing an Ubuntu system through understanding its inner workings to setting up secure servers that run on the system.

The Audience

This book is designed for a wide range of readers. It does not require you to have programming experience, although having some experience using a general-purpose computer, such as a Windows, Macintosh, UNIX, or another Linux system is certainly helpful. This book is appropriate for

  • Students who are taking a class in which they use Linux
  • Home users who want to set up and/or run Linux
  • Professionals who use Linux at work
  • System administrators who need an understanding of Linux and the tools that are available to them
  • Computer science students who are studying the Linux operating system
  • Programmers who need to understand the Linux programming environment
  • Technical executives who want to get a grounding in Linux
Benefits

A Practical Guide to Ubuntu Linux® gives you a broad understanding of many facets of Linux, from installing Ubuntu Linux through using and customizing it. No matter what your background, this book provides the knowledge you need to get on with your work. You will come away from this book understanding how to use Linux, and this book will remain a valuable reference for years to come.

Overlap

If you read A Practical Guide to Linux® Commands, Editors, and Shell Programming, you will notice some overlap between that book and the one you are reading now. The first chapter, the chapters on the utilities and the filesystem, and the appendix on regular expressions are very similar in the two books, as are the three chapters on the Bourne Again Shell (bash). Chapters that appear in this book but do not appear in A Practical Guide to Linux® Commands, Editors, and Shell Programming include Chapters 2 and 3 (installation), Chapters 4 and 8 (Ubuntu Linux and the GUI), Chapter 10 (networking), all of the chapters in Part IV (system administration) and Part V (servers), and Appendix C (security).

Differences

While this book explains how to use Linux from a graphical interface and from the command line (a textual interface), A Practical Guide to Linux® Commands, Editors, and Shell Programming works exclusively with the command line. It includes full chapters on the

vi and

emacs editors, as well as chapters on the

gawk pattern processing language and the

sed stream editor. In addition, it has a command reference section that provides extensive examples of the use of more than 80 of the most important Linux utilities. You can use these utilities to solve problems without resorting to programming in C.

This Book Includes Ubuntu Gutsy Gibbon (7.10) on a Live/Install DVD

This book includes a live/install DVD that holds the Gutsy Gibbon (7.10) release of Ubuntu Linux. You can use this DVD to run a live Ubuntu session that displays the GNOME desktop without making any changes to your computer: Boot from the DVD, run an Ubuntu live session, and log off. Your system remains untouched: When you reboot, it is exactly as it was before you ran the Ubuntu live session. Alternatively, you can install Ubuntu from the live session. Chapter 2 helps you get ready to install Ubuntu. Chapter 3 provides step-by-step instructions for installing Ubuntu from this DVD. This book guides you through learning about, using, and administrating an Ubuntu Linux session.

DVD Features

The included DVD incorporates all the features of the live/install Desktop CD as well as the Alternate and Server CDs. It also includes all software packages supported by Ubuntu. You can use it to perform a graphical or textual (command line) installation of either a graphical or a textual Ubuntu system. If you do not have an Internet connection, you can use the DVD as a software repository and install any supported software packages from it.

Features of This Book

This book is designed and organized so you can get the most out of it in the shortest amount of time. You do not have to read this book straight through in page order. Instead, once you are comfortable using Linux, you can use this book as a reference: Look up a topic of interest in the table of contents or index and read about it. Or think of the book as a catalog of Linux topics: Flip through the pages until a topic catches your eye. The book includes many pointers to Web sites where you can get additional information: Consider the Internet an extension of this book.

A Practical Guide to Ubuntu Linux® is structured with the following features:

  • Optional sections enable you to read the book at different levels, returning to more difficult material when you are ready to delve into it.
  • Caution boxes highlight procedures that can easily go wrong, giving you guidance before you run into trouble.
  • Tip boxes highlight ways you can save time by doing something differently or situations when it may be useful or just interesting to have additional information.
  • Security boxes point out places where you can make a system more secure. The security appendix presents a quick background in system security issues.
  • Concepts are illustrated by practical examples throughout the book.
  • Chapter summaries review the important points covered in each chapter.
  • Review exercises are included at the end of each chapter for readers who want to further hone their skills. Answers to even-numbered exercises are available at www.sobell.com.
  • The glossary defines more than 500 common terms.
  • The chapters that cover servers include JumpStart sections that get you off to a quick start using clients and setting up servers. Once a server is up and running, you can test and modify its configuration as explained in the rest of the chapter.
  • This book provides resources for finding software on the Internet. It also explains how to download and install software using Synaptic,

    aptitude, the GNOME Add/Remove Applications window, and BitTorrent. It details controlling automatic updates using the Update Notifier and the Update Manager window.

  • This book describes in detail many important GNU tools, including the GNOME desktop, the Nautilus File Browser, the

    parted and

    gparted partition editors, the

    gzip compression utility, and many command line utilities that come from the GNU project.

  • Pointers throughout the text provide help in obtaining online documentation from many sources, including the local system, the Ubuntu Web site, and other locations on the Internet.
  • Many useful URLs point to Web sites where you can obtain software, security programs and information, and more.
  • The comprehensive index helps you locate topics quickly and easily.
Key Topics Covered in This Book

This book contains a lot of information. This section distills and summarizes its contents. In addition, “Details” (starting on page xli) describes what each chapter covers. Finally, the table of contents provides more detail.

Installation

The book:

  • Describes how to download Ubuntu Linux ISO images from the Internet and burn the Ubuntu live/install Desktop CD, the DVD, or the Ubuntu Alternate or Server installation CD.
  • Helps you plan the layout of the system’s hard disk. It includes a discussion of partitions, partition tables, and mount points, and assists you in using the

    ubiquity or

    gparted graphical partitioner or the Ubuntu textual partitioner to partition the hard disk.

  • Explains how to set up a dual-boot system so you can install Ubuntu Linux on a Windows system and boot either operating system.
  • Describes in detail how to install Ubuntu Linux from a live/install Desktop CD or the live/install DVD using the

    ubiquity graphical installer. It also explains how to use the textual installer found on the Alternate CD, the Server CD, and the DVD. The graphical installer is fast and easy to use. The textual installer gives you more options and works on systems with less RAM (system memory).

  • Covers testing an Ubuntu CD/DVD for defects, setting boot command line parameters (boot options), and creating a RAID array.
  • Covers the details of installing and customizing the X.org version of the X Window System either graphically using the Screen and Graphics Preferences window or manually with a text editor.
Working with Ubuntu Linux

The book:

  • Introduces the GNOME desktop (GUI) and explains how to use desktop tools, including the Top and Bottom panels, panel objects, the Main menu, object context menus, the Workspace Switcher, the Nautilus File Browser, and the GNOME Terminal emulator.
  • Explains how to use the Appearance Preferences window to add and modify themes to customize your desktop to please your senses and help you work more efficiently.
  • Details how to set up 3D desktop visual effects that take advantage of Compiz Fusion.
  • Covers the Bourne Again Shell (

    bash) in three chapters, including an entire chapter on shell programming that includes many sample shell scripts. These chapters provide clear explanations and extensive examples of how

    bash works both from the command line in day-to-day work and as a programming language to write shell scripts.

  • Explains the textual (command line) interface and introduces more than 30 command line utilities.
  • Presents a tutorial on the

    vim textual editor.

  • Covers types of networks, network protocols, and network utilities.
  • Explains hostnames, IP addresses, and subnets, and explores how to use

    host and

    dig to look up domain names and IP addresses on the Internet.

  • Covers distributed computing and the client/server model.
  • Explains how to use ACLs (Access Control Lists) to fine-tune user access permissions.
System Administration

The book:

  • Explains how to use the Ubuntu graphical and textual (command line) tools to configure the display, DNS, NFS, Samba, Apache, a firewall, a network interface, and more. You can also use these tools to add users and manage local and remote printers.
  • Goes into detail about using

    sudo to allow specific users to work with root privileges (become Superuser) and customizing the way

    sudo works by editing the sudoers configuration file. It also explains how you can unlock the root account if necessary.

  • Describes how to use the following tools to download and install software to keep a system up-to-date and to install new software:
    • The Software Sources window controls which Ubuntu and third-party software repositories Ubuntu downloads software packages from and whether Ubuntu downloads updates automatically. You can also use this window to cause Ubuntu to download and install security updates automatically.
    • If you do not have an Internet connection, you can use the Software Sources window to set up the DVD included with this book as a software repository. You can then install any software packages that Ubuntu supports from this repository.
    • Based on how you set up updates in the Software Sources window, the Update Notifier pops up on the desktop to let you know when software updates are available. Click the Update Notifier to open the Update Manager window, from which you can download and install updates.
    • The Add/Remove Applications window provides an easy way to select, download, and install a wide range of software packages.
    • Synaptic allows you to search for, install, and remove software packages. It gives you more ways to search for packages than does the Add/Remove Applications window.
    • APT downloads and installs software packages from the Internet (or the included DVD), keeping a system up-to-date and resolving dependencies as it processes the packages. You can use APT from a graphical interface (Synaptic) or from several textual interfaces (e.g.,

      aptitude and

      apt-get).

    • BitTorrent is a good choice for distributing large amounts of data such as the Ubuntu installation DVD and CDs. The more people who use BitTorrent to download a file, the faster it works.
  • Covers graphical system administration tools, including the many tools available from the GNOME Main menu.
  • Explains system operation, including the boot process, init scripts, recovery (single-user) and multiuser modes, and steps to take if the system crashes.
  • Describes how to use and program the new Upstart init daemon, which replaces the System V init daemon.
  • Describes files, directories, and filesystems, including types of files and filesystems, fstab (the filesystem table), and automatically mounted filesystems, and explains how to fine-tune and check the integrity of filesystems.
  • Covers backup utilities, including

    tar,

    cpio,

    dump, and

    restore.

  • Describes compression/archive utilities, including

    gzip,

    bzip2,

    compress, and

    zip.

  • Explains how to customize and build a Linux kernel.
Security

The book:

  • Helps you manage basic system security issues using

    ssh (secure shell), vsftpd (secure FTP server), Apache (Web server),

    iptables (firewalls), and more.

  • Covers using

    firestarter to share an Internet connection over a LAN, run a DHCP server, and set up a basic firewall to protect the system.

  • Provides instructions on using

    iptables to share an Internet connection over a LAN and to build advanced firewalls.

  • Describes how to set up a chroot jail to help protect a server system.
  • Explains how to use TCP wrappers to control who can access a server.
Clients and Servers

The book:

  • Explains how to set up and use the most popular Linux servers, providing a chapter on each: Apache, Samba, OpenSSH, exim4, DNS, NFS, FTP,

    firestarter and

    iptables, and NIS (all of which are supported by Ubuntu Linux).

  • Describes how to set up a CUPS printer server.
  • Describes how to set up and use a DHCP server either by itself or from

    firestarter.

Programming

The book:

  • Provides a full chapter covering shell programming using bash, including many examples.
Details

Chapter 1 presents a brief history of Linux and explains some of the features that make it a cutting-edge operating system. The “Conventions Used in This Book” (page 17) section details the typefaces and terminology this book uses.

Part I

Part I, “Installing Ubuntu Linux,” discusses how to install Ubuntu Linux. Chapter 2 presents an overview of the process of installing Ubuntu Linux, including hardware requirements, downloading and burning a CD or DVD, and planning the layout of the hard disk. Chapter 3 is a step-by-step guide to installing Ubuntu Linux from a CD or DVD, using the graphical or textual installer. It also shows how to set up the X Window System and customize your desktop (GUI).

Part II

Part II, “Getting Started with Ubuntu Linux,” familiarizes you with Ubuntu Linux, covering logging in, the GUI, utilities, the filesystem, and the shell. Chapter 4 introduces desktop features, including the Top and Bottom panels and the Main menu; explains how to use the Nautilus File Browser to manage files, run programs, and connect to FTP and HTTP servers; covers finding documentation, dealing with login problems, and using the window manager; and presents some suggestions on where to find documentation, including manuals, tutorials, software notes, and HOWTOs. Chapter 5 introduces the shell command line interface, describes more than 30 useful utilities, and presents a tutorial on the

vim text editor. Chapter 6 discusses the Linux hierarchical filesystem, covering files, filenames, pathnames, working with directories, access permissions, and hard and symbolic links. Chapter 7 introduces the Bourne Again Shell (

bash) and discusses command line arguments and options, redirecting input to and output from commands, running programs in the background, and using the shell to generate and expand filenames.

TIP: Experienced users may want to skim Part IIIf you have used a UNIX or Linux system before, you may want to skim or skip some or all of the chapters in Part II. Part I has two sections that all readers should take a look at: “Conventions Used in This Book” (page 17), which explains the typographic and layout conventions used in this book, and “Where to Find Documentation” (page 124), which points out both local and remote sources of Linux and Ubuntu documentation.Part III

Part III, “Digging into Ubuntu Linux,” goes into more detail about working with the system. Chapter 8 discusses the GUI (desktop) and includes a section on how to run a graphical program on a remote system and have the display appear locally. The section on GNOME describes several GNOME utilities, including the new Deskbar applet, and goes into more depth about the Nautilus File Browser. Chapter 9 extends the

bash coverage from Chapter 7, explaining how to redirect error output, avoid overwriting files, and work with job control, processes, startup files, important shell builtin commands, parameters, shell variables, and aliases. Chapter 10 explains networks, network security, and the Internet and discusses types of networks, subnets, protocols, addresses, hostnames, and various network utilities. The section on distributed computing describes the client/server model and some of the servers you can use on a network. Chapter 11 goes into greater depth about shell programming using

bash, with the discussion enhanced by extensive examples. Details of setting up and using clients and servers are reserved until Part V.

Part IV

Part IV covers system administration. Chapter 12 discusses core concepts such as the use of

sudo, working with root privileges, system operation,

chroot jails, TCP wrappers, general information about how to set up a server, DHCP, and PAM. Chapter 13 explains the Linux filesystem, going into detail about types of files, including special and device files; the use of

fsck to verify the integrity of and repair filesystems; and the use of

tune2fs to change filesystem parameters. Chapter 14 explains how to keep a system up-to-date by downloading software from the Internet and installing it, including examples of using APT programs such as

aptitude,

apt-get, and

apt-cache. It also covers the dpkg software packaging system and the use of some

dpkg utilities. Finally, it explains how to use BitTorrent from the command line to download files. Chapter 15 explains how to set up the CUPS printing system so you can print on both local and remote systems. Chapter 16 details customizing and building a Linux kernel. Chapter 17 covers additional administration tasks, including setting up user accounts, backing up files, scheduling automated tasks, tracking disk usage, and solving general problems. Chapter 18 explains how to set up a local area network (LAN), including both hardware (including wireless) and software configuration.

Part V

Part V goes into detail about setting up and running servers and connecting to them with clients. Where appropriate, these chapters include JumpStart sections that get you off to a quick start in using clients and setting up servers. The chapters in Part V cover the following clients/servers:

  • OpenSSH: Set up an OpenSSH server and use

    ssh,

    scp, and

    sftp to communicate securely over the Internet.

  • FTP: Set up a vsftpd secure FTP server and use any of several FTP clients to exchange files with the server.
  • Mail: Configure exim4 and use Webmail, POP3, or IMAP to retrieve email; use SpamAssassin to combat spam.
  • NIS: Set up NIS to facilitate system administration of a LAN.
  • NFS: Share filesystems between systems on a network.
  • Samba: Share filesystems and printers between Windows and Linux systems.
  • DNS/BIND: Set up a domain nameserver to let other systems on the Internet know the names and IP addresses of local systems they may need to contact.
  • firestarter and

    iptables: Share a single Internet connection between systems on a LAN, run a DHCP server, and set up a firewall to protect local systems.

  • Apache: Set up an HTTP server that serves Web pages that browsers can display. This chapter includes many suggestions for increasing Apache security.
Part VI

Part VI includes appendixes on regular expressions, helpful Web sites, system security, and free software. This part also includes an extensive glossary with more than 500 entries plus a comprehensive index.

Supplements

The author’s home page (www.sobell.com) contains downloadable listings of the longer programs from this book as well as pointers to many interesting and useful Linux sites on the World Wide Web, a list of corrections to the book, answers to even-numbered exercises, and a solicitation for corrections, comments, and suggestions.

Table of Contents

Preface xliii

Chapter 1: Welcome to Linux 1

The History of UNIX and GNU–Linux 2

Overview of Linux 11

Choosing an Operating System 19

Chapter Summary 21

Exercises 21

Part I: Installing Ubuntu Linux 23

Chapter 2: Installation Overview 25

Conventions Used in This Book 26

More Information 29

Planning the Installation 30

Ubuntu Releases, Editions, and Derivatives 35

Setting Up the Hard Disk 38

Downloading an Image File and Burning/Writing the Installation Medium 47

Chapter Summary 53

Exercises 54

Advanced Exercises 54

Chapter 3: Step-by-Step Installation 55

Booting Ubuntu and Running a Live Session 56

Basic Installation 59

Advanced Installation 71

Chapter Summary 93

Exercises 94

Advanced Exercises 94

Part II: Using Ubuntu Linux 95

Chapter 4: Introduction to Ubuntu 97

Curbing Your Power: root Privileges/sudo 98

Logging In on the System 99

Working with the Unity Desktop 104

Using the Nautilus File Manager 108

The System Settings Window 113

Getting Help 118

Installing, Removing, and Updating Software Packages 121

Working from the Command Line 125

More About Logging In and Passwords 142

Chapter Summary 145

Exercises 146

Advanced Exercises 147

Chapter 5: The Shell 149

Special Characters 150

Ordinary Files and Directory Files 151

The Command Line 152

Standard Input and Standard Output 159

Running a Command in the Background 171

Filename Generation/Pathname Expansion 173

Builtins 178

Chapter Summary 178

Exercises 179

Advanced Exercises 181

Chapter 6: The Linux Filesystem 183

The Hierarchical Filesystem 184

Ordinary Files and Directory Files 185

Pathnames 189

Working with Directories 191

Access Permissions 199

ACLs: Access Control Lists 206

Links 211

Chapter Summary 217

Exercises 219

Advanced Exercises 220

Chapter 7: The Linux Utilities 223

Basic Utilities 224

Working with Files 232

Compressing and Archiving Files 253

Displaying User and System Information 260

Miscellaneous Utilities 263

Editing Files 270

Chapter Summary 280

Exercises 282

Advanced Exercises 283

Chapter 8: Networking and the Internet 285

Introduction to Networking 286

Types of Networks and How They Work 288

Communicate over a Network 307

Network Utilities 308

Distributed Computing 315

WWW: World Wide Web 325

Chapter Summary 327

Exercises 328

Advanced Exercises 328

Part III: System Administration 331

Chapter 9: The Bourne Again Shell (bash) 333

Background 334

Startup Files 335

Commands That Are Symbols 339

Redirecting Standard Error 339

Writing and Executing a Shell Script 342

Control Operators: Separate and Group Commands 347

Job Control 352

Manipulating the Directory Stack 355

Parameters and Variables 358

Special Characters 372

Locale 374

Time 377

Processes 379

History 382

Aliases 398

Functions 402

Controlling bash: Features and Options 404

Processing the Command Line 409

Chapter Summary 420

Exercises 421

Advanced Exercises 423

Chapter 10: System Administration: Core Concepts 425

The Upstart Event-Based init Daemon 427

System Operation 437

GRUB: The Linux Boot Loader 444

Recovery (Single-User) Mode 450

Textual System Administration Utilities 454

Setting Up a Server 460

DHCP: Configures Network Interfaces 464

nsswitch.conf: Which Service to Look at First 468

X Window System 471

Getting Help 476

Chapter Summary 477

Exercises 478

Advanced Exercises 478

Chapter 11: Files, Directories, and Filesystems 479

Important Files and Directories 480

File Types 493

Filesystems 497

The XFS Filesystem 506

Chapter Summary 507

Exercises 508

Advanced Exercises 508

Chapter 12: Finding, Downloading, and Installing Software 509

Introduction 510

JumpStart: Installing and Removing Software Packages Using apt-get 512

Finding the Package That Holds an Application or File You Need 514

APT: Keeps the System Up to Date 515

dpkg: The Debian Package Management System 524

BitTorrent 531

Installing Non-dpkg Software 533

Keeping Software Up to Date 535

curl: Downloads Files Noninteractively 536

Chapter Summary 536

Exercises 537

Advanced Exercises 537

Chapter 13: Printing with CUPS 539

Introduction 540

The System Configures a Local Printer Automatically 542

JumpStart I: Configuring a Printer Using system-config-printer 542

JumpStart II: Setting Up a Local or Remote Printer 544

Working with the CUPS Web Interface 548

Configuring Printers 549

Traditional UNIX Printing 557

Printing from Windows 558

Printing to Windows 560

Chapter Summary 560

Exercises 561

Advanced Exercises 561

Chapter 14: Administration Tasks 563

Configuring User and Group Accounts 564

Backing Up Files 568

Scheduling Tasks 573

System Reports 576

Maintaining the System 578

Chapter Summary 593

Exercises 594

Advanced Exercises 594

Chapter 15: System Security 595

Running Commands with root Privileges 596

Passwords 615

Securing a Server 616

PAM 621

Cryptography 626

GPG (GNU Privacy Guard) 641

Security Resources 656

Chapter Summary 659

Exercises 660

Advanced Exercises 660

Chapter 16: Configuring and Monitoring a LAN 661

More Information 662

Setting Up the Hardware 662

Configuring the Systems 666

NetworkManager: Configures Network Connections 667

Setting Up Servers 672

Introduction to Cacti 674

Chapter Summary 683

Exercises 684

Advanced Exercises 685

Chapter 17: Setting Up Virtual Machines Locally and in the Cloud 687

VMs (Virtual Machines) 688

gnome-boxes 690

QEMU/KVM 691

VMware Player: Installing Ubuntu on VMware 698

Cloud Computing 703

Chapter Summary 708

Exercises 709

Advanced Exercises 709

Part IV: Using Clients and Setting Up Servers 711

Chapter 18: The OpenSSH Secure CommunicationUtilities 713

Introduction to OpenSSH 714

Running the ssh, scp, and sftp OpenSSH Clients 716

Setting Up an OpenSSH Server (sshd) 727

Troubleshooting 735

Tunneling/Port Forwarding 735

Chapter Summary 738

Exercises 739

Advanced Exercises 739

Chapter 19: The rsync Secure Copy Utility 741

Syntax 742

Arguments 742

Options 742

Examples 745

Chapter Summary 752

Exercises 752

Chapter 20: FTP: Transferring Files Across a Network 753

Introduction to FTP 754

Running the ftp and sftp FTP Clients 756

Setting Up an FTP Server (vsftpd) 764

Chapter Summary 777

Exercises 778

Advanced Exercises 778

Chapter 21: postfix: Setting Up Mail Servers, Clients, and More 779

Overview 780

Introduction to postfix 781

Setting Up a postfix Mail Server 784

JumpStart: Configuring postfix to Use Gmail as a Smarthost 787

Configuring postfix 789

SpamAssassin 797

Additional Email Tools 801

dovecot: Setting Up an IMAP or POP3 Mail Server 807

Chapter Summary 810

Exercises 811

Advanced Exercises 812

Chapter 22: NIS and LDAP 813

Introduction to NIS 814

Running an NIS Client 817

Setting Up an NIS Server 822

Introduction to LDAP 830

Setting Up an LDAP Server 833

Chapter Summary 839

Exercises 840

Advanced Exercises 840

Chapter 23: NFS: Sharing Directory Hierarchies 843

Introduction to NFS 845

Running an NFS Client 847

Setting Up an NFS Server 853

automount: Mounts Directory Hierarchies on Demand 863

Chapter Summary 866

Exercises 867

Advanced Exercises 867

Chapter 24: Samba: Linux and Windows File and Printer Sharing 869

Introduction to Samba 870

Running Samba Clients 874

Setting Up a Samba Server 878

Troubleshooting 887

Chapter Summary 889

Exercises 890

Advanced Exercises 890

Chapter 25: DNS/BIND: Tracking Domain Names and Addresses 891

Introduction to DNS 892

Setting Up a DNS Server 904

Configuring a DNS Server 907

Chapter Summary 920

Exercises 921

Advanced Exercises 921

Chapter 26: ufw, gufw, and iptables: Setting Up a Firewall 923

ufw: The Uncomplicated Firewall 924

gufw: The Graphical Interface to ufw 927

Introduction to iptables 932

Building a Set of Rules Using iptables 937

Copying Rules to and from the Kernel 944

Sharing an Internet Connection Using NAT 945

Chapter Summary 948

Exercises 949

Advanced Exercises 949

Chapter 27: Apache (apache2): Setting Up a Web Server 951

Introduction 952

Running an Apache Web Server 954

Configuration Directives 961

Advanced Configuration 984

Troubleshooting 990

Modules 991

webalizer: Analyzes Web Traffic 997

Error Codes 997

Chapter Summary 998

Exercises 998

Advanced Exercises 999

Part V: Programming Tools 1001

Chapter 28: Programming the Bourne Again Shell (bash) 1003

Control Structures 1004

File Descriptors 1038

Parameters 1044

Variables 1053

Builtin Commands 1062

Expressions 1078

Implicit Command-Line Continuation 1085

Shell Programs 1086

Chapter Summary 1096

Exercises 1098

Advanced Exercises 1100

Chapter 29: The Python Programming Language 1103

Introduction 1104

Scalar Variables, Lists, and Dictionaries 1108

Control Structures 1114

Reading from and Writing to Files 1119

Regular Expressions 1123

Defining a Function 1124

Using Libraries 1125

Lambda Functions 1129

List Comprehensions 1130

Chapter Summary 1131

Exercises 1132

Advanced Exercises 1132

Chapter 30: The MariaDB SQL Database Management System 1135

History 1136

Notes 1136

Installing a MariaDB Server 1140

Setting Up MariaDB 1141

Examples 1145

Chapter Summary 1157

Exercises 1157

Advanced Exercises 1157

Part VI: Appendixes 1159

Appendix A: Regular Expressions 1161

Characters 1162

Delimiters 1162

Simple Strings 1162

Special Characters 1162

Rules 1165

Bracketing Expressions 1166

The Replacement String 1166

Extended Regular Expressions 1167

Appendix Summary 1169

Appendix B: Help 1171

Solving a Problem 1172

Finding Linux-Related Information 1173

Specifying a Terminal 1175

Appendix C: Keeping the System Up to Date Using yum 1177

Installing and Removing Software Packages Using yum 1178

Working with yum 1179

Appendix D: LPI and Comptia Certification 1183

More Information 1184

Linux Essentials 1184

Certification Exam 1 Objectives: LX0-101 1198

Certification Exam 2 Objectives: LX0-102 1214

Glossary 1231

JumpStart Index 1285

File Tree Index 1287

Utility Index 1291

Main Index 1297

Preface

The Book

Whether you are an end user, a system administrator, or a little of both, this book explains with step-by-step examples how to get the most out of an Ubuntu Linux system. In 27 chapters, this book takes you from installing an Ubuntu system through understanding its inner workings to setting up secure servers that run on the system.

The Audience

This book is designed for a wide range of readers. It does not require you to have programming experience, although having some experience using a general-purpose computer, such as a Windows, Macintosh, UNIX, or another Linux system is certainly helpful. This book is appropriate for

  • Students who are taking a class in which they use Linux
  • Home users who want to set up and/or run Linux
  • Professionals who use Linux at work
  • System administrators who need an understanding of Linux and the tools that are available to them
  • Computer science students who are studying the Linux operating system
  • Programmers who need to understand the Linux programming environment
  • Technical executives who want to get a grounding in Linux

Benefits

A Practical Guide to Ubuntu Linux® gives you a broad understanding of many facets of Linux, from installing Ubuntu Linux through using and customizing it. No matter what your background, this book provides the knowledge you need to get on with your work. You will come away from this book understanding how to use Linux, and this book will remain a valuable reference for years to come.

Overlap

If you read A Practical Guide to Linux® Commands, Editors, and Shell Programming, you will notice some overlap between that book and the one you are reading now. The first chapter, the chapters on the utilities and the filesystem, and the appendix on regular expressions are very similar in the two books, as are the three chapters on the Bourne Again Shell (bash). Chapters that appear in this book but do not appear in A Practical Guide to Linux® Commands, Editors, and Shell Programming include Chapters 2 and 3 (installation), Chapters 4 and 8 (Ubuntu Linux and the GUI), Chapter 10 (networking), all of the chapters in Part IV (system administration) and Part V (servers), and Appendix C (security).

Differences

While this book explains how to use Linux from a graphical interface and from the command line (a textual interface), A Practical Guide to Linux® Commands, Editors, and Shell Programming works exclusively with the command line. It includes full chapters on the vi and emacs editors, as well as chapters on the gawk pattern processing language and the sed stream editor. In addition, it has a command reference section that provides extensive examples of the use of more than 80 of the most important Linux utilities. You can use these utilities to solve problems without resorting to programming in C.

This Book Includes Ubuntu Gutsy Gibbon (7.10) on a Live/Install DVD

This book includes a live/install DVD that holds the Gutsy Gibbon (7.10) release of Ubuntu Linux. You can use this DVD to run a live Ubuntu session that displays the GNOME desktop without making any changes to your computer: Boot from the DVD, run an Ubuntu live session, and log off. Your system remains untouched: When you reboot, it is exactly as it was before you ran the Ubuntu live session. Alternatively, you can install Ubuntu from the live session. Chapter 2 helps you get ready to install Ubuntu. Chapter 3 provides step-by-step instructions for installing Ubuntu from this DVD. This book guides you through learning about, using, and administrating an Ubuntu Linux session.

DVD Features

The included DVD incorporates all the features of the live/install Desktop CD as well as the Alternate and Server CDs. It also includes all software packages supported by Ubuntu. You can use it to perform a graphical or textual (command line) installation of either a graphical or a textual Ubuntu system. If you do not have an Internet connection, you can use the DVD as a software repository and install any supported software packages from it.

Features of This Book

This book is designed and organized so you can get the most out of it in the shortest amount of time. You do not have to read this book straight through in page order. Instead, once you are comfortable using Linux, you can use this book as a reference: Look up a topic of interest in the table of contents or index and read about it. Or think of the book as a catalog of Linux topics: Flip through the pages until a topic catches your eye. The book includes many pointers to Web sites where you can get additional information: Consider the Internet an extension of this book.

A Practical Guide to Ubuntu Linux® is structured with the following features:

  • Optional sections enable you to read the book at different levels, returning to more difficult material when you are ready to delve into it.
  • Caution boxes highlight procedures that can easily go wrong, giving you guidance before you run into trouble.
  • Tip boxes highlight ways you can save time by doing something differently or situations when it may be useful or just interesting to have additional information.
  • Security boxes point out places where you can make a system more secure. The security appendix presents a quick background in system security issues.
  • Concepts are illustrated by practical examples throughout the book.
  • Chapter summaries review the important points covered in each chapter.
  • Review exercises are included at the end of each chapter for readers who want to further hone their skills. Answers to even-numbered exercises are available at www.sobell.com.
  • The glossary defines more than 500 common terms.
  • The chapters that cover servers include JumpStart sections that get you off to a quick start using clients and setting up servers. Once a server is up and running, you can test and modify its configuration as explained in the rest of the chapter.
  • This book provides resources for finding software on the Internet. It also explains how to download and install software using Synaptic, aptitude, the GNOME Add/Remove Applications window, and BitTorrent. It details controlling automatic updates using the Update Notifier and the Update Manager window.
  • This book describes in detail many important GNU tools, including the GNOME desktop, the Nautilus File Browser, the parted and gparted partition editors, the gzip compression utility, and many command line utilities that come from the GNU project.
  • Pointers throughout the text provide help in obtaining online documentation from many sources, including the local system, the Ubuntu Web site, and other locations on the Internet.
  • Many useful URLs point to Web sites where you can obtain software, security programs and information, and more.
  • The comprehensive index helps you locate topics quickly and easily.

Key Topics Covered in This Book

This book contains a lot of information. This section distills and summarizes its contents. In addition, “Details” (starting on page xli) describes what each chapter covers. Finally, the table of contents provides more detail.

Installation

The book:

  • Describes how to download Ubuntu Linux ISO images from the Internet and burn the Ubuntu live/install Desktop CD, the DVD, or the Ubuntu Alternate or Server installation CD.
  • Helps you plan the layout of the system’s hard disk. It includes a discussion of partitions, partition tables, and mount points, and assists you in using the ubiquity or gparted graphical partitioner or the Ubuntu textual partitioner to partition the hard disk.
  • Explains how to set up a dual-boot system so you can install Ubuntu Linux on a Windows system and boot either operating system.
  • Describes in detail how to install Ubuntu Linux from a live/install Desktop CD or the live/install DVD using the ubiquity graphical installer. It also explains how to use the textual installer found on the Alternate CD, the Server CD, and the DVD. The graphical installer is fast and easy to use. The textual installer gives you more options and works on systems with less RAM (system memory).
  • Covers testing an Ubuntu CD/DVD for defects, setting boot command line parameters (boot options), and creating a RAID array.
  • Covers the details of installing and customizing the X.org version of the X Window System either graphically using the Screen and Graphics Preferences window or manually with a text editor.

Working with Ubuntu Linux

The book:

  • Introduces the GNOME desktop (GUI) and explains how to use desktop tools, including the Top and Bottom panels, panel objects, the Main menu, object context menus, the Workspace Switcher, the Nautilus File Browser, and the GNOME Terminal emulator.
  • Explains how to use the Appearance Preferences window to add and modify themes to customize your desktop to please your senses and help you work more efficiently.
  • Details how to set up 3D desktop visual effects that take advantage of Compiz Fusion.
  • Covers the Bourne Again Shell (bash) in three chapters, including an entire chapter on shell programming that includes many sample shell scripts. These chapters provide clear explanations and extensive examples of how bash works both from the command line in day-to-day work and as a programming language to write shell scripts.
  • Explains the textual (command line) interface and introduces more than 30 command line utilities.
  • Presents a tutorial on the vim textual editor.
  • Covers types of networks, network protocols, and network utilities.
  • Explains hostnames, IP addresses, and subnets, and explores how to use host and dig to look up domain names and IP addresses on the Internet.
  • Covers distributed computing and the client/server model.
  • Explains how to use ACLs (Access Control Lists) to fine-tune user access permissions.

System Administration

The book:

  • Explains how to use the Ubuntu graphical and textual (command line) tools to configure the display, DNS, NFS, Samba, Apache, a firewall, a network interface, and more. You can also use these tools to add users and manage local and remote printers.
  • Goes into detail about using sudo to allow specific users to work with root privileges (become Superuser) and customizing the way sudo works by editing the sudoers configuration file. It also explains how you can unlock the root account if necessary.
  • Describes how to use the following tools to download and install software to keep a system up-to-date and to install new software:
    • The Software Sources window controls which Ubuntu and third-party software repositories Ubuntu downloads software packages from and whether Ubuntu downloads updates automatically. You can also use this window to cause Ubuntu to download and install security updates automatically.
    • If you do not have an Internet connection, you can use the Software Sources window to set up the DVD included with this book as a software repository. You can then install any software packages that Ubuntu supports from this repository.
    • Based on how you set up updates in the Software Sources window, the Update Notifier pops up on the desktop to let you know when software updates are available. Click the Update Notifier to open the Update Manager window, from which you can download and install updates.
    • The Add/Remove Applications window provides an easy way to select, download, and install a wide range of software packages.
    • Synaptic allows you to search for, install, and remove software packages. It gives you more ways to search for packages than does the Add/Remove Applications window.
    • APT downloads and installs software packages from the Internet (or the included DVD), keeping a system up-to-date and resolving dependencies as it processes the packages. You can use APT from a graphical interface (Synaptic) or from several textual interfaces (e.g., aptitude and apt-get).
    • BitTorrent is a good choice for distributing large amounts of data such as the Ubuntu installation DVD and CDs. The more people who use BitTorrent to download a file, the faster it works.
  • Covers graphical system administration tools, including the many tools available from the GNOME Main menu.
  • Explains system operation, including the boot process, init scripts, recovery (single-user) and multiuser modes, and steps to take if the system crashes.
  • Describes how to use and program the new Upstart init daemon, which replaces the System V init daemon.
  • Describes files, directories, and filesystems, including types of files and filesystems, fstab (the filesystem table), and automatically mounted filesystems, and explains how to fine-tune and check the integrity of filesystems.
  • Covers backup utilities, including tar, cpio, dump, and restore.
  • Describes compression/archive utilities, including gzip, bzip2, compress, and zip.
  • Explains how to customize and build a Linux kernel.

Security

The book:

  • Helps you manage basic system security issues using ssh (secure shell), vsftpd (secure FTP server), Apache (Web server), iptables (firewalls), and more.
  • Covers using firestarter to share an Internet connection over a LAN, run a DHCP server, and set up a basic firewall to protect the system.
  • Provides instructions on using iptables to share an Internet connection over a LAN and to build advanced firewalls.
  • Describes how to set up a chroot jail to help protect a server system.
  • Explains how to use TCP wrappers to control who can access a server.

Clients and Servers

The book:

  • Explains how to set up and use the most popular Linux servers, providing a chapter on each: Apache, Samba, OpenSSH, exim4, DNS, NFS, FTP, firestarter and iptables, and NIS (all of which are supported by Ubuntu Linux).
  • Describes how to set up a CUPS printer server.
  • Describes how to set up and use a DHCP server either by itself or from firestarter.

Programming

The book:

  • Provides a full chapter covering shell programming using bash, including many examples.

Details

Chapter 1 presents a brief history of Linux and explains some of the features that make it a cutting-edge operating system. The “Conventions Used in This Book” (page 17) section details the typefaces and terminology this book uses.

Part I

Part I, “Installing Ubuntu Linux,” discusses how to install Ubuntu Linux. Chapter 2 presents an overview of the process of installing Ubuntu Linux, including hardware requirements, downloading and burning a CD or DVD, and planning the layout of the hard disk. Chapter 3 is a step-by-step guide to installing Ubuntu Linux from a CD or DVD, using the graphical or textual installer. It also shows how to set up the X Window System and customize your desktop (GUI).

Part II

Part II, “Getting Started with Ubuntu Linux,” familiarizes you with Ubuntu Linux, covering logging in, the GUI, utilities, the filesystem, and the shell. Chapter 4 introduces desktop features, including the Top and Bottom panels and the Main menu; explains how to use the Nautilus File Browser to manage files, run programs, and connect to FTP and HTTP servers; covers finding documentation, dealing with login problems, and using the window manager; and presents some suggestions on where to find documentation, including manuals, tutorials, software notes, and HOWTOs. Chapter 5 introduces the shell command line interface, describes more than 30 useful utilities, and presents a tutorial on the vim text editor. Chapter 6 discusses the Linux hierarchical filesystem, covering files, filenames, pathnames, working with directories, access permissions, and hard and symbolic links. Chapter 7 introduces the Bourne Again Shell (bash) and discusses command line arguments and options, redirecting input to and output from commands, running programs in the background, and using the shell to generate and expand filenames.

TIP: Experienced users may want to skim Part IIIf you have used a UNIX or Linux system before, you may want to skim or skip some or all of the chapters in Part II. Part I has two sections that all readers should take a look at: “Conventions Used in This Book” (page 17), which explains the typographic and layout conventions used in this book, and “Where to Find Documentation” (page 124), which points out both local and remote sources of Linux and Ubuntu documentation.

Part III

Part III, “Digging into Ubuntu Linux,” goes into more detail about working with the system. Chapter 8 discusses the GUI (desktop) and includes a section on how to run a graphical program on a remote system and have the display appear locally. The section on GNOME describes several GNOME utilities, including the new Deskbar applet, and goes into more depth about the Nautilus File Browser. Chapter 9 extends the bash coverage from Chapter 7, explaining how to redirect error output, avoid overwriting files, and work with job control, processes, startup files, important shell builtin commands, parameters, shell variables, and aliases. Chapter 10 explains networks, network security, and the Internet and discusses types of networks, subnets, protocols, addresses, hostnames, and various network utilities. The section on distributed computing describes the client/server model and some of the servers you can use on a network. Chapter 11 goes into greater depth about shell programming using bash, with the discussion enhanced by extensive examples. Details of setting up and using clients and servers are reserved until Part V.

Part IV

Part IV covers system administration. Chapter 12 discusses core concepts such as the use of sudo, working with root privileges, system operation, chroot jails, TCP wrappers, general information about how to set up a server, DHCP, and PAM. Chapter 13 explains the Linux filesystem, going into detail about types of files, including special and device files; the use of fsck to verify the integrity of and repair filesystems; and the use of tune2fs to change filesystem parameters. Chapter 14 explains how to keep a system up-to-date by downloading software from the Internet and installing it, including examples of using APT programs such as aptitude, apt-get, and apt-cache. It also covers the dpkg software packaging system and the use of some dpkg utilities. Finally, it explains how to use BitTorrent from the command line to download files. Chapter 15 explains how to set up the CUPS printing system so you can print on both local and remote systems. Chapter 16 details customizing and building a Linux kernel. Chapter 17 covers additional administration tasks, including setting up user accounts, backing up files, scheduling automated tasks, tracking disk usage, and solving general problems. Chapter 18 explains how to set up a local area network (LAN), including both hardware (including wireless) and software configuration.

Part V

Part V goes into detail about setting up and running servers and connecting to them with clients. Where appropriate, these chapters include JumpStart sections that get you off to a quick start in using clients and setting up servers. The chapters in Part V cover the following clients/servers:

  • OpenSSH: Set up an OpenSSH server and use ssh, scp, and sftp to communicate securely over the Internet.
  • FTP: Set up a vsftpd secure FTP server and use any of several FTP clients to exchange files with the server.
  • Mail: Configure exim4 and use Webmail, POP3, or IMAP to retrieve email; use SpamAssassin to combat spam.
  • NIS: Set up NIS to facilitate system administration of a LAN.
  • NFS: Share filesystems between systems on a network.
  • Samba: Share filesystems and printers between Windows and Linux systems.
  • DNS/BIND: Set up a domain nameserver to let other systems on the Internet know the names and IP addresses of local systems they may need to contact.
  • firestarter and iptables : Share a single Internet connection between systems on a LAN, run a DHCP server, and set up a firewall to protect local systems.
  • Apache: Set up an HTTP server that serves Web pages that browsers can display. This chapter includes many suggestions for increasing Apache security.

Part VI

Part VI includes appendixes on regular expressions, helpful Web sites, system security, and free software. This part also includes an extensive glossary with more than 500 entries plus a comprehensive index.

Supplements

The author’s home page (www.sobell.com) contains downloadable listings of the longer programs from this book as well as pointers to many interesting and useful Linux sites on the World Wide Web, a list of corrections to the book, answers to even-numbered exercises, and a solicitation for corrections, comments, and suggestions.

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews