452 Chương 9 ■ Scripts Viết, Cấu hình Email, và sử dụng cơ sở dữ liệu
Các namethat dẫn dòng là một tên địa phương, chẳng hạn như bưu điện. Mỗi địa chỉ (addr1,
addr2, vv) có thể là tên của một tài khoản địa phương mà các thông điệp được chuyển tiếp,
tên của một tập tin địa phương, trong đó thông điệp được lưu trữ (biểu thị bằng một dấu gạch chéo hàng đầu), một lệnh thông qua các tin nhắn được cấp nước tập trung (ký hiệu là một nhân vật thanh đứng hàng đầu), các
tên của một tập tin có nội dung đang được coi là một loạt các địa chỉ (biểu thị bằng một hàng
đầu: bao gồm: string), hoặc một địa chỉ email đầy đủ (như fred@example.com ).
Một cấu hình mặc định điển hình bao gồm một vài bí danh hữu ích cho các tài khoản như
bưu điện. Hầu hết các cấu hình như vậy bản đồ hầu hết các bí danh này để root. Đọc mail như
rootis không lưu ý, mặc dù, làm như vậy làm tăng tỷ lệ cược của một vi phạm an ninh hoặc các vấn đề khác vì một lỗi đánh máy hay lỗi trong trình đọc thư. Như vậy, bạn có thể muốn thiết lập một đường dây bí danh
như sau:
root: tên_ người_ dùng_ của_
này chuyển hướng tất cả các thư mục gốc của, bao gồm cả thư dẫn đến rootvia bí danh khác, để
tên_ người_ dùng_ của_, mà có thể thực hiện bất kỳ hình thức vừa mô tả (nó có khả năng nhất để là một địa phương
tên đăng nhập hoặc địa chỉ email hợp lệ từ xa). Một số máy chủ mail, bao gồm sendmail, Postfix,
và qmail, yêu cầu bạn phải biên dịch / etc / aliasesinto một tập tin nhị phân có thể được xử lý
một cách nhanh chóng hơn. Để làm như vậy, sử dụng các newaliasescommand:
# newaliases
Exim có một newaliasescommand cho khả năng tương thích với sendmail, nhưng nó
không làm bất cứ điều gì theo mặc định.
Một cách khác để chuyển hướng mail là để làm như vậy vào mức độ sử dụng. Đặc biệt, bạn
có thể chỉnh sửa ~ / .forwardfile trong thư mục chủ của người dùng để có mail cho người dùng đó được gửi đến
một địa chỉ khác. Cụ thể, ~ / .forwardfile nên chứa các địa chỉ-dù là mới
một tên đăng nhập trên máy tính hiện tại hoặc một địa chỉ email toàn bộ trên một máy tính khác. Điều này
tiếp cận có lợi thế mà nó có thể được sử dụng bởi các cá nhân người sử dụng có nói, để củng cố email từ nhiều hệ thống vào một tài khoản mà không làm phiền người quản trị hệ thống. Một nhược điểm là nó không thể được sử dụng để thiết lập bí danh cho các tài khoản không tồn tại hoặc cho
các tài khoản mà thiếu các thư mục nhà. The ~ / .forwardfile cũng có thể được thay đổi hoặc bị xóa bởi
người chủ tài khoản, mà có thể không được mong muốn nếu bạn muốn thực thi một quy tắc chuyển tiếp
mà người sử dụng không nên có thể ghi đè lên.
Bảo vệ Email Server của bạn
Giống như bất kỳ máy chủ, một email Máy chủ là một nguy cơ bảo mật tiềm năng. Nói chung, nguy cơ này
có hai hình thức:
Bugs Bugs trong máy chủ email có thể phơi bày máy tính của bạn gặp nguy hiểm. Về lý thuyết, một lỗi có thể
cho phép ai đó để đạt được quyền truy cập vào hệ thống của bạn bằng cách gửi email hoặc bằng cách kết nối với
các cổng SMTP (25) thông qua một khách hàng Telnet và gõ lệnh SMTP để kích hoạt các lỗi. Đối với
quản lý dữ liệu với SQL 453
lý do này, nhiều bản phân phối Linux hiện nay giới hạn quyền truy cập vào các máy chủ email để các địa phương
máy tính duy nhất.
Sai cấu hình nghèo của một máy chủ email có thể gây ra vấn đề. Các máy chủ email
không được thiết kế để cung cấp truy cập đăng nhập, vì vậy họ không có khả năng được abusable để đạt được đầy đủ
quyền truy cập đăng nhập. Thay vào đó, nguy cơ lớn là một cấu hình mà sẽ làm cho hệ thống của bạn một mối đe dọa
Internet. Các sai phổ biến nhất của thiên nhiên này là một relay mở, đó
là một máy tính sẽ chuyển tiếp mail từ bất kỳ máy tính với bất kỳ máy tính khác. Trong quá khứ,
kẻ gửi thư rác đã sử dụng nhiều rơle mở như là một cách để giúp che giấu danh tính thực sự của họ, nhưng
kẻ gửi thư rác hiện nay phần lớn đã chuyển sang các kỹ thuật khác. Tuy nhiên, một số người gửi thư rác
vẫn lạm dụng rơle mở.
Để bảo vệ chống lại các lỗi, bạn nên đảm bảo rằng máy chủ email của bạn được nâng cấp mới nhất của
phiên bản. Chương 2 mô tả các phần mềm quản lý, vì vậy bạn nên tham khảo ý kiến đó cho lời khuyên về
giữ phần mềm hệ thống của bạn đến nay.
Phân phối chính Linux cấu hình máy chủ email của họ để họ không phải là chuyển tiếp mở;
tuy nhiên, một sai có thể mở máy chủ email của bạn. Trang web khác nhau cung cấp các bài kiểm tra cho
các cấu hình sai như vậy. Kiểm tra http://www.abuse.net/relay.htmlor http: //www.spam
help.org/shopenrelay/to kiểm tra hệ thống của bạn để xác minh rằng nó không phải là một relay mở. Những trang web này,
và những người khác như họ, chạy một loạt các xét nghiệm, cố gắng để tiếp sức em một il qua máy chủ của bạn. Nếu
máy chủ của bạn được cấu hình đúng cách, trang web sẽ báo cáo rằng nó không thể kết nối hoặc rằng
nó đã không thể chuyển tiếp email. Nếu các trang web thử nghiệm đã có thể chuyển tiếp email, tuy nhiên, bạn sẽ cần phải
tìm hiểu thêm để cấu hình đúng máy chủ của bạn. Thật không may, các bước cần thiết để đảm bảo một
relay mở khác nhau từ một máy chủ email khác, và họ yêu cầu cấu hình tương đối cao, đó là vượt ra ngoài phạm vi của cuốn sách này hoặc các kỳ thi. Bạn có thể tìm hiểu về đóng
cấu hình relay mở trong tài liệu máy chủ email của bạn.
Quản lý dữ liệu với SQL
Các Structured Query Language (SQL), như tên mở rộng của nó cho thấy, là một ngôn ngữ được sử dụng
để lấy dữ liệu từ một cơ sở dữ liệu. Trong thực tế, SQL được thực hiện trong một vài khác nhau
sản phẩm cơ sở dữ liệu. Vì vậy, bạn nên biết một chút về sản phẩm SQL mà có sẵn cho Linux. Với một gói SQL cài đặt, bạn có thể bắt đầu tìm hiểu về các nguyên tắc
sử dụng SQL và chuyển sang lưu trữ dữ liệu thực tế và phục hồi.
Chọn một gói SQL
SQL là một ngôn ngữ cho việc truy cập dữ liệu, và các gói SQL cụ thể thực hiện ngôn ngữ đó.
Sự phân biệt này là tương tự như giữa một giao thức mạng (như SMTP) và các máy chủ mà thực hiện nó (như sendmail, Postfi x, và Exim). Về nguyên tắc, bạn có thể sử dụng bất kỳ
gói SQL để đáp ứng nhu cầu của cơ sở dữ liệu SQL của bạn. Trong thực tế, các sản phẩm cụ thể mà lưu trữ
dữ liệu bằng cách sử dụng SQL có thể làm việc tốt hơn với (hoặc thậm chí yêu cầu) gói cụ thể. Một số thông thường
lựa chọn trong Linux bao gồm:
454 Chương 9 ■ Scripts Viết, Cấu hình Email, và sử dụng cơ sở dữ
liệu. MySQL Oracle sở hữu này thực hiện SQL, mà đã được phát hành theo giấy phép GPL
Hầu hết các bản phân phối Linux chính bao gồm cơ sở dữ liệu MySQL trong gói của họ. Đối với một hoàn thành
cài đặt, có thể bạn sẽ cần phải cài đặt nhiều phần mềm, chẳng hạn như một khách hàng, một máy chủ, và
có lẽ các công cụ phát triển. Bạn có thể tìm hiểu thêm tại http://www.mysql.com
PostgreSQL thực hiện SQL này đã tiến hóa từ các phần mềm Ingres trước đó (tên
PostgreSQLis một dạng nén của hậu Ingres SQL). Nó có sẵn theo giấy phép BSD
và có sẵn như nhiều gói trong hầu hết các bản phân phối Linux. Như với MySQL, bạn sẽ
có nhiều khả năng phải cài đặt một khách hàng, một máy chủ, và các gói hỗ trợ có lẽ bổ sung.
PostgreSQL có trụ sở chính tại http://www.postgresql.org.
SQLite gói này, dựa vào http: // www. sqlite.org, là một thư viện mà thực hiện SQL.
Như vậy, nó không phải là một cơ sở dữ liệu độc lập; thay vào đó, nó được dự định như là một cách để cung cấp các chương trình
với một cách để lưu trữ dữ liệu bằng cách sử dụng một giao diện SQL trong chương trình. Nếu bạn cài đặt một chương trình
có sử dụng SQLite, quản lý gói phân phối của bạn nên cài đặt các thư viện liên quan
cho bạn. Nếu bạn muốn viết một chương trình yêu cầu truy cập cơ sở dữ liệu và bạn không muốn
cài đặt một gói SQL client-server hoàn chỉnh như MySQL hoặc PostgreSQL, SQLite có thể
chỉ là những gì bạn cần.
Có hàng tá các sản phẩm cơ sở dữ liệu SQL hơn cho Linux. Đối với mục đích của việc học
SQL, MySQL hoặc PostgreSQL nên làm tốt, hoặc bạn có thể sử dụng một thực hiện đầy đủ
nếu bạn thích. Nếu bạn có một mục đích cụ thể trong tâm trí cho việc sử dụng SQL, tuy nhiên, bạn nên
nghiên cứu các gói SQL chi tiết hơn. Bạn có thể cần một sản phẩm cụ thể cho khả năng tương thích
với các phần mềm khác, hoặc bạn có thể cần một gói SQL cung cấp các tính năng cụ thể.
Như chỉ lưu ý, một số gói SQL, bao gồm cả MySQL và PostgreSQL, hoạt động trên một
mô hình client-server: Một chương trình (máy chủ ) quản lý cơ sở dữ liệu, trong khi người khác (các
khách hàng) cung cấp cho người sử dụng và các chương trình với quyền truy cập vào cơ sở dữ liệu. Triển khai thực hiện như vậy có thể
làm việc qua mạng, cho phép người sử dụng tại nhiều hệ thống khách hàng để truy cập vào một máy chủ cơ sở dữ liệu tập trung.
Hiểu biết cơ bản SQL
SQL là một công cụ cho cơ sở dữ liệu truy cập, và cụ thể hơn, cơ sở dữ liệu quan hệ. Hình 9.2
minh họa dữ liệu trong một cơ sở dữ liệu quan hệ. Mỗi hàng (đôi khi được gọi là một tuple) đại diện cho
một đối tượng duy nhất hoặc mục khác, và mỗi cột (đôi khi được gọi là một thuộc tính hoặc
trường) đại diện cho một tính năng cụ thể. Sự kết hợp của các hàng và cột được gọi là
một bảng. Mỗi cơ sở dữ liệu có thể chứa nhiều bảng, và SQL hỗ trợ nhiều cơ sở dữ liệu.
Vì vậy, để truy cập dữ liệu, trước tiên bạn phải lựa chọn một cơ sở dữ liệu và một bảng, như được mô tả trong nhiều
chi tiết trong thời gian ngắn.
Giám dữ liệu với SQL 455
Các dữ liệu trong một bảng là không có thứ tự, tại khái niệm nhất. (Trong thực tế, tất nhiên, dữ liệu sẽ
được lưu trữ trong một số thứ tự trên đĩa, nhưng thứ tự này là tùy ý.) Bạn có thể áp đặt một trật tự trên
các kết quả truy vấn, như được mô tả trong thời gian ngắn; Ví dụ, bạn có thể lấy dữ liệu từ cơ sở dữ liệu
đại diện bởi hình 9.2 và đặt hàng các kết quả theo chi phí (cột cuối cùng).
Một cơ sở dữ liệu cho phép truy xuất các thông tin phù hợp với các tiêu chí cụ thể. Bạn có thể tìm kiếm
cho tất cả các đối tượng màu xanh lá cây trong hình 9.2, ví dụ. Bạn cũng có thể chèn, xóa, và cập nhật
thông tin trong một bảng. SQL hỗ trợ nhiều bảng, vì vậy bạn có thể có, ví dụ, các bảng khác nhau đối với tài sản trong văn phòng của bạn và cho những nhân viên làm việc trong văn phòng của bạn.
Cột (thuộc tính) trong một cơ sở dữ liệu chứa các loại dữ liệu cụ thể, và trao đổi chúng
xung quanh làm cho cảm giác ít. Ví dụ, nó rõ ràng rằng các cột thứ hai trong hình 9.2 là
một màu sắc, trong khi cột cuối cùng là một mức giá hoặc giá trị, thể hiện bằng đô la. Nó sẽ làm cho
cảm giác ít để vào màu xanh lá cây là một giá hoặc $ 1,00 như một màu sắc. Những hạn chế đặt vào những gì
có thể xuất hiện trong một cột được biết đến như một domainor một kiểu dữ liệu: Tên miền cho phần thứ hai
cột là một tập hợp các tên màu, trong khi miền cho các cột fi nal là một giá trị số
thể hiện bằng đô la. Bảng 9.3 tóm tắt một số kiểu dữ liệu SQL thông thường.
đang được dịch, vui lòng đợi..