{"product_id":"ubuntu-linux-bible-isbn-9781119722335","title":"Ubuntu Linux Bible","description":"\u003cp\u003e\u003cb\u003eQuickly learn how to use Ubuntu, the fastest growing Linux distribution, in a personal or enterprise environment\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhether you're a newcomer to Linux or an experienced system administrator, the \u003ci\u003eUbuntu Linux Bible 10th Edition\u003c\/i\u003e provides what you need to get the most out of one the world's top Linux distributions. Clear, step-by-step instructions cover everything from installing Ubuntu and creating your desktop, to writing shell scripts and setting up file sharing on your network. This up-to-date guide covers the latest Ubuntu release with long-term support (version 20.04) as well as the previous version. Throughout the book, numerous examples, figures, and review questions with answers ensure that you will fully understand each key topic.\u003c\/p\u003e \u003cp\u003eOrganized into four parts, the book offers you the flexibility to master the basics in the \"Getting Started with Ubuntu Linux\" section, or to skip directly to more advanced tasks. \"Ubuntu for Desktop Users\" shows you how to setup email, surf the web, play games, and create and publish documents, spreadsheets, and presentations. \"Ubuntu for System Administrators\" covers user administration, system backup, device management, network configuration, and other fundamentals of Linux administration. The book's final section, \"Configuring Servers on Ubuntu,\" teaches you to use Ubuntu to support network servers for the web, e-mail, print services, networked file sharing, DHCP (network address management), and DNS (network name\/address resolution). This comprehensive, easy-to-use guide will help you:\u003c\/p\u003e \u003cul\u003e \u003cli\u003eInstall Ubuntu and create the perfect Linux desktop\u003c\/li\u003e \u003cli\u003eUse the wide variety of software included with Ubuntu Linux\u003c\/li\u003e \u003cli\u003eStay up to date on recent changes and new versions of Ubuntu\u003c\/li\u003e \u003cli\u003eCreate and edit graphics, and work with consumer IoT electronic devices\u003c\/li\u003e \u003cli\u003eAdd printers, disks, and other devices to your system\u003c\/li\u003e \u003cli\u003eConfigure core network services and administer Ubuntu systems\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\u003ci\u003eUbuntu Linux Bible 10th Edition\u003c\/i\u003e is a must-have for anyone looking for an accessible, step-by-step tutorial on this hugely popular Linux operating system.\u003c\/p\u003e \u003cp\u003eAcknowledgments ix\u003c\/p\u003e \u003cp\u003eIntroduction xxix\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I: Getting Started 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Starting with Linux 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding What Linux is 4\u003c\/p\u003e \u003cp\u003eUnderstanding How Linux Differs from Other Operating Systems 6\u003c\/p\u003e \u003cp\u003eExploring Linux History 7\u003c\/p\u003e \u003cp\u003eFree-flowing UNIX culture at Bell Labs 7\u003c\/p\u003e \u003cp\u003eCommercial UNIX 9\u003c\/p\u003e \u003cp\u003eBerkeley Software Distribution arrives 9\u003c\/p\u003e \u003cp\u003eUNIX Laboratory and commercialization 10\u003c\/p\u003e \u003cp\u003eGNU transitions UNIX to freedom 11\u003c\/p\u003e \u003cp\u003eBSD loses some steam 13\u003c\/p\u003e \u003cp\u003eLinus builds the missing piece 13\u003c\/p\u003e \u003cp\u003eOSI open source definition 14\u003c\/p\u003e \u003cp\u003eUnderstanding How Linux Distributions Emerged 16\u003c\/p\u003e \u003cp\u003eUnderstanding Red Hat 17\u003c\/p\u003e \u003cp\u003eUnderstanding Ubuntu and other Debian distributions 17\u003c\/p\u003e \u003cp\u003eFinding Professional Opportunities with Linux Today 18\u003c\/p\u003e \u003cp\u003eUnderstanding how companies make money with Linux 19\u003c\/p\u003e \u003cp\u003eSummary 20\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Creating the Perfect Linux Desktop 21\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Linux Desktop Technology 22\u003c\/p\u003e \u003cp\u003eStarting with the GNOME 3 Desktop Live Image 24\u003c\/p\u003e \u003cp\u003eUsing the GNOME 3 Desktop 25\u003c\/p\u003e \u003cp\u003eAfter the computer boots up 25\u003c\/p\u003e \u003cp\u003eNavigating with the mouse 25\u003c\/p\u003e \u003cp\u003eNavigating with the keyboard 30\u003c\/p\u003e \u003cp\u003eSetting up the GNOME 3 desktop 31\u003c\/p\u003e \u003cp\u003eExtending the GNOME 3 desktop 31\u003c\/p\u003e \u003cp\u003eUsing GNOME shell extensions 32\u003c\/p\u003e \u003cp\u003eUsing the GNOME Tweak Tool 33\u003c\/p\u003e \u003cp\u003eStarting with desktop applications 33\u003c\/p\u003e \u003cp\u003eManaging files and folders with Nautilus 33\u003c\/p\u003e \u003cp\u003eInstalling and managing additional software 35\u003c\/p\u003e \u003cp\u003ePlaying music with Rhythmbox 37\u003c\/p\u003e \u003cp\u003eStopping the GNOME 3 desktop 37\u003c\/p\u003e \u003cp\u003eUsing the Unity Graphical Shell with the GNOME Desktop 37\u003c\/p\u003e \u003cp\u003eUsing the Metacity window manager 38\u003c\/p\u003e \u003cp\u003eChanging GNOME’s appearance 40\u003c\/p\u003e \u003cp\u003eUsing the panels 40\u003c\/p\u003e \u003cp\u003eAdding a drawer 41\u003c\/p\u003e \u003cp\u003eChanging panel properties 41\u003c\/p\u003e \u003cp\u003eSummary 42\u003c\/p\u003e \u003cp\u003eExercises 42\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II: Becoming a Linux Power User 43\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Using the Shell 45\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAbout Shells and Terminal Windows 46\u003c\/p\u003e \u003cp\u003eUsing the shell prompt 47\u003c\/p\u003e \u003cp\u003eUsing a Terminal window 48\u003c\/p\u003e \u003cp\u003eUsing virtual consoles 49\u003c\/p\u003e \u003cp\u003eChoosing Your Shell 49\u003c\/p\u003e \u003cp\u003eRunning Commands 50\u003c\/p\u003e \u003cp\u003eUnderstanding command syntax 51\u003c\/p\u003e \u003cp\u003eLocating commands 53\u003c\/p\u003e \u003cp\u003eRecalling Commands Using Command History 56\u003c\/p\u003e \u003cp\u003eCommand-line editing 56\u003c\/p\u003e \u003cp\u003eCommand-line completion 58\u003c\/p\u003e \u003cp\u003eCommand-line recall 59\u003c\/p\u003e \u003cp\u003eConnecting and Expanding Commands 61\u003c\/p\u003e \u003cp\u003ePiping between commands 62\u003c\/p\u003e \u003cp\u003eSequential commands 62\u003c\/p\u003e \u003cp\u003eBackground commands 63\u003c\/p\u003e \u003cp\u003eExpanding commands 63\u003c\/p\u003e \u003cp\u003eExpanding arithmetic expressions 63\u003c\/p\u003e \u003cp\u003eExpanding variables 64\u003c\/p\u003e \u003cp\u003eUsing Shell Variables 64\u003c\/p\u003e \u003cp\u003eCreating and using aliases 66\u003c\/p\u003e \u003cp\u003eExiting the shell 67\u003c\/p\u003e \u003cp\u003eCreating Your Shell Environment 67\u003c\/p\u003e \u003cp\u003eConfiguring your shell 67\u003c\/p\u003e \u003cp\u003eSetting your prompt 68\u003c\/p\u003e \u003cp\u003eAdding environment variables 70\u003c\/p\u003e \u003cp\u003eGetting Information about Commands 71\u003c\/p\u003e \u003cp\u003eSummary 74\u003c\/p\u003e \u003cp\u003eExercises 74\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Moving Around the Filesystem 77\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing Basic Filesystem Commands 80\u003c\/p\u003e \u003cp\u003eUsing Metacharacters and Operators 82\u003c\/p\u003e \u003cp\u003eUsing fi le-matching metacharacters 82\u003c\/p\u003e \u003cp\u003eUsing fi le-redirection metacharacters 84\u003c\/p\u003e \u003cp\u003eUsing brace expansion characters 85\u003c\/p\u003e \u003cp\u003eListing Files and Directories 86\u003c\/p\u003e \u003cp\u003eUnderstanding File Permissions and Ownership 90\u003c\/p\u003e \u003cp\u003eChanging permissions with chmod (numbers) 91\u003c\/p\u003e \u003cp\u003eChanging permissions with chmod (letters) 92\u003c\/p\u003e \u003cp\u003eSetting default file permission with umask 93\u003c\/p\u003e \u003cp\u003eChanging file ownership 93\u003c\/p\u003e \u003cp\u003eMoving, Copying, and Removing Files 94\u003c\/p\u003e \u003cp\u003eSummary 95\u003c\/p\u003e \u003cp\u003eExercises 96\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Working with Text Files 97\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eEditing Files with vim and vi 97\u003c\/p\u003e \u003cp\u003eStarting with vi 99\u003c\/p\u003e \u003cp\u003eAdding text 99\u003c\/p\u003e \u003cp\u003eMoving around in the text 100\u003c\/p\u003e \u003cp\u003eDeleting, copying, and changing text 101\u003c\/p\u003e \u003cp\u003ePasting (putting) text 102\u003c\/p\u003e \u003cp\u003eRepeating commands 102\u003c\/p\u003e \u003cp\u003eExiting vi 102\u003c\/p\u003e \u003cp\u003eSkipping around in the file 103\u003c\/p\u003e \u003cp\u003eSearching for text 103\u003c\/p\u003e \u003cp\u003eUsing ex mode 104\u003c\/p\u003e \u003cp\u003eLearning more about vi and vim 104\u003c\/p\u003e \u003cp\u003eFinding Files 105\u003c\/p\u003e \u003cp\u003eUsing locate to find files by name 105\u003c\/p\u003e \u003cp\u003eSearching for files with find 107\u003c\/p\u003e \u003cp\u003eFinding files by name 108\u003c\/p\u003e \u003cp\u003eFinding files by size 108\u003c\/p\u003e \u003cp\u003eFinding files by user 109\u003c\/p\u003e \u003cp\u003eFinding files by permission 109\u003c\/p\u003e \u003cp\u003eFinding files by date and time 110\u003c\/p\u003e \u003cp\u003eUsing “not” and “or” when finding files 111\u003c\/p\u003e \u003cp\u003eFinding files and executing commands 112\u003c\/p\u003e \u003cp\u003eSearching in files with grep 113\u003c\/p\u003e \u003cp\u003eSummary 115\u003c\/p\u003e \u003cp\u003eExercises 115\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Managing Running Processes 117\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Processes 117\u003c\/p\u003e \u003cp\u003eListing Processes 118\u003c\/p\u003e \u003cp\u003eListing processes with ps 118\u003c\/p\u003e \u003cp\u003eListing and changing processes with top 120\u003c\/p\u003e \u003cp\u003eListing processes with System Monitor 122\u003c\/p\u003e \u003cp\u003eManaging Background and Foreground Processes 124\u003c\/p\u003e \u003cp\u003eStarting background processes 124\u003c\/p\u003e \u003cp\u003eUsing foreground and background commands 125\u003c\/p\u003e \u003cp\u003eKilling and Renicing Processes 126\u003c\/p\u003e \u003cp\u003eKilling processes with kill and killall 126\u003c\/p\u003e \u003cp\u003eUsing kill to signal processes by PID 127\u003c\/p\u003e \u003cp\u003eUsing killall to signal processes by name 128\u003c\/p\u003e \u003cp\u003eSetting processor priority with nice and renice 128\u003c\/p\u003e \u003cp\u003eLimiting Processes with cgroups 129\u003c\/p\u003e \u003cp\u003eSummary 131\u003c\/p\u003e \u003cp\u003eExercises 131\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Writing Simple Shell Scripts 133\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Shell Scripts 133\u003c\/p\u003e \u003cp\u003eExecuting and debugging shell scripts 134\u003c\/p\u003e \u003cp\u003eUnderstanding shell variables 135\u003c\/p\u003e \u003cp\u003eSpecial shell positional parameters 136\u003c\/p\u003e \u003cp\u003eReading in parameters 137\u003c\/p\u003e \u003cp\u003eParameter expansion in bash 137\u003c\/p\u003e \u003cp\u003ePerforming arithmetic in shell scripts 138\u003c\/p\u003e \u003cp\u003eUsing programming constructs in shell scripts 139\u003c\/p\u003e \u003cp\u003eThe “if then” statements 139\u003c\/p\u003e \u003cp\u003eThe case command 142\u003c\/p\u003e \u003cp\u003eThe “for do” loop 143\u003c\/p\u003e \u003cp\u003eThe “while do” and “until do” loops 144\u003c\/p\u003e \u003cp\u003eTrying some useful text manipulation programs 145\u003c\/p\u003e \u003cp\u003eThe global regular expression print 145\u003c\/p\u003e \u003cp\u003eRemove sections of lines of text (cut) 145\u003c\/p\u003e \u003cp\u003eTranslate or delete characters (tr) 146\u003c\/p\u003e \u003cp\u003eThe stream editor (sed) 146\u003c\/p\u003e \u003cp\u003eUsing simple shell scripts 147\u003c\/p\u003e \u003cp\u003eTelephone list 147\u003c\/p\u003e \u003cp\u003eBackup script 148\u003c\/p\u003e \u003cp\u003eSummary 149\u003c\/p\u003e \u003cp\u003eExercises 149\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III: Becoming a Linux System Administrator 151\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Learning System Administration 153\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding System Administration 153\u003c\/p\u003e \u003cp\u003eUsing Graphical Administration Tools 155\u003c\/p\u003e \u003cp\u003eUsing Cockpit browser-based administration 155\u003c\/p\u003e \u003cp\u003eUsing other browser-based admin tools 157\u003c\/p\u003e \u003cp\u003eInvoking Administration Privileges 158\u003c\/p\u003e \u003cp\u003eBecoming root from the shell 158\u003c\/p\u003e \u003cp\u003eGaining temporary admin access with sudo 159\u003c\/p\u003e \u003cp\u003eExploring Administrative Commands, Configuration Files, and Log Files 161\u003c\/p\u003e \u003cp\u003eAdministrative commands 161\u003c\/p\u003e \u003cp\u003eAdministrative configuration files 162\u003c\/p\u003e \u003cp\u003eAdministrative log files and systemd journal 165\u003c\/p\u003e \u003cp\u003eUsing journalctl to view the systemd journal 165\u003c\/p\u003e \u003cp\u003eManaging log messages with rsyslogd 166\u003c\/p\u003e \u003cp\u003eUsing Other Administrative Accounts 167\u003c\/p\u003e \u003cp\u003eChecking and Configuring Hardware 167\u003c\/p\u003e \u003cp\u003eChecking your hardware 168\u003c\/p\u003e \u003cp\u003eManaging removable hardware 171\u003c\/p\u003e \u003cp\u003eWorking with loadable modules 172\u003c\/p\u003e \u003cp\u003eListing loaded modules 172\u003c\/p\u003e \u003cp\u003eLoading modules 173\u003c\/p\u003e \u003cp\u003eRemoving modules 174\u003c\/p\u003e \u003cp\u003eSummary 174\u003c\/p\u003e \u003cp\u003eExercises 175\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Installing Linux 177\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChoosing a Computer 178\u003c\/p\u003e \u003cp\u003eInstalling Ubuntu Desktop 180\u003c\/p\u003e \u003cp\u003eInstalling Ubuntu Server 185\u003c\/p\u003e \u003cp\u003eUnderstanding Cloud-Based Installations 188\u003c\/p\u003e \u003cp\u003eInstalling Linux in the Enterprise 189\u003c\/p\u003e \u003cp\u003eExploring Common Installation Topics 189\u003c\/p\u003e \u003cp\u003eUpgrading or installing from scratch 189\u003c\/p\u003e \u003cp\u003eDual booting 190\u003c\/p\u003e \u003cp\u003eInstalling Linux to run virtually 191\u003c\/p\u003e \u003cp\u003eUsing installation boot options 192\u003c\/p\u003e \u003cp\u003eBoot options for disabling features 192\u003c\/p\u003e \u003cp\u003eBoot options for video problems 193\u003c\/p\u003e \u003cp\u003eBoot options for special installation types 193\u003c\/p\u003e \u003cp\u003eUsing specialized storage 194\u003c\/p\u003e \u003cp\u003ePartitioning hard drives 195\u003c\/p\u003e \u003cp\u003eUnderstanding different partition types 196\u003c\/p\u003e \u003cp\u003eTips for creating partitions 196\u003c\/p\u003e \u003cp\u003eUsing the GRUB 2 boot loader 198\u003c\/p\u003e \u003cp\u003eSummary 199\u003c\/p\u003e \u003cp\u003eExercises 199\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Getting and Managing Software 201\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eManaging Software on the Desktop 201\u003c\/p\u003e \u003cp\u003eGoing Beyond the Software Window 203\u003c\/p\u003e \u003cp\u003eUnderstanding Linux Software Packaging 204\u003c\/p\u003e \u003cp\u003eWorking with Debian Packaging 205\u003c\/p\u003e \u003cp\u003eAPT basics 205\u003c\/p\u003e \u003cp\u003eWorking with APT repositories 209\u003c\/p\u003e \u003cp\u003eWorking with dpkg 211\u003c\/p\u003e \u003cp\u003eSummary 214\u003c\/p\u003e \u003cp\u003eExercises 214\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Managing User Accounts 215\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating User Accounts 215\u003c\/p\u003e \u003cp\u003eAdding users with adduser 218\u003c\/p\u003e \u003cp\u003eSetting user defaults 220\u003c\/p\u003e \u003cp\u003eModifying users with usermod 222\u003c\/p\u003e \u003cp\u003eDeleting users with deluser 223\u003c\/p\u003e \u003cp\u003eUnderstanding Group Accounts 223\u003c\/p\u003e \u003cp\u003eUsing group accounts 224\u003c\/p\u003e \u003cp\u003eCreating group accounts 225\u003c\/p\u003e \u003cp\u003eManaging Users in the Enterprise 225\u003c\/p\u003e \u003cp\u003eSetting permissions with Access Control Lists 226\u003c\/p\u003e \u003cp\u003eSetting ACLs with setfacl 227\u003c\/p\u003e \u003cp\u003eSetting default ACLs 228\u003c\/p\u003e \u003cp\u003eEnabling ACLs 229\u003c\/p\u003e \u003cp\u003eAdding directories for users to collaborate 231\u003c\/p\u003e \u003cp\u003eCreating group collaboration directories (set GID bit) 231\u003c\/p\u003e \u003cp\u003eCreating restricted deletion directories (sticky bit) 233\u003c\/p\u003e \u003cp\u003eCentralizing User Accounts 233\u003c\/p\u003e \u003cp\u003eSummary 234\u003c\/p\u003e \u003cp\u003eExercises 234\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Managing Disks and Filesystems 237\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Disk Storage 237\u003c\/p\u003e \u003cp\u003ePartitioning Hard Disks 239\u003c\/p\u003e \u003cp\u003eUnderstanding partition tables 239\u003c\/p\u003e \u003cp\u003eViewing disk partitions 240\u003c\/p\u003e \u003cp\u003eCreating a single-partition disk 241\u003c\/p\u003e \u003cp\u003eCreating a multiple-partition disk 245\u003c\/p\u003e \u003cp\u003eUsing Logical Volume Manager Partitions 249\u003c\/p\u003e \u003cp\u003eChecking an existing LVM 249\u003c\/p\u003e \u003cp\u003eCreating LVM logical volumes 252\u003c\/p\u003e \u003cp\u003eGrowing LVM logical volumes 254\u003c\/p\u003e \u003cp\u003eMounting Filesystems 254\u003c\/p\u003e \u003cp\u003eSupported filesystems 255\u003c\/p\u003e \u003cp\u003eEnabling swap areas 257\u003c\/p\u003e \u003cp\u003eDisabling swap area 258\u003c\/p\u003e \u003cp\u003eUsing the fstab file to define mountable filesystems 258\u003c\/p\u003e \u003cp\u003eUsing the mount command to mount filesystems 261\u003c\/p\u003e \u003cp\u003eMounting a disk image in loopback 262\u003c\/p\u003e \u003cp\u003eUsing the umount command 262\u003c\/p\u003e \u003cp\u003eUsing the mkfs Command to Create a Filesystem 263\u003c\/p\u003e \u003cp\u003eManaging Storage with Cockpit 264\u003c\/p\u003e \u003cp\u003eSummary 265\u003c\/p\u003e \u003cp\u003eExercises 266\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV: Becoming a Linux Server Administrator 267\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Understanding Server Administration 269\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting Started with Server Administration 270\u003c\/p\u003e \u003cp\u003eStep 1: Install the server 270\u003c\/p\u003e \u003cp\u003eStep 2: Configure the server 272\u003c\/p\u003e \u003cp\u003eUsing configuration files 272\u003c\/p\u003e \u003cp\u003eChecking the default configuration 272\u003c\/p\u003e \u003cp\u003eStep 3: Start the server 272\u003c\/p\u003e \u003cp\u003eStep 4: Secure the server 274\u003c\/p\u003e \u003cp\u003ePassword protection 274\u003c\/p\u003e \u003cp\u003eFirewalls 274\u003c\/p\u003e \u003cp\u003eTCP Wrappers 274\u003c\/p\u003e \u003cp\u003eAppArmor 275\u003c\/p\u003e \u003cp\u003eSecurity settings in configuration files 275\u003c\/p\u003e \u003cp\u003eStep 5: Monitor the server 275\u003c\/p\u003e \u003cp\u003eConfigure logging 275\u003c\/p\u003e \u003cp\u003eRun system activity reports 276\u003c\/p\u003e \u003cp\u003eWatch activity live with Cockpit 276\u003c\/p\u003e \u003cp\u003eKeep system software up to date 277\u003c\/p\u003e \u003cp\u003eCheck the filesystem for signs of crackers 277\u003c\/p\u003e \u003cp\u003eChecking and Setting Servers 277\u003c\/p\u003e \u003cp\u003eManaging Remote Access with the Secure Shell Service 277\u003c\/p\u003e \u003cp\u003eStarting the openssh-server service 278\u003c\/p\u003e \u003cp\u003eUsing SSH client tools 278\u003c\/p\u003e \u003cp\u003eUsing ssh for remote login 279\u003c\/p\u003e \u003cp\u003eUsing SSH for remote execution 280\u003c\/p\u003e \u003cp\u003eCopying files between systems with scp and rsync 281\u003c\/p\u003e \u003cp\u003eInteractive copying with sftp 284\u003c\/p\u003e \u003cp\u003eUsing key-based (passwordless) authentication 285\u003c\/p\u003e \u003cp\u003eConfiguring System Logging 286\u003c\/p\u003e \u003cp\u003eEnabling system logging with rsyslog 287\u003c\/p\u003e \u003cp\u003eUnderstanding the rsyslog.conf file 287\u003c\/p\u003e \u003cp\u003eUnderstanding log messages 289\u003c\/p\u003e \u003cp\u003eSetting up and using a loghost with rsyslogd 289\u003c\/p\u003e \u003cp\u003eWatching logs with logwatch 290\u003c\/p\u003e \u003cp\u003eChecking System Resources with sar 291\u003c\/p\u003e \u003cp\u003eChecking System Space 293\u003c\/p\u003e \u003cp\u003eDisplaying system space with df 293\u003c\/p\u003e \u003cp\u003eChecking disk usage with du 294\u003c\/p\u003e \u003cp\u003eFinding disk consumption with find 294\u003c\/p\u003e \u003cp\u003eManaging Servers in the Enterprise 295\u003c\/p\u003e \u003cp\u003eSummary 296\u003c\/p\u003e \u003cp\u003eExercises 296\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Administering Networking 299\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eConfiguring Networking for Desktops 300\u003c\/p\u003e \u003cp\u003eChecking your network interfaces 302\u003c\/p\u003e \u003cp\u003eChecking your network from NetworkManager 302\u003c\/p\u003e \u003cp\u003eChecking your network from Cockpit 303\u003c\/p\u003e \u003cp\u003eChecking your network from the command line 304\u003c\/p\u003e \u003cp\u003eConfiguring network interfaces 308\u003c\/p\u003e \u003cp\u003eSetting IP addresses manually 308\u003c\/p\u003e \u003cp\u003eSetting IP address aliases 309\u003c\/p\u003e \u003cp\u003eSetting routes 310\u003c\/p\u003e \u003cp\u003eConfiguring a network proxy connection 311\u003c\/p\u003e \u003cp\u003eConfiguring Networking from the Command Line 312\u003c\/p\u003e \u003cp\u003eConfigure networking with nmtui 312\u003c\/p\u003e \u003cp\u003eEditing a NetworkManager TUI connection 313\u003c\/p\u003e \u003cp\u003eUnderstanding networking configuration files 314\u003c\/p\u003e \u003cp\u003eOther networking files 315\u003c\/p\u003e \u003cp\u003eSetting alias network interfaces 318\u003c\/p\u003e \u003cp\u003eSetting up Ethernet channel bonding 319\u003c\/p\u003e \u003cp\u003eSetting custom routes 320\u003c\/p\u003e \u003cp\u003eConfiguring Networking in the Enterprise 321\u003c\/p\u003e \u003cp\u003eConfiguring Linux as a router 321\u003c\/p\u003e \u003cp\u003eConfiguring Linux as a DHCP server 322\u003c\/p\u003e \u003cp\u003eConfiguring Linux as a DNS server 322\u003c\/p\u003e \u003cp\u003eConfiguring Linux as a proxy server 323\u003c\/p\u003e \u003cp\u003eSummary 323\u003c\/p\u003e \u003cp\u003eExercises 324\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Starting and Stopping Services 327\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding the Initialization Daemon (init or systemd) 328\u003c\/p\u003e \u003cp\u003eUnderstanding the classic init daemons 329\u003c\/p\u003e \u003cp\u003eUnderstanding systemd initialization 335\u003c\/p\u003e \u003cp\u003eLearning systemd basics 335\u003c\/p\u003e \u003cp\u003eLearning systemd’s backward compatibility to SysVinit 341\u003c\/p\u003e \u003cp\u003eChecking the Status of Services 343\u003c\/p\u003e \u003cp\u003eChecking services for SysVinit systems 343\u003c\/p\u003e \u003cp\u003eStopping and Starting Services 346\u003c\/p\u003e \u003cp\u003eStopping and starting SysVinit services 346\u003c\/p\u003e \u003cp\u003eStopping a service with systemd 347\u003c\/p\u003e \u003cp\u003eStarting a service with systemd 348\u003c\/p\u003e \u003cp\u003eRestarting a service with systemd 348\u003c\/p\u003e \u003cp\u003eReloading a service with systemd 349\u003c\/p\u003e \u003cp\u003eEnabling Persistent Services 350\u003c\/p\u003e \u003cp\u003eConfiguring persistent services for SysVinit 350\u003c\/p\u003e \u003cp\u003eEnabling a service with systemd 351\u003c\/p\u003e \u003cp\u003eDisabling a service with systemd 352\u003c\/p\u003e \u003cp\u003eConfiguring a Default Runlevel or Target Unit 353\u003c\/p\u003e \u003cp\u003eConfiguring the SysVinit default runlevel 353\u003c\/p\u003e \u003cp\u003eAdding New or Customized Services 354\u003c\/p\u003e \u003cp\u003eAdding new services to SysVinit 355\u003c\/p\u003e \u003cp\u003eStep 1: Create a new or customized service script file 355\u003c\/p\u003e \u003cp\u003eStep 2: Add the service script to \/etc\/rc.d\/init.d 356\u003c\/p\u003e \u003cp\u003eStep 3: Set appropriate permission on the script 357\u003c\/p\u003e \u003cp\u003eStep 4: Add the service to runlevel directories 357\u003c\/p\u003e \u003cp\u003eAdding new services to systemd 357\u003c\/p\u003e \u003cp\u003eStep 1: Create a new or customized service configuration unit file 358\u003c\/p\u003e \u003cp\u003eStep 2: Move the service configuration unit file 358\u003c\/p\u003e \u003cp\u003eStep 3: Add the service to the Wants directory 359\u003c\/p\u003e \u003cp\u003eSummary 360\u003c\/p\u003e \u003cp\u003eExercises 360\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Configuring a Print Server 363\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCommon UNIX Printing System 363\u003c\/p\u003e \u003cp\u003eSetting Up Printers 365\u003c\/p\u003e \u003cp\u003eAdding a printer automatically 365\u003c\/p\u003e \u003cp\u003eUsing web-based CUPS administration 366\u003c\/p\u003e \u003cp\u003eAllow remote printing administration 367\u003c\/p\u003e \u003cp\u003eAdd a printer not automatically detected 367\u003c\/p\u003e \u003cp\u003eUsing the Print Settings window 368\u003c\/p\u003e \u003cp\u003eConfiguring local printers with the Print Settings window 369\u003c\/p\u003e \u003cp\u003eConfiguring remote printers 372\u003c\/p\u003e \u003cp\u003eAdding a remote CUPS printer 373\u003c\/p\u003e \u003cp\u003eAdding a remote UNIX (LDP\/LPR) printer 373\u003c\/p\u003e \u003cp\u003eAdding a Windows (SMB) printer 374\u003c\/p\u003e \u003cp\u003eWorking with CUPS Printing 375\u003c\/p\u003e \u003cp\u003eConfiguring the CUPS server (cupsd.conf) 375\u003c\/p\u003e \u003cp\u003eStarting the CUPS server 376\u003c\/p\u003e \u003cp\u003eConfiguring CUPS printer options manually 377\u003c\/p\u003e \u003cp\u003eUsing Printing Commands 378\u003c\/p\u003e \u003cp\u003ePrinting with lp 378\u003c\/p\u003e \u003cp\u003eListing status with lpstat -t 379\u003c\/p\u003e \u003cp\u003eRemoving print jobs with cancel 379\u003c\/p\u003e \u003cp\u003eConfiguring Print Servers 380\u003c\/p\u003e \u003cp\u003eConfiguring a shared CUPS printer 380\u003c\/p\u003e \u003cp\u003eConfiguring a shared Samba printer 381\u003c\/p\u003e \u003cp\u003eUnderstanding smb.conf for printing 382\u003c\/p\u003e \u003cp\u003eSetting up SMB clients 382\u003c\/p\u003e \u003cp\u003eSummary 383\u003c\/p\u003e \u003cp\u003eExercises 383\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17: Configuring a Web Server r 385\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding the Apache Web Server 385\u003c\/p\u003e \u003cp\u003eGetting and Installing Your Apache Web Server 386\u003c\/p\u003e \u003cp\u003eControlling Apache 389\u003c\/p\u003e \u003cp\u003eSecuring Apache 389\u003c\/p\u003e \u003cp\u003eApache file permissions and ownership 389\u003c\/p\u003e \u003cp\u003eApache and firewalls 390\u003c\/p\u003e \u003cp\u003eApache and AppArmor 390\u003c\/p\u003e \u003cp\u003eUnderstanding the Apache configuration files 393\u003c\/p\u003e \u003cp\u003eUsing directives 393\u003c\/p\u003e \u003cp\u003eUnderstanding default settings 395\u003c\/p\u003e \u003cp\u003eAdding a virtual host to Apache 398\u003c\/p\u003e \u003cp\u003eAllowing users to publish their own web content 400\u003c\/p\u003e \u003cp\u003eSecuring your web traffic with TLS 401\u003c\/p\u003e \u003cp\u003eUnderstanding how SSL is configured 402\u003c\/p\u003e \u003cp\u003eGenerating an SSL key and self-signed certificate 403\u003c\/p\u003e \u003cp\u003eGenerating a certificate signing request 405\u003c\/p\u003e \u003cp\u003eTroubleshooting Your Web Server 406\u003c\/p\u003e \u003cp\u003eChecking for configuration errors 406\u003c\/p\u003e \u003cp\u003eAccess forbidden and server internal errors 408\u003c\/p\u003e \u003cp\u003eSummary 410\u003c\/p\u003e \u003cp\u003eExercises 410\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18: Configuring an FTP Server 413\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding FTP 413\u003c\/p\u003e \u003cp\u003eInstalling the vsftpd FTP Server 415\u003c\/p\u003e \u003cp\u003eControlling the vsftpd Service 416\u003c\/p\u003e \u003cp\u003eSecuring your FTP server 417\u003c\/p\u003e \u003cp\u003eIntegrating Linux file permissions with vsftpd 418\u003c\/p\u003e \u003cp\u003eConfiguring Your FTP Server 418\u003c\/p\u003e \u003cp\u003eSetting up user access 418\u003c\/p\u003e \u003cp\u003eAllowing uploading 419\u003c\/p\u003e \u003cp\u003eSetting up vsftpd for the Internet 420\u003c\/p\u003e \u003cp\u003eUsing FTP Clients to Connect to Your Server 422\u003c\/p\u003e \u003cp\u003eAccessing an FTP server from a browser 422\u003c\/p\u003e \u003cp\u003eAccessing an FTP server with the lftp command 423\u003c\/p\u003e \u003cp\u003eUsing the gFTP client 425\u003c\/p\u003e \u003cp\u003eSummary 426\u003c\/p\u003e \u003cp\u003eExercises 426\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 19: Configuring a Windows File Sharing (Samba) Server r 429\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Samba 429\u003c\/p\u003e \u003cp\u003eInstalling Samba 430\u003c\/p\u003e \u003cp\u003eControlling Samba 431\u003c\/p\u003e \u003cp\u003eViewing Samba processes 431\u003c\/p\u003e \u003cp\u003eConfiguring Samba 435\u003c\/p\u003e \u003cp\u003eConfiguring the [global] section 435\u003c\/p\u003e \u003cp\u003eConfiguring the [homes] section 437\u003c\/p\u003e \u003cp\u003eConfiguring the [printers] section 437\u003c\/p\u003e \u003cp\u003eCreating a Samba shared folder 438\u003c\/p\u003e \u003cp\u003eChecking the Samba share 438\u003c\/p\u003e \u003cp\u003eAccessing Samba Shares 441\u003c\/p\u003e \u003cp\u003eAccessing Samba shares in Linux 442\u003c\/p\u003e \u003cp\u003eAccessing Samba shares from a Linux file manager 442\u003c\/p\u003e \u003cp\u003eMounting a Samba share from a Linux command line 442\u003c\/p\u003e \u003cp\u003eAccessing Samba shares in Windows 444\u003c\/p\u003e \u003cp\u003eUsing Samba in the Enterprise 444\u003c\/p\u003e \u003cp\u003eSummary 444\u003c\/p\u003e \u003cp\u003eExercises 445\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 20: Configuring an NFS File Server 447\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eInstalling an NFS Server 448\u003c\/p\u003e \u003cp\u003eStarting the NFS Service 449\u003c\/p\u003e \u003cp\u003eSharing NFS Filesystems 450\u003c\/p\u003e \u003cp\u003eConfiguring the \/etc\/exports file 450\u003c\/p\u003e \u003cp\u003eHostnames in \/etc\/exports 451\u003c\/p\u003e \u003cp\u003eAccess options in \/etc\/exports 452\u003c\/p\u003e \u003cp\u003eUser mapping options in \/etc\/exports 453\u003c\/p\u003e \u003cp\u003eExporting the shared filesystems 454\u003c\/p\u003e \u003cp\u003eSecuring Your NFS Server 454\u003c\/p\u003e \u003cp\u003eUsing NFS Filesystems 455\u003c\/p\u003e \u003cp\u003eViewing NFS shares 456\u003c\/p\u003e \u003cp\u003eManually mounting an NFS filesystem 456\u003c\/p\u003e \u003cp\u003eMounting an NFS filesystem at boot time 457\u003c\/p\u003e \u003cp\u003eMounting noauto filesystems 458\u003c\/p\u003e \u003cp\u003eUsing mount options 458\u003c\/p\u003e \u003cp\u003eUsing autofs to mount NFS filesystems on demand 460\u003c\/p\u003e \u003cp\u003eAutomounting to the \/net directory 460\u003c\/p\u003e \u003cp\u003eAutomounting home directories 461\u003c\/p\u003e \u003cp\u003eUnmounting NFS Filesystems 463\u003c\/p\u003e \u003cp\u003eSummary 464\u003c\/p\u003e \u003cp\u003eExercises 464\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 21: Troubleshooting Linux 467\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBoot-Up Troubleshooting 467\u003c\/p\u003e \u003cp\u003eUnderstanding startup 468\u003c\/p\u003e \u003cp\u003eStarting from the firmware (BIOS or UEFI) 469\u003c\/p\u003e \u003cp\u003eTroubleshooting BIOS setup 470\u003c\/p\u003e \u003cp\u003eTroubleshooting boot order 471\u003c\/p\u003e \u003cp\u003eGRUB 2 boot loader 471\u003c\/p\u003e \u003cp\u003eStarting the kernel 472\u003c\/p\u003e \u003cp\u003eTroubleshooting the initialization system 474\u003c\/p\u003e \u003cp\u003eTroubleshooting Software Packages 476\u003c\/p\u003e \u003cp\u003eTroubleshooting Networking 479\u003c\/p\u003e \u003cp\u003eTroubleshooting outgoing connections 479\u003c\/p\u003e \u003cp\u003eView network interfaces 480\u003c\/p\u003e \u003cp\u003eCheck physical connections 480\u003c\/p\u003e \u003cp\u003eCheck routes 481\u003c\/p\u003e \u003cp\u003eCheck hostname resolution 482\u003c\/p\u003e \u003cp\u003eTroubleshooting incoming connections 483\u003c\/p\u003e \u003cp\u003eCheck if the client can reach your system at all 483\u003c\/p\u003e \u003cp\u003eCheck if the service is available to the client 484\u003c\/p\u003e \u003cp\u003eCheck the service on the server 485\u003c\/p\u003e \u003cp\u003eTroubleshooting Memory 485\u003c\/p\u003e \u003cp\u003eUncovering memory issues 486\u003c\/p\u003e \u003cp\u003eChecking for memory problems 488\u003c\/p\u003e \u003cp\u003eDealing with memory problems 489\u003c\/p\u003e \u003cp\u003eSummary 490\u003c\/p\u003e \u003cp\u003eExercises 490\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart V: Learning Linux Security Techniques 493\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 22: Understanding Basic Linux Security y 495\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eImplementing Physical Security 495\u003c\/p\u003e \u003cp\u003eImplementing disaster recovery 496\u003c\/p\u003e \u003cp\u003eSecuring user accounts 496\u003c\/p\u003e \u003cp\u003eOne user per user account 497\u003c\/p\u003e \u003cp\u003eLimiting access to the root user account 497\u003c\/p\u003e \u003cp\u003eSetting expiration dates on temporary accounts 497\u003c\/p\u003e \u003cp\u003eRemoving unused user accounts 498\u003c\/p\u003e \u003cp\u003eSecuring passwords 500\u003c\/p\u003e \u003cp\u003eChoosing good passwords 500\u003c\/p\u003e \u003cp\u003eSetting and changing passwords 501\u003c\/p\u003e \u003cp\u003eEnforcing best password practices 502\u003c\/p\u003e \u003cp\u003eUnderstanding the password files and password hashes 504\u003c\/p\u003e \u003cp\u003eSecuring the filesystem 506\u003c\/p\u003e \u003cp\u003eManaging dangerous filesystem permissions 506\u003c\/p\u003e \u003cp\u003eSecuring the password files 507\u003c\/p\u003e \u003cp\u003eLocking down the filesystem 508\u003c\/p\u003e \u003cp\u003eManaging software and services 509\u003c\/p\u003e \u003cp\u003eUpdating software packages 509\u003c\/p\u003e \u003cp\u003eKeeping up with security advisories 509\u003c\/p\u003e \u003cp\u003eAdvanced implementation 510\u003c\/p\u003e \u003cp\u003eMonitoring Your Systems 510\u003c\/p\u003e \u003cp\u003eMonitoring log files 510\u003c\/p\u003e \u003cp\u003eMonitoring user accounts 512\u003c\/p\u003e \u003cp\u003eDetecting counterfeit accounts and privileges 512\u003c\/p\u003e \u003cp\u003eDetecting bad account passwords 514\u003c\/p\u003e \u003cp\u003eMonitoring the filesystem 516\u003c\/p\u003e \u003cp\u003eVerifying software packages 516\u003c\/p\u003e \u003cp\u003eScanning the filesystem 516\u003c\/p\u003e \u003cp\u003eDetecting viruses and rootkits 518\u003c\/p\u003e \u003cp\u003eAuditing and Reviewing Linux 521\u003c\/p\u003e \u003cp\u003eConducting compliance reviews 521\u003c\/p\u003e \u003cp\u003eConducting security reviews 522\u003c\/p\u003e \u003cp\u003eSummary 522\u003c\/p\u003e \u003cp\u003eExercises 523\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 23: Understanding Advanced Linux Security y 525\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eImplementing Linux Security with Cryptography 525\u003c\/p\u003e \u003cp\u003eUnderstanding hashing 526\u003c\/p\u003e \u003cp\u003eUnderstanding encryption\/decryption 527\u003c\/p\u003e \u003cp\u003eUnderstanding cryptographic ciphers 527\u003c\/p\u003e \u003cp\u003eUnderstanding cryptographic cipher keys 527\u003c\/p\u003e \u003cp\u003eUnderstanding digital signatures 533\u003c\/p\u003e \u003cp\u003eImplementing Linux cryptography 535\u003c\/p\u003e \u003cp\u003eEnsuring file integrity 535\u003c\/p\u003e \u003cp\u003eEncrypting a Linux filesystem at installation 536\u003c\/p\u003e \u003cp\u003eEncrypting a Linux directory 537\u003c\/p\u003e \u003cp\u003eEncrypting a Linux file 540\u003c\/p\u003e \u003cp\u003eEncrypting Linux with miscellaneous tools 540\u003c\/p\u003e \u003cp\u003eUsing Encryption from the Desktop 541\u003c\/p\u003e \u003cp\u003eImplementing Linux Security with PAM 541\u003c\/p\u003e \u003cp\u003eUnderstanding the PAM authentication process 542\u003c\/p\u003e \u003cp\u003eUnderstanding PAM contexts 543\u003c\/p\u003e \u003cp\u003eUnderstanding PAM control flags 544\u003c\/p\u003e \u003cp\u003eUnderstanding PAM modules 545\u003c\/p\u003e \u003cp\u003eUnderstanding PAM system event configuration files 545\u003c\/p\u003e \u003cp\u003eAdministering PAM on your Linux system 546\u003c\/p\u003e \u003cp\u003eManaging PAM-aware application configuration files 546\u003c\/p\u003e \u003cp\u003eImplementing resources limits with PAM 547\u003c\/p\u003e \u003cp\u003eImplementing time restrictions with PAM 549\u003c\/p\u003e \u003cp\u003eEnforcing good passwords with PAM 550\u003c\/p\u003e \u003cp\u003eEncouraging sudo use with PAM 551\u003c\/p\u003e \u003cp\u003eObtaining more information on PAM 551\u003c\/p\u003e \u003cp\u003eSummary 552\u003c\/p\u003e \u003cp\u003eExercises 552\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 24: Enhancing Linux Security with AppArmor 553\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding AppArmor 553\u003c\/p\u003e \u003cp\u003eWorking with AppArmor 556\u003c\/p\u003e \u003cp\u003eSummary 559\u003c\/p\u003e \u003cp\u003eExercises 560\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 25: Securing Linux on a Network 561\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAuditing Network Services 561\u003c\/p\u003e \u003cp\u003eEvaluating access to network services with nmap 563\u003c\/p\u003e \u003cp\u003eUsing nmap to audit your network services’ advertisements 566\u003c\/p\u003e \u003cp\u003eWorking with Firewalls 570\u003c\/p\u003e \u003cp\u003eUnderstanding firewalls 571\u003c\/p\u003e \u003cp\u003eImplementing firewalls 572\u003c\/p\u003e \u003cp\u003eStarting with UFW 572\u003c\/p\u003e \u003cp\u003eUnderstanding the iptables utility 574\u003c\/p\u003e \u003cp\u003eUsing the iptables utility 576\u003c\/p\u003e \u003cp\u003eSummary 583\u003c\/p\u003e \u003cp\u003eExercises 583\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart VI: Engaging with Cloud Computing 585\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 26: Shifting to Clouds and Containers 587\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Linux Containers 588\u003c\/p\u003e \u003cp\u003eNamespaces 589\u003c\/p\u003e \u003cp\u003eContainer registries 589\u003c\/p\u003e \u003cp\u003eBase images and layers 590\u003c\/p\u003e \u003cp\u003eWorking with Linux Containers 590\u003c\/p\u003e \u003cp\u003eDeploying LXD containers 590\u003c\/p\u003e \u003cp\u003eDeploying Docker containers 593\u003c\/p\u003e \u003cp\u003eUsing containers in the enterprise 600\u003c\/p\u003e \u003cp\u003eSummary 600\u003c\/p\u003e \u003cp\u003eExercises 600\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 27: Deploying Linux to the Public Cloud 601\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eRunning Linux in the Cloud Using cloud-init 601\u003c\/p\u003e \u003cp\u003eCreating LXD Linux Images for Cloud Deployments 604\u003c\/p\u003e \u003cp\u003eWorking with LXD profiles 604\u003c\/p\u003e \u003cp\u003eWorking with LXD images 607\u003c\/p\u003e \u003cp\u003eUsing OpenStack to deploy cloud images 608\u003c\/p\u003e \u003cp\u003eUsing Amazon EC2 to Deploy Cloud Images 610\u003c\/p\u003e \u003cp\u003eInstalling the AWS CLI 611\u003c\/p\u003e \u003cp\u003eProvisioning and launching an EC2 instance 613\u003c\/p\u003e \u003cp\u003eSummary 618\u003c\/p\u003e \u003cp\u003eExercises 618\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 28: Automating Apps and Infrastructure with Ansible 619\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Ansible 620\u003c\/p\u003e \u003cp\u003eExploring Ansible Components 621\u003c\/p\u003e \u003cp\u003eInventories 621\u003c\/p\u003e \u003cp\u003ePlaybooks 622\u003c\/p\u003e \u003cp\u003ePlays 622\u003c\/p\u003e \u003cp\u003eTasks 622\u003c\/p\u003e \u003cp\u003eModules 622\u003c\/p\u003e \u003cp\u003eRoles, imports, and includes 623\u003c\/p\u003e \u003cp\u003eStepping Through an Ansible Deployment 623\u003c\/p\u003e \u003cp\u003ePrerequisites 624\u003c\/p\u003e \u003cp\u003eSetting up SSH keys to each node 624\u003c\/p\u003e \u003cp\u003eInstalling Ansible 626\u003c\/p\u003e \u003cp\u003eCreating an inventory 626\u003c\/p\u003e \u003cp\u003eAuthenticating to the hosts 626\u003c\/p\u003e \u003cp\u003eCreating a playbook 627\u003c\/p\u003e \u003cp\u003eRun the playbook 628\u003c\/p\u003e \u003cp\u003eRunning Ad-Hoc Ansible Commands 629\u003c\/p\u003e \u003cp\u003eTrying ad-hoc commands 629\u003c\/p\u003e \u003cp\u003eSummary 631\u003c\/p\u003e \u003cp\u003eExercises 631\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 29 Deploying Applications as Containers with Kubernetes 633\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Kubernetes 634\u003c\/p\u003e \u003cp\u003eKubernetes masters 634\u003c\/p\u003e \u003cp\u003eKubernetes workers 635\u003c\/p\u003e \u003cp\u003eKubernetes applications 635\u003c\/p\u003e \u003cp\u003eKubernetes interfaces 636\u003c\/p\u003e \u003cp\u003eTrying Kubernetes 636\u003c\/p\u003e \u003cp\u003eGetting Kubernetes up and running 637\u003c\/p\u003e \u003cp\u003eDeploying a Kubernetes application 638\u003c\/p\u003e \u003cp\u003eGetting information on the deployment’s pods 639\u003c\/p\u003e \u003cp\u003eExposing applications with services 643\u003c\/p\u003e \u003cp\u003eScaling up an application 644\u003c\/p\u003e \u003cp\u003eChecking the load balancer 645\u003c\/p\u003e \u003cp\u003eScaling down an application 646\u003c\/p\u003e \u003cp\u003eDeleting a service 646\u003c\/p\u003e \u003cp\u003eSummary 647\u003c\/p\u003e \u003cp\u003eExercises 647\u003c\/p\u003e \u003cp\u003eAppendix: Exercise Answers 649\u003c\/p\u003e \u003cp\u003eIndex 701\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eDavid Clinton\u003c\/b\u003e is a Linux server administrator who has worked with IT infrastructure in academic and enterprise environments. He has taught video courses for Amazon Web Services, as well as other technologies. He is a co-author of \u003ci\u003eAWS Certified Solutions Architect Study Guide: Associate (SAA-C01) Exam\u003c\/i\u003e and \u003ci\u003eAWS Certified Cloud Practitioner Study Guide: Foundational (CLF-C01) Exam\u003c\/i\u003e. \u003c\/p\u003e\u003cp\u003e\u003cb\u003eChristopher Negus\u003c\/b\u003e is a senior open source technical writer at Amazon Web Services. He has written dozens of books on Linux, including \u003ci\u003eRed Hat Linux Bible, Linux Troubleshooting Bible\u003c\/i\u003e and \u003ci\u003eLinux Toys\u003c\/i\u003e.   \u003c\/p\u003e\u003cp\u003e\u003cb\u003eThe best reference for Ubuntu Linux\u003c\/b\u003e \u003c\/p\u003e\u003cp\u003eUbuntu Linux is a popular, powerful, and versatile operating system. Now you can get the most out of everything Ubuntu Linux has to offer with the \u003ci\u003eUbuntu Linux Bible\u003c\/i\u003e. This complete and comprehensive guide introduces you to Ubuntu and shows you how to use it to its fullest, whether you're a typical desktop user or a system administrator. You'll learn to do everything from reading email to configuring wireless networks. You'll reap huge rewards from this book, regardless of how much prior experience you have with Ubuntu. \u003c\/p\u003e\u003cul\u003e \u003cli\u003eGet started with Ubuntu Linux and see what's in the newest version (20.04)\u003c\/li\u003e \u003cli\u003eLearn how to read emails, surf the web, and create and publish documents\u003c\/li\u003e \u003cli\u003eTake on system administration tasks, like creating and managing users and adding new disks to the system\u003c\/li\u003e \u003cli\u003eDiscover how to use Ubuntu Linux in an enterprise or personal environment\u003c\/li\u003e \u003cli\u003eFigure out how to set up Ubuntu Linux servers for the web, email, shared printing, and more\u003c\/li\u003e \u003cli\u003eFind out why Ubuntu Linux is the most popular Linux operating system in the world\u003c\/li\u003e \u003c\/ul\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47990422569189,"sku":"NP9781119722335","price":50.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119722335.jpg?v=1761787765","url":"https:\/\/k12savings.com\/es\/products\/ubuntu-linux-bible-isbn-9781119722335","provider":"K12savings","version":"1.0","type":"link"}