Tập tin cấu hình. Các tập tin bao gồm. Tệp cấu hình chính BIND

Cài đặt thiết bị đầu cuối được lưu trữ trong các tập tin cấu hình. Các file là text, unicode, có thể chỉnh sửa bằng bất kỳ trình soạn thảo văn bản nào hỗ trợ unicode, Notepad khá phù hợp. Bạn có thể tìm thấy mô tả đầy đủ về tất cả các tham số được phép trong tệp cấu hình và giá trị của chúng trong hướng dẫn sử dụng các tham số tệp cấu hình.

Cấu hình thiết bị đầu cuối cuối cùng có được bằng cách tổng hợp các tham số từ ba nguồn:

  • Tệp cấu hình toàn hệ thống all.wtc
  • Tệp cấu hình riêng lẻ
  • Các tập tin được kết nối theo danh sách list.wtc(bộ cấu hình WTware không hỗ trợ việc chỉnh sửa danh sách)

Nếu thiết bị đầu cuối tìm thấy địa chỉ MAC của nó trong danh sách list.wtc hoặc tìm thấy cấu hình riêng của nó thì nó sẽ cố gắng kết nối với máy chủ đầu cuối. Nếu không, Trình hướng dẫn cấu hình đầu cuối sẽ được khởi chạy.

Tệp cấu hình toàn hệ thống

Tệp cấu hình toàn hệ thốngđược gọi là all.wtc. Nó được tìm kiếm trong thư mục Mọi người trong thư mục dữ liệu mà bạn đã chỉ định trong khi cài đặt. Trong trường hợp của chúng tôi, đây là thư mục C:\users\all user\WTware\Mọi người\ . Thật thuận tiện khi ghi vào đó những tham số có cùng giá trị cho tất cả các thiết bị đầu cuối, ví dụ như máy chủ .

Tệp cấu hình riêng lẻ

Các tập tin cấu hình riêng lẻđược lưu trữ trong thư mục Terminals, nằm trong thư mục dữ liệu WTware mà bạn đã chỉ định trong quá trình cài đặt. Trong trường hợp của chúng tôi, đây là thư mục C:\users\all user\WTware\Terminals\ .

Một thiết bị đầu cuối có card mạng có địa chỉ MAC là 00:01:02:aa:bc:8e sẽ tìm cấu hình của nó trong thư mục MA.KA.DR.ES.TE.RM, tệp phải được gọi là config.wtc. Hãy chú ý đến trường hợp chữ cái nếu máy chủ TFTP của bạn nằm trên máy Unix!

Ngoài ra, hãy chú ý đến các tệp đi kèm nằm trong thư mục Mẫu và Kết nối trong thư mục dữ liệu WTware. Sử dụng mẫu và chỉ thị kết nối, bạn có thể kết nối các tệp bổ sung với tệp cấu hình thiết bị đầu cuối.

Danh sách các tập tin được bao gồm

Thư mục ListIncludes (trong thư mục dữ liệu được chỉ định trong khi cài đặt) chứa các tệp cấu hình chung với các mô tả về tham số đầu cuối mà các thiết bị đầu cuối kết nối thông qua bảng liệt kê trong tệp list.wtc.

CHÚ Ý! list.wtc chỉ dành cho việc cấu hình thủ công các thiết bị đầu cuối. Bộ cấu hình đồ họa không đọc list.wtc, không đọc hoặc cho phép chỉnh sửa các tệp từ thư mục ListIncludes. Do đó, bạn không thể thử định cấu hình cùng một thiết bị đầu cuối bằng cả bộ cấu hình và thông qua list.wtc.
Cú pháp hoàn toàn giống với tệp cấu hình. Các tệp từ thư mục này được chỉ định trong list.wtc cho thiết bị đầu cuối sẽ được dán vào phần đầu của tệp cấu hình thiết bị đầu cuối chính trước khi thiết bị đầu cuối đọc nó. Vì vậy, trong các tập tin trong thư mục này bạn có thể viết mẫu, kết nối, màn hình tiếp theo.

Danh sách các tập tin được bao gồm nằm trong tệp Mọi người/list.wtc. Định dạng dòng trong tệp này là:

01:02:03:04:05:06 [([tên người dùng@][tên thiết bị đầu cuối])] [tệp [tệp...]]] [# bình luận]
Ví dụ: Có nghĩa là thiết bị đầu cuối có địa chỉ MAC 02:03:04:05:06:07 sẽ đọc các tham số từ tệp ListIncludes/file1.
03:04:05:06:07:08(vasja@) file2
Điều này có nghĩa là thiết bị đầu cuối có địa chỉ MAC 03:04:05:06:07:08 sẽ đọc các tham số từ tệp ListIncludes/file2 và nhập tên người dùng “vasja” vào cửa sổ “Đăng nhập vào Windows”.
04:05:06:07:08:09(term5) file6 file7 # Máy tính của phó kế toán trưởng.
Có nghĩa là thiết bị đầu cuối có địa chỉ MAC 04:05:06:07:08:09 sẽ được đặt tên là term5, tương tự như chỉ định tham số clienthostname và sẽ đọc các tham số từ các tệp ListIncludes/file6 và ListIncludes/file7.
Để có thể chỉ định tên người dùng bằng chữ cái tiếng Nga, bạn cần mở tệp này trong Notepad và lưu nó bằng Mã hóa: Unicode.

Thứ tự đọc, giá trị ưu tiên

Các tập tin cấu hình được đọc theo thứ tự sau:

  1. all.wtc
  2. Các tập tin được liệt kê trong list.wtc
  3. Các tệp được kết nối với cấu hình thiết bị đầu cuối thông qua mẫu và chỉ thị kết nối
  4. Cấu hình riêng lẻ

Các tham số được ghi đè khi chúng được đọc và giá trị cuối cùng được sử dụng. Những thứ kia. ví dụ: nếu tham số máy chủ được chỉ định trong all.wtc và cấu hình riêng lẻ thì giá trị từ cấu hình riêng lẻ sẽ được sử dụng vì nó được đọc sau.

Theo quy định, các tệp cấu hình có định dạng văn bản và người dùng chương trình có thể đọc và chỉnh sửa.

Các tệp cấu hình được sử dụng rộng rãi nhất làm công cụ cấu hình trong dòng hệ điều hành Unix: FreeBSD, GNU/Linux, v.v.

Các định dạng đã biết

  • khác…

Quỹ Wikimedia. 2010.

Xem “Tệp cấu hình” là gì trong các từ điển khác:

    Phím tắt trong Windows NT Một lối tắt, mục nhập màn hình hoặc tệp cấu hình màn hình), theo thuật ngữ máy tính, một tệp đóng vai trò là con trỏ tới một đối tượng (ví dụ: một tệp, ... ... Wikipedia

    Thuật ngữ này có ý nghĩa khác, xem Tệp (ý nghĩa). Tệp (tệp tiếng Anh) là một khối thông tin trên thiết bị lưu trữ bên ngoài máy tính có cách biểu diễn logic nhất định (bắt đầu từ một chuỗi đơn giản ... ... Wikipedia

    Chỉnh sửa file INI bằng tiếng Anh. Tệp khởi tạo là tệp cấu hình chứa dữ liệu cài đặt cho Microsoft Windows, Windows NT và một số ứng dụng. Xuất hiện ngay từ những phiên bản đầu tiên của Windows. Trong phiên bản Windows 1.01, đây là... ... Wikipedia

    Khái niệm tệp (thư mục tệp tiếng Anh, thư mục) trong điện toán: một thực thể cho phép bạn truy cập bất kỳ tài nguyên nào của hệ thống máy tính và có một số đặc điểm: tên cố định (chuỗi ký tự, số hoặc ... Wikipedia

    ngôn ngữ mô tả cấu hình hệ thống- Ngôn ngữ này cung cấp khả năng trao đổi thông tin về cấu hình thiết bị theo định dạng chuẩn giữa các phần mềm của các nhà sản xuất khác nhau. [Bản tin kỹ thuật điện số 3(75). Bảo vệ rơle. IEC 61850] Tất cả các thông số... ... Hướng dẫn dịch thuật kỹ thuật

    Khái niệm tệp (thư mục tệp tiếng Anh, thư mục) trong điện toán: một thực thể cho phép bạn truy cập bất kỳ tài nguyên nào của hệ thống máy tính và có một số đặc điểm: tên cố định (chuỗi ký tự, số hoặc ... Wikipedia

    Tệp cấu hình hoặc tệp cấu hình được sử dụng để lưu trữ cài đặt cho các chương trình máy tính, bao gồm cả hệ điều hành. Theo quy định, các tệp cấu hình có định dạng văn bản và có thể được đọc và chỉnh sửa... ... Wikipedia

    1C:Câu hỏi thường gặp:Cập nhật- Tôi sẽ nhận được gì khi sử dụng 1C lậu? Phát hành cấu hình và nền tảng Nơi nhận: cập nhật cấu hình và biểu mẫu báo cáo Cập nhật phát hành (phiên bản) ... Bách khoa toàn thư kế toán

  • Chế độ phục hồi

Giới thiệu

Bằng cách nào đó, trong khi tìm kiếm cách đính kèm tệp ini cấu hình hoặc json vào máy chủ của mình, tôi đã xem qua các tùy chọn, nhưng vì lý do nào đó, chúng bất tiện hoặc quá đơn giản hoặc xe đạp. Và mặc dù tôi thích cấu hình xml, nhưng đôi khi đây là những tệp quá lớn và thật bất tiện khi viết nhiều văn bản cho một số lượng cài đặt nhỏ. Có lần tôi hỏi một người bạn một câu hỏi về chủ đề này, anh ấy đã đưa cho tôi thư viện. Nó giống như json trộn với yaml.

Thư viện có hai giao diện: chức năng và đối tượng. Chúng rất giống nhau, vì đối tượng sử dụng triển khai chức năng bên trong, nhưng chúng có một số khác biệt, được thảo luận trong bài đăng này.

Thiết lập và kết nối

Thư viện có sẵn ở nhiều kho nên việc cài đặt rất đơn giản:
$ sudo aptitude cài đặt libconfig8 libconfig8-dev libconfig++ libconfig++-dev

Trong mã nguồn, C++ chỉ được kết nối với một bao gồm:
#bao gồm
hoặc
#bao gồm
hoặc cho C
#bao gồm

Tập tin cấu hình

Tệp cấu hình có cấu trúc sau:
# Ví dụ file cấu hình ứng dụng version = "1.0"; ứng dụng: ( window: ( title = "Ứng dụng của tôi"; size = { w = 640; h = 480; }; pos = { x = 350; y = 250; }; }; list = (("abc", 123, true), 1.234, (/* an empty list */)); books = ({ title = "Đảo kho báu"; author = "Robert Louis Stevenson"; price = 29.95; qty = 5; }, { title = "tai nạn tuyết"; author = "Neal Stephenson"; price = 9.99; qty = 8; }); misc: { pi = 3.141592654; bigint = 9223372036854775807L; columns = [ "Last Name", "First Name", "MI" ]; bitmask = 0x1FC3; }; }; !}

Các loại mục chính trong cấu hình là các loại sau:

Yếu tố (Cài đặt)
Đây là phần quan trọng tối thiểu của cấu trúc cấu hình và có dạng khóa-giá trị:
tên = giá trị;
hoặc
tên: giá trị
Các nhóm
Các nhóm có thể chứa bất kỳ số phần tử nào, nhưng mỗi phần tử phải chứa một khóa duy nhất trong nhóm. Viết trong dấu ngoặc nhọn:
(cài đặt...)
Mảng
Chứa bất kỳ số lượng phần tử nào, thậm chí bằng 0, nhưng tất cả các phần tử chỉ bao gồm các giá trị và phải có cùng kiểu vô hướng trong mảng. Viết trong ngoặc vuông:
[giá trị, giá trị...]
Danh sách
Danh sách chứa 0 hoặc nhiều phần tử thuộc loại vô hướng, mảng, nhóm hoặc danh sách. Viết trong ngoặc đơn:
(giá trị, giá trị...)
số nguyên
Chúng được viết theo cách thập phân thông thường (±0-9) hoặc dạng thập lục phân (0xA-f). Nhưng các giá trị số nguyên được giới hạn trong phạm vi -2147483648..2147483647 (32bit), nhưng nếu cần phạm vi lớn hơn thì 'L' sẽ được thêm vào cuối.
3578934 897893450934L
Số dấu phẩy động phân số (số float)
Nó cũng được viết theo cách thông thường
3.1415
Ký hiệu chuẩn cho số mũ là "e".
giá trị Boolean
Các giá trị được viết là 'true' hoặc 'false' và không phân biệt chữ hoa chữ thường (tất nhiên không có dấu ngoặc kép).
Dây
Được viết trong dấu ngoặc kép là "Một chuỗi dài thông thường được viết làm ví dụ".
Các tùy chọn sau cuối cùng sẽ cho cùng một giá trị chuỗi:
"Chuỗi dài thông thường" "viết chẳng hạn"
"Chuỗi dài thông thường" /* bình luận */ "được viết" // bình luận "ví dụ" .
Bình luận
Trong cấu hình, có thể có ba loại quen thuộc trong C++:
  • # một dòng đến cuối dòng
  • // cũng viết một dòng cho đến hết dòng
  • /*… */ chú thích nhiều dòng bao gồm ngắt dòng
Kết nối bên ngoài (Bao gồm)
Nói chung đây là món ngon nhất từ ​​trước tới giờ.
# file: quote.cfg quote = "Những lời chỉ trích có thể không dễ chịu, nhưng nó là cần thiết." " Nó thực hiện chức năng tương tự như nỗi đau trong cơ thể" " con người. Nó thu hút sự chú ý đến trạng thái không lành mạnh của" " sự vật.\n" "\t--Winston Churchill";
# file: thông tin test.cfg: ( name = "Winston Churchill"; @include "quote.cfg" country = "UK"; );

Với API

Trong phần này, tôi sẽ không mô tả tất cả các chức năng, chỉ những chức năng chính, vì chúng nhìn chung giống nhau và các sắc thái chính.

Mô tả các chức năng được sử dụng dưới đây

#bao gồm #bao gồm #bao gồm /* Ví dụ này đọc tệp cấu hình "example.cfg" và hiển thị các thành phần của nó */ int main(int argc, char **argv) ( /* các loại tùy chỉnh được sử dụng. */ config_t cfg; config_setting_t *setting; const char * str; config_init(&cfg); /* khởi tạo bắt buộc */ /* Đọc tệp. Nếu có lỗi, hãy thoát */ if(! config_read_file(&cfg, "example.cfg")) ( fprintf(stderr, "%s :%d - %s\n", config_error_file(&cfg), config_error_line(&cfg), config_error_text(&cfg)); config_destroy(&cfg); return(EXIT_FAILURE); ) /* Tìm kiếm một "tên" giá trị nhất định. */ if(config_lookup_string(&cfg, "name", &str)) printf("Tên cửa hàng: %s\n\n", str); else fprintf(stderr, "Không có cài đặt "tên" trong tệp cấu hình.\n"); kệ */ setting = config_lookup(&cfg, "inventory.books"); if(setting != NULL) ( int count = config_setting_length(setting); int i; printf("%-30s %-30s %-6s %s \ n", "TIÊU ĐỀ", "TÁC GIẢ", "GIÁ", "QTY"); for(i = 0; i< count; ++i) { config_setting_t *book = config_setting_get_elem(setting, i); /* Выводим только те записи, если они имеют все нужные поля. */ const char *title, *author; double price; int qty; if(!(config_setting_lookup_string(book, "title", &title) && config_setting_lookup_string(book, "author", &author) && config_setting_lookup_float(book, "price", &price) && config_setting_lookup_int(book, "qty", &qty))) continue; printf("%-30s %-30s $%6.2f %3d\n", title, author, price, qty); } putchar("\n"); } /* Вывод всех фильмов с полки. */ setting = config_lookup(&cfg, "inventory.movies"); if(setting != NULL) { unsigned int count = config_setting_length(setting); unsigned int i; printf("%-30s %-10s %-6s %s\n", "TITLE", "MEDIA", "PRICE", "QTY"); for(i = 0; i < count; ++i) { config_setting_t *movie = config_setting_get_elem(setting, i); /* Вывод только тех медиа, у которых заполнены все поля. */ const char *title, *media; double price; int qty; if(!(config_setting_lookup_string(movie, "title", &title) && config_setting_lookup_string(movie, "media", &media) && config_setting_lookup_float(movie, "price", &price) && config_setting_lookup_int(movie, "qty", &qty))) continue; printf("%-30s %-10s $%6.2f %3d\n", title, media, price, qty); } putchar("\n"); } config_destroy(&cfg); /* Освободить память обязательно, если это не конец программы */ return(EXIT_SUCCESS); }

Mô tả ngắn gọn về chức năng
Mô tả đầy đủ trong tài liệu.

cấu hình_t- loại tệp cấu hình (đây chưa phải là bản ghi). Nói một cách đại khái, là thùng chứa chính.
config_setting_t- đối tượng phần tử cấu hình. Ví dụ này sử dụng một con trỏ được vùng chứa trả về tới phần tử đang được tìm kiếm.
int config_read_file(config_t * config, const char * filename) - hàm đọc tên file file cấu hình vào bộ nhớ và điền vào đối tượng kiểu cấu hình_t. Bạn không thể đọc từ một tệp mà ngay lập tức “cung cấp” chuỗi cho config_read_string() hoặc cung cấp bộ mô tả tệp cho config_read()
int config_lookup_string(const config_t * config, const char * path, const char ** value) - tìm kiếm và trả về một giá trị dưới dạng con trỏ tới một chuỗi giá trị, dọc theo một đường dẫn nhất định con đường bên trong cấu hình cấu hình.
config_setting_t * config_lookup(const config_t * config, const char * path) - tìm kiếm một mục bên trong cấu hình dọc theo đường dẫn nội bộ đã chỉ định và trả về nó.
config_setting_t * config_setting_get_elem(const config_setting_t * setting, unsigned int index) - được sử dụng cho mảng, danh sách để trả về các phần tử từ nó với số đó và số đó theo thứ tự
int config_setting_lookup_string(cài đặt const config_setting_t *, tên const char *, giá trị const char **) -
trả về giá trị giá trị phần tử con tên liên quan đến một mục nhất định cài đặt
Khi bạn cần lấy một giá trị trong một bản ghi cụ thể, các hàm như
int config_setting_get_int(cài đặt const config_setting_t *)

API C++

Ví dụ tương tự, nhưng trong C++. Tài liệu đầy đủ trên trang web

#bao gồm #bao gồm #bao gồm #bao gồm sử dụng không gian tên std; sử dụng không gian tên libconfig; // Một ví dụ đọc tệp cấu hình "example.cfg" và in các mục nhập của nó int main(int argc, char **argv) ( Config cfg; // Đọc tệp. Hoặc thoát khi gặp lỗi // Lớp C++ thực hiện không trả về lỗi mà ném ra một ngoại lệ try ( cfg.readFile("example.cfg"); ) Catch(const FileIOException &fioex) ( std::cerr<< "I/O error while reading file." << std::endl; return(EXIT_FAILURE); } catch(const ParseException &pex) { std::cerr << "Parse error at " << pex.getFile() << ":" << pex.getLine() << " - " << pex.getError() << std::endl; return(EXIT_FAILURE); } // Получить некое название. try { string name = cfg.lookup("name"); cout << "Store name: " << name << endl << endl; } catch(const SettingNotFoundException &nfex) { cerr << "No "name" setting in configuration file." << endl; } const Setting& root = cfg.getRoot(); // Найти все книжки на полке. try { const Setting &books = root["inventory"]["books"]; int count = books.getLength(); cout << setw(30) << left << "TITLE" << " " << setw(30) << left << "AUTHOR" << " " << setw(6) << left << "PRICE" << " " << "QTY" << endl; for(int i = 0; i < count; ++i) { const Setting &book = books[i]; // Находим только те записи, что имеют все заполненные поля. string title, author; double price; int qty; if(!(book.lookupValue("title", title) && book.lookupValue("author", author) && book.lookupValue("price", price) && book.lookupValue("qty", qty))) continue; cout << setw(30) << left << title << " " << setw(30) << left << author << " " << "$" << setw(6) << right << price << " " << qty << endl; } cout << endl; } catch(const SettingNotFoundException &nfex) { // Ignore. } // Вывод всех фильмов с полки. try { const Setting &movies = root["inventory"]["movies"]; int count = movies.getLength(); cout << setw(30) << left << "TITLE" << " " << setw(10) << left << "MEDIA" << " " << setw(6) << left << "PRICE" << " " << "QTY" << endl; for(int i = 0; i < count; ++i) { const Setting &movie = movies[i]; // Вывод только тех, что содержат все поля. string title, media; double price; int qty; if(!(movie.lookupValue("title", title) && movie.lookupValue("media", media) && movie.lookupValue("price", price) && movie.lookupValue("qty", qty))) continue; cout << setw(30) << left << title << " " << setw(10) << left << media << " " << "$" << setw(6) << right << price << " " << qty << endl; } cout << endl; } catch(const SettingNotFoundException &nfex) { // Ignore. } return(EXIT_SUCCESS); }
Nguyên tắc ở đây giống như trong kiểu chức năng, chỉ trước khi nhận dữ liệu từ cấu hình, bạn cần lấy phần tử gốc cfg.getRoot(); và chỉ sau đó từ đó mới chuyển sang các phần tử còn lại. Bạn cũng cần chú ý đến thực tế là hầu hết các lỗi đều là ngoại lệ.

Phần kết luận

Ngoài việc đọc các cấu hình thuận tiện, API còn cung cấp chức năng tạo các thành phần cấu hình và ghi nó vào phương tiện.

Hệ điều hành Linux, không giống như Windows, không có sổ đăng ký chung để lưu trữ cài đặt hệ thống; tất cả các cài đặt đều được lưu trữ trong các tệp cấu hình. Hầu hết các tệp này đều nằm trong thư mục /etc/.

Cài đặt của hầu hết các chương trình hệ thống và bên thứ ba đều nằm trong các tệp này; đây có thể là cài đặt cho máy chủ đồ họa, trình quản lý đăng nhập, dịch vụ hệ thống, máy chủ web, hệ thống khởi tạo.

Chỉ một số tệp cấu hình được đặt trong các thư mục khác, ví dụ: tệp cấu hình môi trường làm việc trong thư mục chính của người dùng. Điều rất quan trọng đối với người mới bắt đầu là phải hiểu những tệp cấu hình này hoặc những tệp cấu hình đó chịu trách nhiệm gì để nhanh chóng tìm ra đường đi nếu cần. Trong bài viết này, chúng ta sẽ xem xét các tệp cấu hình Linux chính, vị trí và mục đích của chúng.

Trên thực tế, không có tệp cấu hình nào trong hệ thống Linux. Vì hệ điều hành chỉ là một tập hợp các chương trình và hạt nhân nên tất cả các tệp này được tạo bởi một số chương trình nhất định và được chúng đọc để định cấu hình hành vi. Hầu hết các tệp mà chúng ta quen coi là tiêu chuẩn đều liên quan đến hệ thống khởi tạo hoặc các tiện ích hệ thống khác.

Như tôi đã nói, hầu hết các tập tin đều nằm trong /etc. Tên của thư mục này là viết tắt của "et cetera", tiếng Latin có nghĩa là "và những người khác" hoặc "vân vân". Trước tiên, hãy xem nội dung của thư mục Linux /etc:

Ở đây có khá nhiều file khác nhau. Tiếp theo chúng ta sẽ xem xét mục đích của nhiều người trong số họ. Danh sách được sắp xếp theo thứ tự bảng chữ cái.

1. /etc/adjtime

Tệp cấu hình này chịu trách nhiệm thiết lập định dạng thời gian của hệ thống và được dịch vụ tính giờ theo hệ thống đọc. Thời gian có thể được trình bày theo hai phiên bản: ĐỊA PHƯƠNG - thời gian của múi giờ hiện tại và UTC - Giờ chuẩn Greenwich. Bạn có thể thay đổi giá trị theo cách thủ công hoặc sử dụng tiện ích timedatectl.

2. /etc/bash.bashrc

Tập tin này thuộc về bash shell. Đây thực sự không phải là một tệp cấu hình - mà là một tập lệnh, nội dung của nó được thực thi khi mỗi phiên bản bash được khởi động để định cấu hình shell. Nội dung của tệp ~/.bashrc được thực thi theo cách giống nhau cho mỗi người dùng.

3. /etc/crontab

6. /etc/nhóm

25. /etc/sudoers

/etc/sudoers là tệp cấu hình. Tiện ích này cho phép bạn thực thi các lệnh thay mặt cho những người dùng khác, bao gồm cả với tư cách là siêu người dùng. Nhưng chỉ những người dùng đã đăng ký trong tệp này mới có thể sử dụng nó.

26. /etc/sysctl.conf

Tập tin này chịu trách nhiệm về thời gian chạy. Tại đây bạn có thể đặt tất cả các tham số từ hệ thống con /sys/ và chúng sẽ được lưu sau khi khởi động lại.

27. /etc/vconsole.conf

Tệp này chỉ có một mục đích - để đặt mã hóa, bố cục bàn phím và phông chữ mặc định cho tất cả các bảng điều khiển ảo được khởi chạy trên máy.

28. /boot/grub/grub.cfg

Tệp cấu hình Linux này không nằm trong /etc do mục đích cụ thể của nó. Phần này chứa tất cả các cài đặt bộ nạp khởi động, các mục menu và các tham số khác, vì vậy nó phải có sẵn ngay cả trước khi hệ thống tệp gốc được gắn kết.

kết luận

Trong bài viết này, chúng ta đã xem xét các tệp cấu hình Linux chính nằm trong thư mục /etc/. Có lẽ có một số tệp quan trọng mà bạn cho rằng bị thiếu, hãy nhớ cho chúng tôi biết về chúng và mục đích của chúng trong phần bình luận!

Định dạng tập tin cấu hình phổ biến

Cấu hình hầu hết các thành phần của gói phần mềmđược thực hiện bằng cách sử dụng các tập tin cấu hình. Tệp cấu hình là tệp văn bản, cho phép bạn chỉnh sửa chúng bằng bất kỳ trình soạn thảo văn bản nào).

Định dạng tập tin cấu hình chung:

Bắt đầu tập tin ---

[Tên phần 1]

...
Tham sốN = value1, ..., valueK

[Tên phần X]
Tham số1 = value1, ..., valueK
...

--- phần cuối của tập tin ---

Các tập tin cấu hình được tạo theo nguyên tắc sau:

Các ký tự " ; " hoặc " # " trong các dòng của tệp cấu hình cho biết phần đầu của nhận xét - tất cả văn bản theo sau các ký tự này trong dòng sẽ bị mô-đun bỏ quaDr.Web dành cho máy chủ thư UNIXkhi đọc các tham số từ tệp cấu hình.

Nội dung của tập tin được chia thành một chuỗi các phần được đặt tên. Tên phần có thể được mã hóa cứng và không thể tùy ý. Tên phần được đặt trong dấu ngoặc vuông.

Mỗi phần chứa một nhóm các tham số cấu hình, được thống nhất theo ý nghĩa.

Một dòng của tệp chỉ định giá trị của một tham số.

Định dạng cơ bản để chỉ định giá trị tham số (khoảng trắng xung quanh ký hiệu "=", nếu có, sẽ bị bỏ qua):

<Имя параметра> = <Значение>

Tên tham số có thể được mã hóa cứng và không thể tùy ý.

Tất cả tên phần và tham số trong tệp đều không phân biệt chữ hoa chữ thường.

Thứ tự của các phần trong tệp và các tham số trong các phần không quan trọng.

Các giá trị tham số trong tệp cấu hình có thể được đặt trongdấu ngoặc kép (và phải được trích dẫn nếu chúng chứa dấu cách).

Một số tham số có thể có nhiều giá trị, trong trường hợp đó các giá trị tham số được phân tách bằng dấu phẩy hoặc giá trị tham số được chỉ định nhiều lần trong các dòng khác nhau của tệp cấu hình. Khi liệt kê các giá trị tham số, được phân tách bằng dấu phẩy, khoảng cách giữa giá trị và dấu phẩy, nếu có, sẽ bị bỏ qua. Nếu khoảng trắng là một phần của giá trị thì toàn bộ giá trị phải được đặt trong dấu ngoặc kép.

Ví dụ về việc chỉ định một tham số có nhiều giá trị:

1) Liệt kê nhiều giá trị cách nhau bằng dấu phẩy:

Tham số = Giá trị1, Giá trị2, "Giá trị 3"

2) Thiết lập các giá trị tham số giống nhau ở các dòng khác nhau của file cấu hình:

Tham số = Giá trị2
Tham số = Giá trị1
Tham số = "Giá trị 3"

Quy tắc mô tả các tham số được áp dụng trong tài liệu này

Trong hướng dẫn này, mỗi tham số được mô tả như sau:

[Sử dụng trạng thái trongQuy tắc]

Tên tham số = (Loại tham số | Giá trị có thể có)

Mô tả tham số.

(Có thể có nhiều nghĩa).

(Ghi chú đặc biệt)

(Ghi chú quan trọng)

Giá trị mặc định:

Tên tham số = (giá trị | thiếu)

Tình trạng sử dụng trong Nội quyđược biểu thị bằng các hình vẽ sau:

Tham số có thể được sử dụng trong CÀI ĐẶT -phần Quy tắc xử lý thưđể tạm thời thay đổi giá trị của nó khi xử lý một chữ cái cụ thể mà phần điều kiện của quy tắc là đúng.

Thông số khi sử dụng trongQuy tắc xử lý thưcó ngữ nghĩa “phụ gia” (tích lũy), tức là Nếu một số Quy tắc đúng cho một chữ cái, đặt các giá trị khác nhau cho tham số này thì giá trị của tham số là danh sách kết hợp các giá trị của nó từ Quy tắc được kích hoạt.

Thông số khi sử dụng trongQuy tắc xử lý thưhỗ trợ nhân bản email, tức là nếu một lá thư có nhiều người nhận và đối với những người nhận thư khác nhau, các Quy tắc xác định khác nhau nhiều giá trị của tham số này thì chữ cái sẽ được sao chép (theo số lượng người nhận) và với mỗi bản sao của chữ cái, giá trị từ Quy tắc đúng cho chữ cái này sẽ được sử dụng làm giá trị tham số.

Nếu Trạng thái sử dụng cho một tham số không được chỉ định trong Quy tắc thì tham số này không thể được sử dụng trongQuy tắc xử lý thư.

Mô tả các tham số và phần của tệp cấu hình được đưa ra theo thứ tự xuất hiện trong tệp cấu hình được tạo trong quá trình cài đặt gói phần mềmDr.Web dành cho máy chủ thư UNIX.

Loại thông số trường có thể nhận các giá trị sau:

giá trị số- giá trị tham số là một số nguyên không âm.

thời gian (thời gian) - giá trị tham số được chỉ định theo đơn vị thời gian. Giá trị bao gồm một số nguyên, có thể theo sau là một chữ cái xác định loại đơn vị thời gian ( s – giây, m – phút, h – giờ, không tính đến trường hợp chữ cái). Nếu không có chữ cái trong giá trị tham số thì giả định rằng thời gian được chỉ định bằng giây.

Ví dụ: 30s, 15m

kích cỡ - giá trị tham số được chỉ định theo đơn vị bộ nhớ (đĩa hoặc RAM). Giá trị bao gồm một số nguyên, có thể theo sau là một chữ cái xác định loại đơn vị bộ nhớ ( b – byte, k – kilobyte, m – megabyte, g – gigabyte, không tính trường hợp này). Nếu không có chữ cái trong giá trị tham số thì kích thước được coi là được chỉ định theo byte.

Ví dụ: 20b, 15k

quyền (quyền) - giá trị tham số được chỉ định bằng một số có ba chữ số cho biết quyền truy cập vào các tệp ở định dạng được chấp nhận trong hệ thống UNIX.
Mỗi quyền là sự kết hợp (tổng) của ba quyền cơ bản:

Quyền đọc (r) được biểu thị bằng số 4;

Quyền ghi (w) được biểu thị bằng số 2;

Quyền thực thi (x) được ký hiệu bằng số 1.

Trong trường hợp này, chữ số đầu tiên của số chỉ định quyền của chủ sở hữu tệp, chữ số thứ hai – dành cho nhóm chủ sở hữu tệp và chữ số thứ ba – dành cho tất cả những người khác không phải là chủ sở hữu cũng như thành viên của nhóm tương ứng.

Ví dụ: 755, 644

logic (Có/Không) - Kiểu boolean có giá trị được biểu thị bằng chuỗi " Có và không".

đường dẫn đến tập tin/thư mục(đường dẫn đến tập tin/thư mục) - một chuỗi xác định vị trí của tệp hoặc thư mục trên hệ thống tệp. Hãy nhớ rằng trong hệ điều hành Linux/UNIX, tên tệp và thư mục có phân biệt chữ hoa chữ thường. Nếu được chỉ định rằng giá trị tham số có thể là mặt nạ , thì mặt nạ tệp chứa các ký tự đặc biệt sau có thể được sử dụng làm giá trị tham số:

ồ? – thay thế bất kỳ một ký tự nào;

ồ * – thay thế bất kỳ chuỗi ký tự nào (kể cả trống).

Ví dụ: "?.e* " – một mặt nạ bao phủ các tệp có tên bao gồm bất kỳ một ký tự nào và phần mở rộng có độ dài bất kỳ và bắt đầu bằng chữ cái " e " (x.exe, g.e, f.enable, v.v.).

hoạt động - một dòng chứa tên của các hành động được thực hiện trên các đối tượng gây ra bất kỳ phản ứng nào từ các thành phần của gói phần mềmDr.Web dành cho máy chủ thư UNIX. Trong một số trường hợp, bạn có thể chỉ định một hành động chính và tối đa ba hành động bổ sung cho một tham số. Kiểu tham số trong trường hợp này được gọi làdanh sách hành động. Hành động chính trong trường hợp này phải luôn ở vị trí đầu tiên trong danh sách. Tập hợp các hành động được phép có thể khác nhau đối với các tham số khác nhau, trong trường hợp đó, nó được chỉ định riêng cho từng tham số. Để biết danh sách chung các hành động có thể được sử dụng, hãy xemdưới.

Địa chỉ - một chuỗi chứa địa chỉ ổ cắm của thành phầnDr.Web dành cho máy chủ thư UNIXhoặc một mô-đun hoặc chương trình bên ngoài.
Có định dạng LOẠI: ĐỊA CHỈ . Các loại sau đây được cho phép:

o inet - Ổ cắm TCP được sử dụng,ĐỊA CHỈ có định dạng PORT@NODE_NAME. TÊN NÚT có thể là địa chỉ IP trực tiếp hoặc tên miền máy chủ.

Ví dụ:

Địa chỉ = inet:3003@localhost

o địa phương - các ổ cắm UNIX cục bộ được sử dụng, trong trường hợp này địa chỉ là đường dẫn đến tệp ổ cắm.

Ví dụ:

Địa chỉ = local:%var_dir/.daemon

ôi pid - địa chỉ thực của tiến trình phải được đọc từ tệp PID của nó. Loại địa chỉ này chỉ có sẵn trong một số trường hợp và nếu có thể sử dụng nó, điều này được chỉ định rõ ràng trong phần mô tả tham số.

văn bản (giá trị văn bản), chuỗi(sợi dây) - giá trị tham số được chỉ định dưới dạng một chuỗi văn bản; văn bản trong chuỗi có thể được đặt trong dấu ngoặc kép (nếu có khoảng trắng trong chuỗi thì bắt buộc phải có dấu ngoặc kép).

cài đặt hồ bơi - cài đặt nhóm chủ đề. Chúng có định dạng đặc biệt được mô tả trong phầnCác loại thông số đặc biệt.

Tra cứu- chuỗi chỉ định các đối tượng được phân tách bằng dấu phẩy để tìm kiếm.

LookupLite - Tra cứu đơn giản hóa , trong đó bạn chỉ có thể chỉ định giá trị tức thời hoặc Tra cứu loại file .

Kho - đối tượng để lưu trữ dữ liệu. Cú pháp tương tự Tra cứu , ngoại trừ việc sử dụng một danh sách tiền tố khác và trong Kho bạn không thể sử dụng macro$s .
Tìm hiểu thêm về các loại Tra cứu, LookupLite và Storage xem Tra cứu.

Cài đặt TLS/SSL (TLSSettings)- cài đặt cho kết nối được mã hóa bằng giao thức mã hóa TLS và SSL. Chúng có định dạng đặc biệt được mô tả trong phầnCác loại thông số đặc biệt.

danh sách chuỗi- một tập hợp các giá trị văn bản được phân tách bằng dấu phẩy.

Nếu giá trị tham số khớp với mẫu file:/path_to_file (trong đó path_to_file – đường dẫn tệp), sau đó các giá trị văn bản được lấy từ tệp được chỉ định trong tham số. Mỗi giá trị trong tệp phải được viết trên một dòng riêng biệt. Nếu xảy ra lỗi khi truy xuất thông tin từ tệp, thông báo chẩn đoán tương ứng sẽ hiển thị trong tệp nhật ký và chương trình sẽ tiếp tục tải.

Mức độ chi tiết(mức đăng nhập) - dòng chỉ rathông tin xuất ra một số nhật ký hoặc dịch vụ syslog.

những giá trị khả thi- tham số thuộc loại không được mô tả trong các đoạn trước của danh sách này. Trong trường hợp này, danh sách các giá trị được phép cho nó sẽ được liệt kê.

Hành vi của các mô-đun với các tệp cấu hình được chỉ định không chính xác

Nếu giá trị của bất kỳ tham số nào được chỉ định không chính xác,Dr.Web dành cho máy chủ thư UNIXhiển thị thông báo lỗi và thoát.

Nếu khi tải tệp cấu hình, các tham số không xác định được phát hiện trong đó, chương trình sẽ tiếp tục hoạt động bình thường nhưng cảnh báo tương ứng sẽ hiển thị trong tệp nhật ký.

Một số tham số có thể sử dụng biểu thức chính quy làm giá trị (đối với mỗi tham số, nó được ghi chú trong phần mô tả của nó). Cú pháp biểu thức chính quy được sử dụng theo mặc định Perl . Bạn có thể tự làm quen với các khái niệm cơ bản về biểu thức chính quy, ví dụ: trong Wikipedia (bài viết " Biểu thức chính quy").