Introduction |
|
1 | (8) |
|
|
2 | (1) |
|
|
3 | (2) |
|
Those Wanting to Become Intermediate or Advanced Users |
|
|
3 | (1) |
|
Sysadmins, Programmers, and DevOps |
|
|
4 | (1) |
|
|
5 | (1) |
|
Conventions Used in This Book |
|
|
6 | (3) |
|
|
|
1 Installing Ubuntu and Post-Installation Configuration |
|
|
9 | (26) |
|
Before You Begin the Installation |
|
|
9 | (5) |
|
Researching Your Hardware Specifications |
|
|
10 | (1) |
|
|
10 | (2) |
|
|
12 | (1) |
|
Planning Partition Strategies |
|
|
12 | (1) |
|
|
13 | (1) |
|
Installing from DVD or USB Drive |
|
|
14 | (1) |
|
Step-by-Step Installation |
|
|
14 | (5) |
|
|
15 | (4) |
|
|
19 | (1) |
|
|
19 | (1) |
|
Finding Programs and Files |
|
|
20 | (1) |
|
|
21 | (3) |
|
|
24 | (1) |
|
Configuring Software Repositories |
|
|
25 | (2) |
|
|
27 | (4) |
|
Detecting and Configuring a Printer |
|
|
28 | (1) |
|
Configuring Power Management in Ubuntu |
|
|
29 | (1) |
|
Setting the Time and Date |
|
|
29 | (2) |
|
Configuring Wireless Networks |
|
|
31 | (2) |
|
Troubleshooting Post-Installation Configuration Problems |
|
|
33 | (1) |
|
|
34 | (1) |
|
2 Background Information and Resources |
|
|
35 | (14) |
|
|
35 | (1) |
|
|
36 | (2) |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
40 | (1) |
|
Getting the Most from Ubuntu and Linux Documentation |
|
|
40 | (2) |
|
Ubuntu Developers and Documentation |
|
|
42 | (1) |
|
Websites and Search Engines |
|
|
42 | (4) |
|
|
42 | (1) |
|
|
43 | (1) |
|
|
43 | (1) |
|
|
44 | (1) |
|
|
44 | (1) |
|
|
44 | (1) |
|
|
45 | (1) |
|
|
46 | (1) |
|
Ubuntu Project Mailing Lists |
|
|
46 | (1) |
|
|
47 | (2) |
|
|
|
|
49 | (20) |
|
Foundations and the X Server |
|
|
49 | (10) |
|
|
50 | (1) |
|
|
51 | (1) |
|
Elements of the xorg.conf File |
|
|
52 | (5) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
|
59 | (7) |
|
|
59 | (6) |
|
Customizing and Configuring Unity |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
67 | (2) |
|
|
69 | (14) |
|
Getting Started with Firefox |
|
|
70 | (1) |
|
Checking Out Google Chrome and Chromium |
|
|
71 | (2) |
|
|
73 | (3) |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
76 | (1) |
|
|
76 | (1) |
|
Instant Messaging and Video Conferencing with Empathy |
|
|
77 | (1) |
|
|
78 | (2) |
|
|
80 | (2) |
|
|
82 | (1) |
|
|
82 | (1) |
|
5 Productivity Applications |
|
|
83 | (10) |
|
|
85 | (2) |
|
Other Office Suites for Ubuntu |
|
|
87 | (2) |
|
Working with GNOME Office |
|
|
87 | (1) |
|
|
88 | (1) |
|
Other Useful Productivity Software |
|
|
89 | (2) |
|
|
89 | (1) |
|
Working with XML and DocBook |
|
|
89 | (2) |
|
|
91 | (1) |
|
Productivity Applications Written for Microsoft Windows |
|
|
91 | (1) |
|
|
92 | (1) |
|
6 Multimedia Applications |
|
|
93 | (26) |
|
|
93 | (7) |
|
|
94 | (1) |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
97 | (2) |
|
Buying Music in the Ubuntu One Music Store |
|
|
99 | (1) |
|
|
100 | (6) |
|
The GNU Image Manipulation Program |
|
|
101 | (2) |
|
|
103 | (1) |
|
Working with Graphics Formats |
|
|
103 | (2) |
|
|
105 | (1) |
|
Other Graphics Manipulation Options |
|
|
106 | (1) |
|
Using Digital Cameras with Ubuntu |
|
|
106 | (1) |
|
|
106 | (1) |
|
Using Shotwell Photo Manager |
|
|
107 | (1) |
|
Burning CDs and DVDs in Ubuntu |
|
|
107 | (5) |
|
Creating CDs and DVDs with Brasero |
|
|
108 | (1) |
|
Creating CDs from the Command Line |
|
|
109 | (1) |
|
Creating DVDs from the Command Line |
|
|
110 | (2) |
|
|
112 | (5) |
|
|
112 | (2) |
|
|
114 | (1) |
|
|
114 | (2) |
|
|
116 | (1) |
|
|
116 | (1) |
|
|
117 | (2) |
|
7 Other Ubuntu Interfaces |
|
|
119 | (8) |
|
|
120 | (1) |
|
|
121 | (1) |
|
|
122 | (2) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
125 | (1) |
|
|
126 | (1) |
|
|
127 | (12) |
|
|
127 | (2) |
|
Installing Proprietary Video Drivers |
|
|
128 | (1) |
|
Installing Games in Ubuntu |
|
|
129 | (7) |
|
|
130 | (1) |
|
|
130 | (1) |
|
|
131 | (1) |
|
|
132 | (1) |
|
|
132 | (2) |
|
|
134 | (1) |
|
|
134 | (1) |
|
|
134 | (1) |
|
|
134 | (1) |
|
|
135 | (1) |
|
|
136 | (1) |
|
|
136 | (3) |
|
Part III System Administration |
|
|
|
|
139 | (14) |
|
|
139 | (1) |
|
Using Synaptic for Software Management |
|
|
140 | (2) |
|
|
142 | (1) |
|
Working on the Command Line |
|
|
143 | (5) |
|
|
144 | (3) |
|
|
147 | (1) |
|
Compiling Software from Source |
|
|
148 | (2) |
|
|
148 | (1) |
|
Compiling from Source from the Ubuntu Repositories |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
151 | (2) |
|
10 Command-Line Quickstart |
|
|
153 | (34) |
|
What Is the Command Line? |
|
|
154 | (1) |
|
Accessing the Command Line |
|
|
155 | (3) |
|
|
156 | (1) |
|
|
157 | (1) |
|
Logging In and Out from a Remote Computer |
|
|
157 | (1) |
|
|
158 | (2) |
|
|
160 | (1) |
|
|
160 | (1) |
|
|
160 | (1) |
|
|
161 | (1) |
|
Understanding the Linux File System Hierarchy |
|
|
161 | (5) |
|
Essential Commands in /bin and /sbin |
|
|
162 | (1) |
|
Configuration Files in /etc |
|
|
163 | (1) |
|
|
163 | (1) |
|
Using the Contents of the /proc Directory to Interact with the Kernel |
|
|
164 | (1) |
|
Working with Shared Data in the /usr Directory |
|
|
165 | (1) |
|
Temporary File Storage in the /tmp Directory |
|
|
166 | (1) |
|
Accessing Variable Data Files in the /var Directory |
|
|
166 | (1) |
|
Navigating the Linux File System |
|
|
166 | (3) |
|
Listing the Contents of a Directory with is |
|
|
166 | (2) |
|
Changing Directories with cd |
|
|
168 | (1) |
|
Finding Your Current Directory with pwd |
|
|
169 | (1) |
|
|
169 | (6) |
|
|
170 | (1) |
|
|
171 | (1) |
|
Altering File Permissions with chmod |
|
|
172 | (1) |
|
File Permissions with chgrp |
|
|
173 | (1) |
|
Changing File Permissions with chown |
|
|
173 | (1) |
|
Understanding Set User ID and Set Group ID Permissions |
|
|
173 | (2) |
|
|
175 | (5) |
|
Creating a File with touch |
|
|
175 | (1) |
|
Creating a Directory with mkdir |
|
|
175 | (1) |
|
Deleting a Directory with rmdir |
|
|
176 | (1) |
|
Deleting a File or Directory with rm |
|
|
177 | (1) |
|
Moving or Renaming a File with mv |
|
|
177 | (1) |
|
|
178 | (1) |
|
Displaying the Contents of a File with cat |
|
|
179 | (1) |
|
Displaying the Contents of a File with less |
|
|
179 | (1) |
|
Using Wildcards and Regular Expressions |
|
|
179 | (1) |
|
|
180 | (5) |
|
Understanding and Fixing sudo |
|
|
180 | (3) |
|
|
183 | (1) |
|
|
184 | (1) |
|
|
184 | (1) |
|
|
185 | (1) |
|
Commonly Used Commands and Programs |
|
|
185 | (1) |
|
|
186 | (1) |
|
11 Command-Line Master Class |
|
|
187 | (46) |
|
Why Use the Command Line? |
|
|
188 | (1) |
|
|
189 | (21) |
|
Printing the Contents of a File with cat |
|
|
190 | (1) |
|
Changing Directories with cd |
|
|
191 | (2) |
|
Changing File Access Permissions with chmod |
|
|
193 | (1) |
|
|
193 | (1) |
|
Printing Disk Usage with du |
|
|
194 | (1) |
|
Finding Files by Searching with find |
|
|
195 | (2) |
|
Searches for a String in Input with grep |
|
|
197 | (1) |
|
Paging Through Output with less |
|
|
198 | (2) |
|
Creating Links Between Files with in |
|
|
200 | (2) |
|
Finding Files from an Index with locate |
|
|
202 | (1) |
|
Listing Files in the Current Directory with is |
|
|
202 | (2) |
|
Reading Manual Pages with man |
|
|
204 | (1) |
|
Making Directories with mkdir |
|
|
205 | (1) |
|
|
205 | (1) |
|
Listing Processes with ps |
|
|
206 | (1) |
|
Deleting Files and Directories with rm |
|
|
206 | (1) |
|
Printing the Last Lines of a File with tail |
|
|
207 | (1) |
|
Printing Resource Usage with top |
|
|
207 | (2) |
|
|
209 | (1) |
|
Printing the Location of a Command with which |
|
|
210 | (1) |
|
Redirecting Output and Input |
|
|
210 | (1) |
|
stdin, stdout, sdterr, and Redirection |
|
|
211 | (1) |
|
|
212 | (2) |
|
Finding Differences in Files with diff |
|
|
213 | (1) |
|
Finding Similarities in Files with comm |
|
|
213 | (1) |
|
|
214 | (3) |
|
|
214 | (2) |
|
Running One or More Tasks in the Background |
|
|
216 | (1) |
|
Combining Commands with Boolean Operators |
|
|
216 | (1) |
|
Running Separate Commands in Sequence |
|
|
217 | (1) |
|
Using Environment Variables |
|
|
217 | (3) |
|
Using Common Text Editors |
|
|
220 | (7) |
|
|
222 | (1) |
|
|
222 | (1) |
|
|
223 | (2) |
|
|
225 | (2) |
|
Working with Compressed Files |
|
|
227 | (1) |
|
Using Multiple Terminals with byobu |
|
|
227 | (2) |
|
Polite System Reset using REISUB |
|
|
229 | (1) |
|
|
230 | (1) |
|
|
231 | (2) |
|
|
233 | (28) |
|
|
233 | (4) |
|
|
234 | (2) |
|
|
236 | (1) |
|
|
236 | (1) |
|
|
237 | (3) |
|
|
237 | (1) |
|
|
238 | (2) |
|
|
240 | (6) |
|
|
240 | (2) |
|
|
242 | (4) |
|
Monitoring User Activity on the System |
|
|
246 | (1) |
|
|
246 | (5) |
|
|
246 | (1) |
|
|
247 | (1) |
|
|
248 | (2) |
|
Managing Password Security for Users |
|
|
250 | (1) |
|
Changing Passwords in a Batch |
|
|
251 | (1) |
|
Granting System Administrator Privileges to Regular Users |
|
|
251 | (5) |
|
Temporarily Changing User Identity with the su Command |
|
|
251 | (2) |
|
Granting Root Privileges on Occasion: The sudo Command |
|
|
253 | (3) |
|
|
256 | (2) |
|
|
257 | (1) |
|
Manually Configuring Quotas |
|
|
257 | (1) |
|
|
258 | (1) |
|
|
259 | (2) |
|
13 Automating Tasks and Shell Scripting |
|
|
261 | (46) |
|
|
261 | (7) |
|
Using at and batch to Schedule Tasks for Later |
|
|
261 | (3) |
|
Using cron to Run Jobs Repeatedly |
|
|
264 | (2) |
|
Using rtcwake to Wake Your Computer from Sleep Automatically |
|
|
266 | (2) |
|
|
268 | (5) |
|
|
269 | (1) |
|
Shell Pattern-Matching Support |
|
|
270 | (1) |
|
Redirecting Input and Output |
|
|
271 | (1) |
|
|
272 | (1) |
|
|
272 | (1) |
|
Writing and Executing a Shell Script |
|
|
273 | (32) |
|
Running the New Shell Program |
|
|
274 | (1) |
|
Storing Shell Scripts for System-wide Access |
|
|
275 | (1) |
|
Interpreting Shell Scripts Through Specific Shells |
|
|
276 | (1) |
|
Using Variables in Shell Scripts |
|
|
277 | (1) |
|
Assigning a Value to a Variable |
|
|
278 | (1) |
|
Accessing Variable Values |
|
|
278 | (1) |
|
|
278 | (1) |
|
A Simple Example of a Positional Parameter |
|
|
279 | (1) |
|
Using Positional Parameters to Access and Retrieve Variables from the Command Line |
|
|
280 | (1) |
|
Using a Simple Script to Automate Tasks |
|
|
280 | (2) |
|
|
282 | (1) |
|
|
283 | (1) |
|
Using Double Quotes to Resolve Variables in Strings with Embedded Spaces |
|
|
284 | (1) |
|
Using Single Quotes to Maintain Unexpanded Variables |
|
|
284 | (1) |
|
Using the Backslash as an Escape Character |
|
|
285 | (1) |
|
Using the Backtick to Replace a String with Output |
|
|
286 | (1) |
|
Comparison of Expressions in pdksh and bash |
|
|
286 | (5) |
|
Comparing Expressions with tcsh |
|
|
291 | (4) |
|
|
295 | (2) |
|
|
297 | (1) |
|
|
298 | (1) |
|
The repeat Statement (tcsh) |
|
|
299 | (1) |
|
The select Statement (pdksh) |
|
|
299 | (1) |
|
|
300 | (1) |
|
|
300 | (2) |
|
|
302 | (2) |
|
The break and exit Statements |
|
|
304 | (1) |
|
Using Functions in Shell Scripts |
|
|
304 | (1) |
|
|
305 | (2) |
|
|
307 | (10) |
|
|
307 | (1) |
|
Beginning the Boot Loading Process |
|
|
308 | (6) |
|
|
309 | (1) |
|
System Services and Runlevels |
|
|
310 | (1) |
|
|
310 | (1) |
|
Booting into the Default Runlevel |
|
|
311 | (1) |
|
Understanding init Scripts and the Final Stage of Initialization |
|
|
311 | (1) |
|
Controlling Services at Boot with Administrative Tools |
|
|
312 | (1) |
|
|
312 | (1) |
|
Troubleshooting Runlevel Problems |
|
|
313 | (1) |
|
Starting and Stopping Services Manually |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
15 System-Monitoring Tools |
|
|
317 | (18) |
|
|
317 | (9) |
|
Using the kill Command to Control Processes |
|
|
319 | (1) |
|
Using Priority Scheduling and Control |
|
|
320 | (3) |
|
Displaying Free and Used Memory with free |
|
|
323 | (1) |
|
|
323 | (1) |
|
|
324 | (1) |
|
|
324 | (2) |
|
Graphical Process and System Management Tools |
|
|
326 | (7) |
|
|
326 | (2) |
|
|
328 | (5) |
|
|
333 | (1) |
|
KDE Process- and System-Monitoring Tools |
|
|
333 | (1) |
|
Enterprise Server Monitoring |
|
|
333 | (1) |
|
|
334 | (1) |
|
|
334 | (1) |
|
|
334 | (1) |
|
|
335 | (28) |
|
Choosing a Backup Strategy |
|
|
335 | (7) |
|
|
336 | (1) |
|
Assessing Your Backup Needs and Resources |
|
|
337 | (2) |
|
Evaluating Backup Strategies |
|
|
339 | (3) |
|
|
342 | (1) |
|
Choosing Backup Hardware and Media |
|
|
342 | (2) |
|
|
342 | (1) |
|
CD-RW and DVD+RW/-RW Drives |
|
|
343 | (1) |
|
|
343 | (1) |
|
|
343 | (1) |
|
|
344 | (1) |
|
|
344 | (10) |
|
tar: The Most Basic Backup Tool |
|
|
345 | (2) |
|
|
347 | (1) |
|
The KDE ark Archiving Tool |
|
|
348 | (1) |
|
|
348 | (2) |
|
|
350 | (2) |
|
|
352 | (1) |
|
Using the Amanda Backup Application |
|
|
352 | (1) |
|
Alternative Backup Software |
|
|
353 | (1) |
|
|
354 | (4) |
|
|
354 | (1) |
|
Compressing, Encrypting, and Sending tar Streams |
|
|
355 | (1) |
|
|
355 | (1) |
|
|
356 | (1) |
|
|
356 | (2) |
|
Version Control for Configuration Files |
|
|
358 | (2) |
|
|
360 | (2) |
|
|
361 | (1) |
|
Restoring the GRUB2 Boot Loader |
|
|
361 | (1) |
|
Saving Files from a Nonbooting Hard-Drive |
|
|
362 | (1) |
|
|
362 | (1) |
|
|
363 | (46) |
|
Laying the Foundation: The localhost Interface |
|
|
364 | (2) |
|
Checking for the Availability of the Loopback Interface |
|
|
364 | (1) |
|
Configuring the Loopback Interface Manually |
|
|
364 | (2) |
|
Checking Connections with ping, traceroute, and mtr |
|
|
366 | (2) |
|
|
368 | (4) |
|
|
369 | (2) |
|
Using IP Masquerading in Ubuntu |
|
|
371 | (1) |
|
|
372 | (1) |
|
|
372 | (3) |
|
|
375 | (2) |
|
|
375 | (1) |
|
|
376 | (1) |
|
Broadcast, Unicast, and Multicast Addressing |
|
|
376 | (1) |
|
Hardware Devices for Networking |
|
|
377 | (6) |
|
|
377 | (2) |
|
|
379 | (1) |
|
|
380 | (1) |
|
|
381 | (1) |
|
Initializing New Network Hardware |
|
|
381 | (2) |
|
Using Network Configuration Tools |
|
|
383 | (10) |
|
Command-Line Network Interface Configuration |
|
|
384 | (5) |
|
Network Configuration Files |
|
|
389 | (2) |
|
Using Graphical Configuration Tools |
|
|
391 | (2) |
|
Dynamic Host Configuration Protocol |
|
|
393 | (6) |
|
|
393 | (1) |
|
Activating DHCP at Installation and Boot Time |
|
|
394 | (1) |
|
DHCP Software Installation and Configuration |
|
|
395 | (2) |
|
Using DHCP to Configure Network Hosts |
|
|
397 | (2) |
|
|
399 | (1) |
|
|
399 | (3) |
|
Support for Wireless Networking in Ubuntu |
|
|
399 | (2) |
|
Advantages of Wireless Networking |
|
|
401 | (1) |
|
Choosing from Among Available Wireless Protocols |
|
|
401 | (1) |
|
Beyond the Network and onto the Internet |
|
|
402 | (1) |
|
Common Configuration Information |
|
|
402 | (2) |
|
Configuring Digital Subscriber Line Access |
|
|
404 | (2) |
|
Understanding PPP over Ethernet |
|
|
404 | (1) |
|
Configuring a PPPoE Connection Manually |
|
|
405 | (1) |
|
Configuring Dial-Up Internet Access |
|
|
406 | (1) |
|
Troubleshooting Connection Problems |
|
|
407 | (1) |
|
|
408 | (1) |
|
18 Remote Access with SSH and Telnet |
|
|
409 | (10) |
|
Setting Up a Telnet Server |
|
|
409 | (2) |
|
|
411 | (1) |
|
|
411 | (1) |
|
|
411 | (4) |
|
Using scp to Copy Individual Files Between Machines |
|
|
412 | (1) |
|
Using sftp to Copy Many Files Between Machines |
|
|
413 | (1) |
|
Using ssh-keygen to Enable Key-Based Logins |
|
|
413 | (2) |
|
Virtual Network Computing |
|
|
415 | (2) |
|
|
417 | (2) |
|
19 Securing Your Machines |
|
|
419 | (16) |
|
Understanding Computer Attacks |
|
|
419 | (2) |
|
Assessing Your Vulnerability |
|
|
421 | (1) |
|
|
422 | (3) |
|
Securing a Wireless Network |
|
|
423 | (1) |
|
Passwords and Physical Security |
|
|
423 | (1) |
|
Configuring and Using Tripwire |
|
|
424 | (1) |
|
|
425 | (1) |
|
|
425 | (1) |
|
Configuring Your Firewall |
|
|
426 | (4) |
|
|
430 | (2) |
|
Forming a Disaster Recovery Plan |
|
|
432 | (1) |
|
|
433 | (2) |
|
|
435 | (12) |
|
|
435 | (5) |
|
Using the BIOS and Kernel to Tune the Disk Drives |
|
|
436 | (1) |
|
|
437 | (1) |
|
|
438 | (1) |
|
|
438 | (1) |
|
|
439 | (1) |
|
|
439 | (1) |
|
Disabling File Access Time |
|
|
439 | (1) |
|
|
440 | (1) |
|
|
441 | (1) |
|
|
442 | (4) |
|
Measuring Key Buffer Usage |
|
|
442 | (2) |
|
|
444 | (1) |
|
|
445 | (1) |
|
|
446 | (1) |
|
|
446 | (1) |
|
21 Kernel and Module Management |
|
|
447 | (22) |
|
|
448 | (4) |
|
|
449 | (2) |
|
|
451 | (1) |
|
|
452 | (2) |
|
|
454 | (1) |
|
|
455 | (1) |
|
Obtaining the Kernel Sources |
|
|
456 | (1) |
|
|
457 | (1) |
|
|
458 | (7) |
|
Using xconfig to Configure the Kernel |
|
|
461 | (3) |
|
Creating an Initial RAM Disk Image |
|
|
464 | (1) |
|
When Something Goes Wrong |
|
|
465 | (1) |
|
|
465 | (1) |
|
Runtime Errors, Boot Loader Problems, and Kernel Oops |
|
|
466 | (1) |
|
|
466 | (3) |
|
Part IV Ubuntu as a Server |
|
|
|
22 Sharing Files and Printers |
|
|
469 | (22) |
|
Using the Network File System |
|
|
470 | (3) |
|
Installing and Starting or Stopping NFS |
|
|
470 | (1) |
|
|
470 | (2) |
|
|
472 | (1) |
|
|
473 | (10) |
|
Manually Configuring Samba with /etc/samba/smb.conf |
|
|
474 | (3) |
|
Testing Samba with the testparm Command |
|
|
477 | (1) |
|
Starting, Stopping, and Restarting the smbd Daemon |
|
|
478 | (1) |
|
|
479 | (1) |
|
Configuring Samba Using SWAT |
|
|
480 | (3) |
|
Network and Remote Printing with Ubuntu |
|
|
483 | (6) |
|
Creating Network Printers |
|
|
484 | (2) |
|
Using the Common UNIX Printing System GUI |
|
|
486 | (2) |
|
Avoiding Printer Support Problems |
|
|
488 | (1) |
|
|
489 | (2) |
|
23 Apache Web Server Management |
|
|
491 | (30) |
|
About the Apache Web Server |
|
|
491 | (1) |
|
Installing the Apache Server |
|
|
492 | (5) |
|
Installing from the Ubuntu Repositories |
|
|
493 | (1) |
|
Building the Source Yourself |
|
|
494 | (3) |
|
Starting and Stopping Apache |
|
|
497 | (2) |
|
Starting the Apache Server Manually |
|
|
497 | (1) |
|
Using /etc/init.d/apache2 |
|
|
498 | (1) |
|
Runtime Server Configuration Settings |
|
|
499 | (6) |
|
Runtime Configuration Directives |
|
|
500 | (1) |
|
|
500 | (3) |
|
Apache Multiprocessing Modules |
|
|
503 | (1) |
|
Using Access Configuration Files |
|
|
503 | (2) |
|
File System Authentication and Access Control |
|
|
505 | (5) |
|
Restricting Access with allow and deny |
|
|
506 | (1) |
|
|
507 | (2) |
|
Final Words on Access Control |
|
|
509 | (1) |
|
|
510 | (5) |
|
|
510 | (1) |
|
|
511 | (1) |
|
|
511 | (1) |
|
|
511 | (1) |
|
|
512 | (1) |
|
|
512 | (1) |
|
|
512 | (1) |
|
|
512 | (1) |
|
|
512 | (1) |
|
|
512 | (1) |
|
|
513 | (1) |
|
|
513 | (1) |
|
|
513 | (1) |
|
mod_info and mod_log_config |
|
|
513 | (1) |
|
mod_mime and mod_mime_magic |
|
|
513 | (1) |
|
|
513 | (1) |
|
|
514 | (1) |
|
|
514 | (1) |
|
|
514 | (1) |
|
|
514 | (1) |
|
|
514 | (1) |
|
|
514 | (1) |
|
|
515 | (1) |
|
|
515 | (1) |
|
|
515 | (1) |
|
|
515 | (1) |
|
|
515 | (2) |
|
Address-Based Virtual Hosts |
|
|
515 | (1) |
|
|
516 | (1) |
|
|
517 | (2) |
|
|
519 | (2) |
|
24 Nginx Web Server Management |
|
|
521 | (10) |
|
About the Nginx Web Server |
|
|
521 | (2) |
|
Installing the Nginx Server |
|
|
523 | (1) |
|
Installing from the Ubuntu Repositories |
|
|
523 | (1) |
|
Building the Source Yourself |
|
|
524 | (1) |
|
Configuring the Nginx Server |
|
|
524 | (3) |
|
|
527 | (1) |
|
|
528 | (2) |
|
Adding and Configuring Modules |
|
|
530 | (1) |
|
|
530 | (1) |
|
|
531 | (4) |
|
|
531 | (1) |
|
|
532 | (1) |
|
|
533 | (1) |
|
|
533 | (1) |
|
|
534 | (1) |
|
|
534 | (1) |
|
|
534 | (1) |
|
26 Remote File Serving with FTP |
|
|
535 | (10) |
|
|
535 | (2) |
|
Choosing an Authenticated or Anonymous Server |
|
|
536 | (1) |
|
Ubuntu FTP Server Packages |
|
|
536 | (1) |
|
|
536 | (1) |
|
|
537 | (1) |
|
|
538 | (2) |
|
Configuring the Very Secure FTP Server |
|
|
540 | (3) |
|
Controlling Anonymous Access |
|
|
541 | (1) |
|
Other vsftpd Server Configuration Files |
|
|
542 | (1) |
|
Using the ftphosts File to Allow or Deny FTP Server Connection |
|
|
543 | (1) |
|
|
544 | (1) |
|
|
545 | (20) |
|
How Email Is Sent and Received |
|
|
545 | (5) |
|
|
546 | (2) |
|
|
548 | (1) |
|
|
548 | (1) |
|
|
549 | (1) |
|
Basic Postfix Configuration and Operation |
|
|
550 | (5) |
|
|
552 | (1) |
|
|
553 | (1) |
|
Setting Message Delivery Intervals |
|
|
553 | (1) |
|
|
554 | (1) |
|
Forwarding Email with Aliases |
|
|
554 | (1) |
|
Using Fetchmail to Retrieve Mail |
|
|
555 | (4) |
|
|
555 | (1) |
|
|
555 | (4) |
|
Choosing a Mail Delivery Agent |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
560 | (1) |
|
|
560 | (1) |
|
|
560 | (1) |
|
Alternatives to Microsoft Exchange Server |
|
|
560 | (3) |
|
Microsoft Exchange Server/Outlook Client |
|
|
561 | (1) |
|
|
561 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
562 | (1) |
|
|
563 | (2) |
|
28 Proxying, Reverse Proxying, and Virtual Private Networks (VPN) |
|
|
565 | (16) |
|
|
565 | (1) |
|
|
566 | (1) |
|
|
566 | (1) |
|
|
567 | (4) |
|
Specifying Client IP Addresses |
|
|
571 | (1) |
|
|
572 | (2) |
|
Virtual Private Networks (VPN) |
|
|
574 | (5) |
|
|
575 | (2) |
|
|
577 | (2) |
|
|
579 | (2) |
|
29 Administering Relational Database Services |
|
|
581 | (26) |
|
A Brief Review of Database Basics |
|
|
582 | (8) |
|
How Relational Databases Work |
|
|
584 | (2) |
|
|
586 | (1) |
|
|
586 | (1) |
|
Inserting Data into Tables |
|
|
587 | (1) |
|
Retrieving Data from a Database |
|
|
588 | (2) |
|
Choosing a Database: MySQL Versus PostgreSQL |
|
|
590 | (3) |
|
|
590 | (1) |
|
|
591 | (1) |
|
ACID Compliance in Transaction Processing to Protect Data Integrity |
|
|
591 | (1) |
|
|
592 | (1) |
|
Procedural Languages and Triggers |
|
|
592 | (1) |
|
|
593 | (3) |
|
Setting a Password for the MySQL Root User |
|
|
594 | (1) |
|
Creating a Database in MySQL |
|
|
594 | (2) |
|
|
596 | (3) |
|
Initializing the Data Directory in PostgreSQL |
|
|
596 | (1) |
|
Creating a Database in PostgreSQL |
|
|
597 | (1) |
|
Creating Database Users in PostgreSQL |
|
|
598 | (1) |
|
Deleting Database Users in PostgreSQL |
|
|
598 | (1) |
|
Granting and Revoking Privileges in PostgreSQL |
|
|
599 | (1) |
|
|
599 | (6) |
|
|
600 | (1) |
|
Local GUI Client Access to a Database |
|
|
601 | (1) |
|
|
602 | (1) |
|
The MySQL Command-Line Client |
|
|
603 | (1) |
|
The PostgreSQL Command-Line Client |
|
|
604 | (1) |
|
|
605 | (1) |
|
|
605 | (2) |
|
|
607 | (12) |
|
|
610 | (2) |
|
|
610 | (1) |
|
|
611 | (1) |
|
|
611 | (1) |
|
|
612 | (1) |
|
|
612 | (1) |
|
|
612 | (3) |
|
|
613 | (1) |
|
|
614 | (1) |
|
|
614 | (1) |
|
|
615 | (1) |
|
|
615 | (1) |
|
|
615 | (1) |
|
|
616 | (1) |
|
|
616 | (1) |
|
|
616 | (1) |
|
|
616 | (1) |
|
|
617 | (1) |
|
|
617 | (2) |
|
31 Lightweight Directory Access Protocol (LDAP) |
|
|
619 | (8) |
|
|
620 | (4) |
|
|
620 | (2) |
|
Populating Your Directory |
|
|
622 | (2) |
|
|
624 | (1) |
|
|
624 | (1) |
|
|
625 | (1) |
|
|
625 | (1) |
|
|
626 | (1) |
|
32 Linux Terminal Server Project (LTSP) |
|
|
627 | (8) |
|
|
628 | (3) |
|
|
631 | (1) |
|
|
632 | (1) |
|
|
633 | (2) |
|
33 Virtualization on Ubuntu |
|
|
635 | (10) |
|
|
637 | (4) |
|
|
641 | (2) |
|
|
643 | (1) |
|
|
643 | (1) |
|
|
643 | (2) |
|
|
645 | (36) |
|
|
646 | (2) |
|
Software as a Service (SaaS) |
|
|
647 | (1) |
|
Platform as a Service (PaaS) |
|
|
647 | (1) |
|
Infrastructure as a Service (IaaS) |
|
|
647 | (1) |
|
Metal as a Service (MaaS) |
|
|
647 | (1) |
|
|
648 | (1) |
|
Ubuntu Cloud and Eucalyptus |
|
|
648 | (8) |
|
Deploy/Install Basics: Public or Private? |
|
|
650 | (1) |
|
|
650 | (1) |
|
|
651 | (3) |
|
|
654 | (2) |
|
Ubuntu Cloud and OpenStack |
|
|
656 | (16) |
|
Compute Infrastructure (Nova) |
|
|
656 | (1) |
|
Storage Infrastructure (Swift) |
|
|
657 | (1) |
|
|
657 | (1) |
|
|
657 | (10) |
|
|
667 | (3) |
|
|
670 | (1) |
|
|
671 | (1) |
|
|
671 | (1) |
|
An OpenStack Commands Primer |
|
|
672 | (1) |
|
|
672 | (1) |
|
|
672 | (6) |
|
|
673 | (3) |
|
|
676 | (1) |
|
|
677 | (1) |
|
|
678 | (1) |
|
Ubuntu Metal as a Service (MaaS) |
|
|
678 | (1) |
|
|
679 | (1) |
|
|
679 | (2) |
|
35 Managing Sets of Servers |
|
|
681 | (4) |
|
|
681 | (1) |
|
|
682 | (1) |
|
|
682 | (1) |
|
|
683 | (1) |
|
|
683 | (1) |
|
|
683 | (1) |
|
|
683 | (2) |
|
36 Name Serving with the Domain Name System (DNS) |
|
|
685 | (10) |
|
Understanding Domain Names |
|
|
687 | (4) |
|
|
687 | (1) |
|
|
688 | (3) |
|
Setting Up a DNS Server with BIND |
|
|
691 | (2) |
|
|
693 | (2) |
|
|
|
37 Opportunistic Development |
|
|
695 | (20) |
|
|
696 | (4) |
|
Managing Software Projects with Subversion |
|
|
696 | (1) |
|
Managing Software Projects with Bazaar |
|
|
697 | (1) |
|
Managing Software Projects with Mercurial |
|
|
698 | (1) |
|
Managing Software Projects with Git |
|
|
699 | (1) |
|
Introduction to Opportunistic Development |
|
|
700 | (1) |
|
|
701 | (2) |
|
|
703 | (4) |
|
|
707 | (4) |
|
|
711 | (2) |
|
|
713 | (2) |
|
38 Helping with Ubuntu Development |
|
|
715 | (10) |
|
Introduction to Ubuntu Development |
|
|
716 | (1) |
|
Setting Up Your Development System |
|
|
717 | (3) |
|
Install Basic Packages and Configure |
|
|
717 | (1) |
|
Create a Launchpad Account |
|
|
718 | (1) |
|
Set Up Your Environment to Work with Launchpad |
|
|
718 | (2) |
|
Fixing Bugs and Packaging |
|
|
720 | (3) |
|
Finding Bugs to Fix with Harvest |
|
|
723 | (1) |
|
|
723 | (1) |
|
|
723 | (2) |
|
39 Helping with Ubuntu Testing and QA |
|
|
725 | (6) |
|
|
725 | (2) |
|
|
726 | (1) |
|
|
726 | (1) |
|
|
727 | (1) |
|
|
727 | (3) |
|
|
730 | (1) |
|
|
731 | (22) |
|
|
731 | (3) |
|
|
732 | (1) |
|
|
732 | (2) |
|
Perl Variables and Data Structures |
|
|
734 | (2) |
|
|
735 | (1) |
|
|
735 | (1) |
|
|
736 | (3) |
|
|
736 | (1) |
|
|
737 | (1) |
|
|
737 | (1) |
|
|
738 | (1) |
|
|
738 | (1) |
|
Conditional Statements: if/else and unless |
|
|
739 | (1) |
|
|
739 | (1) |
|
|
740 | (1) |
|
|
740 | (3) |
|
|
740 | (1) |
|
|
741 | (1) |
|
|
741 | (1) |
|
|
742 | (1) |
|
|
742 | (1) |
|
Do ... while and do ... until |
|
|
742 | (1) |
|
|
743 | (1) |
|
|
744 | (1) |
|
|
745 | (1) |
|
|
745 | (5) |
|
|
745 | (2) |
|
|
747 | (1) |
|
|
748 | (1) |
|
|
749 | (1) |
|
|
750 | (1) |
|
|
750 | (3) |
|
|
753 | (20) |
|
|
754 | (1) |
|
|
755 | (10) |
|
|
755 | (2) |
|
|
757 | (3) |
|
|
760 | (2) |
|
|
762 | (1) |
|
|
763 | (2) |
|
|
765 | (1) |
|
|
766 | (5) |
|
Class and Object Variables |
|
|
767 | (1) |
|
Constructors and Destructors |
|
|
768 | (1) |
|
|
769 | (2) |
|
The Standard Library and the Python Package Index |
|
|
771 | (1) |
|
|
771 | (2) |
|
|
773 | (32) |
|
|
774 | (16) |
|
Entering and Exiting PHP Mode |
|
|
774 | (1) |
|
|
774 | (2) |
|
|
776 | (2) |
|
|
778 | (1) |
|
|
778 | (1) |
|
|
779 | (1) |
|
|
779 | (1) |
|
|
780 | (1) |
|
|
781 | (2) |
|
|
783 | (1) |
|
|
784 | (1) |
|
|
785 | (2) |
|
|
787 | (2) |
|
|
789 | (1) |
|
|
790 | (11) |
|
|
790 | (3) |
|
|
793 | (2) |
|
|
795 | (2) |
|
|
797 | (4) |
|
|
801 | (1) |
|
|
801 | (3) |
|
|
804 | (1) |
|
43 C/C++ Programming Tools for Ubuntu |
|
|
805 | (12) |
|
Programming in C with Linux |
|
|
806 | (1) |
|
Using the C Programming Project Management Tools Provided with Ubuntu |
|
|
807 | (4) |
|
Building Programs with make |
|
|
807 | (1) |
|
|
807 | (2) |
|
Using the autoconf Utility to Configure Code |
|
|
809 | (1) |
|
|
810 | (1) |
|
|
811 | (1) |
|
Graphical Development Tools |
|
|
812 | (2) |
|
Using the KDevelop Client |
|
|
812 | (1) |
|
The Glade Client for Developing in GNOME |
|
|
813 | (1) |
|
|
814 | (3) |
|
|
|
44 Using Other Popular Programming Languages |
|
|
817 | (12) |
|
|
818 | (1) |
|
|
819 | (1) |
|
|
819 | (1) |
|
|
820 | (1) |
|
|
820 | (1) |
|
|
821 | (1) |
|
|
821 | (1) |
|
|
822 | (1) |
|
|
822 | (1) |
|
|
822 | (1) |
|
|
823 | (1) |
|
|
823 | (1) |
|
|
824 | (1) |
|
|
824 | (1) |
|
|
825 | (1) |
|
|
825 | (1) |
|
|
826 | (1) |
|
|
826 | (1) |
|
|
826 | (1) |
|
|
827 | (1) |
|
|
827 | (2) |
|
45 Beginning Mobile Development for Android |
|
|
829 | (8) |
|
|
830 | (1) |
|
|
830 | (1) |
|
|
830 | (1) |
|
|
830 | (1) |
|
|
830 | (1) |
|
|
830 | (1) |
|
|
831 | (1) |
|
Installing the Android SDK |
|
|
831 | (3) |
|
|
831 | (1) |
|
|
831 | (1) |
|
|
831 | (1) |
|
Install the ADT Eclipse Plug-In |
|
|
832 | (1) |
|
|
832 | (1) |
|
|
833 | (1) |
|
Create Your First Application |
|
|
834 | (1) |
|
|
835 | (2) |
|
46 Developing for Ubuntu Mobile/Touch |
|
|
837 | (4) |
|
|
838 | (1) |
|
Create Your First Application |
|
|
838 | (1) |
|
Learn About Ubuntu Design |
|
|
839 | (1) |
|
Study the User Interface Toolkit |
|
|
839 | (1) |
|
|
840 | (1) |
Index |
|
841 | |