Linux and LPIC-1
Linux and LPIC-1 1. Linux là gì? Linux là một hệ điều hành máy tính dựa trên Unix được phát triển và phân phối qua mô hình phần mềm tự do mã nguồn mở. Thành phần cơ bản tạo nên Linux đó là nhân linux, một nhân hệ điều hành ra đời bản đầu tiên vào tháng 8 năm 1991 bởi Linus Torvalds. Nhiều ...
Linux and LPIC-1
1. Linux là gì?
Linux là một hệ điều hành máy tính dựa trên Unix được phát triển và phân phối qua mô hình phần mềm tự do mã nguồn mở. Thành phần cơ bản tạo nên Linux đó là nhân linux, một nhân hệ điều hành ra đời bản đầu tiên vào tháng 8 năm 1991 bởi Linus Torvalds. Nhiều người gọi Linux là GNU/Linux, lý do là bản thân linux chỉ là phần nhân hệ điều hành. Rất nhiều phần mềm, ứng dụng khác như hệ thống đồ họa, trình biên dịch, soạn thảo, các công cụ phát triển cũng cần được gắn vào nhân để tạo nên một HĐH hoàn chỉnh. Hầu hết những phần mềm này được phát triển bởi cộng đồng GNU.
Unix ban đầu được phát triển từ năm 1969 bởi một nhóm kỹ sư ở Bell Labs trực thuộc cty AT&T, gồm Ken Thompson, Dennis Ritchies, Douglas Mcllroy và Joe Ossanna. Bản phát hành lần đầu ra mắt năm 1970. Có vài phiên bản Unix trên thị trường như Solaris Unix, AIX, HP Unix và BSD... Linux cũng là một bản của Unix được cung cấp miễn phí. Unix có khả năng đa người dùng (vài người có thể dùng máy tính chạy Unix tại cùng một thời điểm) và đa nhiệm (chạy nhiều chương trình một lúc). Được viết bằng ngôn ngữ C nên Unix có thể cài đặt trên nhiều loại máy tính khác nhau, đây là tính khả chuyển.
2. Tổng quan hệ thống Linux
Kiến trúc của HĐH Linux chia làm 3 thành phần: Kernel, Shell, Applications.
- Kernel (nhân): Đây là phần quan trọng và được ví như trái tim của HĐH, Phần kernel chứa các module, thư viện để quản lý và giao tiếp với phần cứng và các ứng dụng.
- Shell: Shell là một chương trình. Có chức năng thực thi các lệnh (command) từ người dùng hoặc từ các ứng dụng – tiện ích yêu cầu chuyển đến cho Kernel xử lý. Bên cạnh đó, shell còn có khả năng bảo vệ kernel từ các yêu cầu không hợp lệ.
- Applications: Là các ứng dụng và tiện ích mà người dùng cài đặt trên Server. Ví dụ: ftp, samba, Proxy....
3. Các lệnh cơ bản
Câu lệnh trong Linux có cấu trúc như sau
Command [option] [arguments]
Trong đó:
- command : Lệnh
- options :Tùy chọn
- arguments :Tham số lệnh
3.1 Lệnh trợ giúp: man
man cp
NAME cp - copy files and directories SYNOPSIS cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... DESCRIPTION Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
Để thoát khỏi man ta bấm phím “q”
Lệnh xem thông tin RAM
cat /proc/meminfo
Lệnh cat: Dùng để đọc nội dung của file text /proc/meminfo: đây là đường dẫn (đường dẫn tuyệt đối) tới file chứa thông tin RAM có tên là meminfo
root@ubuntu1:/home/lucifer# cat /proc/meminfo MemTotal: 998308 kB MemFree: 743156 kB MemAvailable: 741616 kB Buffers: 12300 kB Cached: 111536 kB SwapCached: 0 kB Active: 76328 kB Inactive: 75204 kB
free:
root@ubuntu1:/home/lucifer# free -k
total used free shared buff/cache available Mem: 998308 79008 743764 4696 175536 742296 Swap: 2094076 0 2094076 root@ubuntu1:/home/lucifer# free -m total used free shared buff/cache available Mem: 974 77 726 4 171 724 Swap: 2044 0 2044 root@ubuntu1:/home/lucifer# free -h total used free shared buff/cache available Mem: 974M 77M 726M 4.6M 171M 724M Swap: 2.0G 0B 2.0G
Lệnh xem thông tin CPU: cat /proc/cpuinfo
root@ubuntu1:/home/lucifer# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 69 model name : Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz stepping : 1 microcode : 0x1d cpu MHz : 1696.075 cache size : 3072 KB
Lệnh xem dung lượng ổ cứng: df -h
root@ubuntu1:/home/lucifer# df -h Filesystem Size Used Avail Use% Mounted on udev 468M 0 468M 0% /dev tmpfs 98M 4.6M 93M 5% /run /dev/sda1 18G 1.5G 16G 9% / tmpfs 488M 0 488M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 488M 0 488M 0% /sys/fs/cgroup tmpfs 98M 0 98M 0% /run/user/1000
Lệnh xem các tiến trình: top
root@ubuntu1:/home/lucifer# top top - 21:48:14 up 10 min, 2 users, load average: 0.00, 0.06, 0.07 Tasks: 175 total, 1 running, 174 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st KiB Mem : 998308 total, 743096 free, 79416 used, 175796 buff/cache KiB Swap: 2094076 total, 2094076 free, 0 used. 741880 avail Mem
Lệnh xem tên server: hostname
root@ubuntu1:/home/lucifer# hostname ubuntu1
Lệnh xem địa chỉ ip: ifconfig
root@ubuntu1:/home/lucifer# ifconfig ens33 Link encap:Ethernet HWaddr 00:0c:29:79:fd:77 inet addr:192.168.152.138 Bcast:192.168.152.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe79:fd77/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:526 errors:0 dropped:0 overruns:0 frame:0 TX packets:840 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:38402 (38.4 KB) TX bytes:415307 (415.3 KB)
-
Các lệnh quản lý file và thư mục
4.1: Lệnh ls: dùng để xem (liệt kê) nội dung thư mục
Options:
-
-l: liệt kê chi tiết.
-
-a: liệt kê tất cả các file ẩn
root@ubuntu1:/etc# ls -l total 788 drwxr-xr-x 3 root root 4096 May 5 2017 acpi -rw-r--r-- 1 root root 3028 Feb 16 2017 adduser.conf drwxr-xr-x 2 root root 4096 May 5 2017 alternatives
Lệnh: cd: dùng để chuyển thư mục
Ví dụ: cd /etc Chuyển đến thư mục /etc.
-
cd usr Chuyển vào thư mục usr là con của thư mục hiện hành.
-
cd .. Chuyển lên thư mục cấp cao hơn (cha)
-
cd Chuyển về thư mục home
-
cd ~ Chuyển về thư mục home
root@ubuntu1:/etc# cd /etc/network root@ubuntu1:/etc/network# cd .. root@ubuntu1:/etc# cd ~ root@ubuntu1:~# cd
Lệnh: passwd: đổi mật khẩu đăng nhập của user đang login.
root@ubuntu1:/etc/network# passwd Enter new UNIX password:
Lệnh: cp: dùng để sao chép file
cp [option] Source Dest
Options: -R, -r : Sao chép toàn bộ thư mục.
Source, Dest: Lần lượt là tên thư mục/tập tin nguồn, đích
root@ubuntu1:/etc/network# cp /etc/passwd /passwd
Lệnh: mv: dùng để đổi tên / di chuyển thư mục hoặc file từ nơi này sang nơi khác
mv [option] Source Dest
Options:
- -i : Nhắc trước khi di chuyển với tập tin/thư mục đích đã có rồi.
- -f: Ghi đè khi di chuyển với tập tin/thư mục đích đã có rồi
Đổi tên thư mục dir1 thành dir2:
root@ubuntu1:/etc/network# mv dir1 dir2
Lệnh: mkdir: dùng để tạo thư mục
mkdir [Options] Directory
Options:
-
-p : Cho phép tạo thư mục con ngay cả khi chưa có thư mục cha.
-
Directory: Tên thư mục muốn tạo
root@ubuntu1:/etc/network# mkdir test1 test2
-
Các lệnh hệ thống
5.1: Lệnh: shutdow:
shutdown [option] [time] [wall]
Options:
- -h: shutdown
- -r: restart
- -c: cancel pending shutdown
Time:
- now: thực hiện ngay lập tức
- hh:mm: ấn định thời gian
- +m: sau m phút sẽ thực hiện
Wall: Message thông báo.
eg: Thực hiện shutdown server sau 10 phut nữa với thông báo " Shut down"
root@ubuntu1:/etc/network# shutdown -r +10 "Shut Down" Shutdown scheduled for Mon 2018-03-1 22:31:39 ICT, use 'shutdown -c' to cancel.
Lệnh: init:
init [number]
Number:
- 3: restart
- 0: shutdown
-
~~BOOT AND RUN LEVELS ~~
Quá trình khởi động của Linux sẽ thực hiện tuần tự các bước sau :
-
System Startup : Đâu là bước đầu tiên của quá trình khởi động, ở bước này BIOS (Basic Input/Output System) thực hiện một công việc gọi là POST (Power-on Self-test). POST là một quá trình kiểm tra tính sẵn sàng phần cứng nhằm, kiểm tra thông số và trạng thái của các phần cứng máy tính như bộ nhớ, CPU, thiết bị lưu trữ, card mạng
-
MBR loading: MBR (Master Boot Record) được lưu trự tại Sector đầu tiên của một thiết bị lưu trữ dữ liệu, ví dụ /dev/hda hoặc/dev/dsa/. MBR rất nhỏ chỉ 512 byte.
-
Boot loader stage 2 (Grub Loader): Sau khi xác vị trí BootLoader, bước này sẽ thực hiện loading BootLoader vào bộ nhớ và đọc thông tin cấu hình sau đó hiển thị GRUB boot menu để user lựa chọn. Nếu user không lựa chọn OS thì sau khoảng thời gian được định nghĩa GRUB sẽ load kernel default vào memory để khởi động.
-
Kernel: Kernel của hệ điều hành sẽ được nạp vào trong RAM. Khi kernel hoạt động thì việc đầu tiên đó là thực thi quá trinh INIT
-
INIT: Đây là giai đoạn chính của quá trình BOOT. Quá trình này bắt đầu bằng việc đọc file /etc/inittab để xác định run-level. Sau đó sẽ thực thi các script tương ứng với runlevel.
-
User prompt: Người đăng nhập và sử dụng
-
Run Levels: Run levels là chế độ sử dụng của Server. Mỗi chế độ có những module, chức năng hoạt động riêng. Trong chương trình LP1 các học viên chỉ cần chú ý đến 2 chế độ:
-
- Multi-user.target: Chế độ dòng lệnh Command Mode(non-graphics) User chỉ sử dụng các lệnh (command) để thao tác. Ở chế độ này server sử dụng rất it RAM.
-
- Graphical.target: Chế độ đồ họa, mặc định khi Install OS ở chế độ GNOME là ta đang dùng Graphical.target
Các thiết lập trong run levels:
-
Thiết lập Multi-user.target mặc định khi khởi động:
root@ubuntu1:/home/lucifer# systemctl set-default multi-user.target Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/multi-user.target.
-
Thiệt lập Graphical.target mặc định khi khởi động:
root@ubuntu1:/home/lucifer# systemctl set-default graphical.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/graphical.target.
-
Chuyển đổi các levels:
Từ graphical sang command mode:
root@ubuntu1:/home/lucifer# systemctl isolate multi-user.target
7 . QUYỀN TRÊN HỆ THỐNG TỆP TIN, THƯ MỤC
- Quyền truy xuất:
Quyền truy xuất trên thư mục và tập tin được trình bày khi thực hiện lệnh ls –l
root@ubuntu1:/etc# ls -l total 788 drwxr-xr-x 3 root root 4096 May 5 2017 acpi -rw-r--r-- 1 root root 3028 Feb 16 2017 adduser.conf drwxr-xr-x 2 root root 4096 May 5 2017 alternatives drwxr-xr-x 3 root root 4096 May 5 2017 apm drwxr-xr-x 3 root root 4096 May 5 2017 apparmor drwxr-xr-x 9 root root 4096 May 5 2017 apparmor.d
Danh sách quyền truy xuất trình bày ở cột đầu tiên trong kết quả. Các loại quyền truy xuất gồm:
- Đọc (read): Cho phép đọc nội dung tập tin và xem nội dung thư mục bằng lệnh ls.
- Ghi (write): Cho phép thay đổi nội dung hoặc xóa tập tin. Đối với thư mục, quyền này cho phép tạo, xóa hoặc đổi tên tập tin mà không phụ thuộc vào quyền sở hữu trên tập tin chứa trong thư mục.
- Thực thi (execute): Cho phép thực thi chương trình, đối với thư mục, quyền này cho phép chuyển vào thư mục bằng lệnh cd
Quyền truy xuất gồm 3 nhóm :
- Quyền của người sở hữu (owner hoặc user) ký hiệu bằng ký tự u: Người tạo ra thư mục/tập tin hoặc được gán quyền sở hữu
- Quyền của nhóm (group) ký hiệu bằng ký tự g: Nhóm người sử dụng được gán quyền
- Quyền của những người dùng khác (others) ký hiệu bằng ký tự o: Là những người sử dụng khác không thuộc về 2 loại trên
Biểu diễn quyền truy xuất : Biểu diễn quyền truy xuất theo 2 cách :
Bằng chữ: Trong cách biểu diễn này, quyền truy xuất được viết bằng các ký tự:
- r : read
- w : write
- x : excute
- (-): không có quyền
Ví dụ:
- rwxrw--- : Người sở hữu có toàn quyền, các user cùng nhóm chỉ có quyền đọc/ghi còn mọi người khác không có quyền truy xuất
- rw-r----- : Người sở hữu có quyền đọc/ghi, các user cùng nhóm chỉ có quyền đọc còn mọi người khác không có quyền truy xuất
- rwxr-xr-- : Người sở hữu có toàn quyền, các user cùng nhóm chỉ có quyền đọc và thực thi chương trình còn mọi người khác chỉ có quyền đọc
Bằng số: Trong cách biểu diễn này, mỗi quyền được gán cho một giá trị số theo bảng sau:
- r : 4
- w : 2
- x : 1
Mỗi nhóm quyền truy xuất là tổng của các loại quyền trên.
- NETWORK CONFIGURATION :
8.1 : Các file cấu hình network :
-
/etc/hosts: Dùng phân giải hostname không thể phân giải được. Có thể dùng thay DNS trong hệ thống mạng LAN
-
/etc/resolves: Chỉ định DNS server để phân giải tên miền
Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.152.2 search localdomain
-
/etc/network/interface : trong thư mục này chứa thông tin cấu hình của card mạng.
This file describes the network interfaces available on your system and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* The loopback network interface auto lo iface lo inet loopback The primary network interface auto ens33 iface ens33 inet dhcp
Ví dụ : Cấu hình địa chỉ IP tĩnh:
-
B1: Kiểm tra thông tin interface hiện tại
root@ubuntu1:/etc# ifconfig ens33 Link encap:Ethernet HWaddr 00:0c:29:79:fd:77 inet addr:192.168.152.138 Bcast:192.168.152.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe79:fd77/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:816 errors:0 dropped:0 overruns:0 frame:0 TX packets:487 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:61392 (61.3 KB) TX bytes:70179 (70.1 KB)
-
B2 : Edit file /etc/network/interfaces ( Ubuntu) và etc/sysconfig/network-scripts/ifcfg-<tên card mạng> (Centos)
auto ens33 iface ens33 inet static address 192.168.190.250 netmask 255.255.255.0 gateway 192.168.190.1 dns-nameserver 8.8.8.8
Trong đó:
- auto ens33 sẽ cấu hình cho interface ens33 khởi động cùng hệ thống
- iface ens33 inet static tạo 1 đoạn cấu hình tĩnh với tên là eth0 trên card Ethernet của chúng ta. Các dòng tiếp theo là phần cấu hình IP cho interface:
- address: địa chỉ chúng ta muốn đặt cho server
- netmask: subnet mask của dải mạng chúng ta sử dụng
- gateway: default gateway cho server
- dns-nameserver: DNS server sẽ dùng cho server để phân giải internet. Ở đây chọn DNS server của google.
Sau khi sử file cài đặt ta lưu lại thiết lập và sử dụng câu lệnh sau để khởi động lại card mạng ta vừa thiết lập:
sudo ifdown <interface> && sudo ifup <interface>
9: Kỹ thuật Logical volume manager (LVM):
LVM là một phương pháp cho phép ấn định không gian đĩa cứng thành những Logical Volume khiến cho việc thay đổi kích thước trở nên dễ dàng.
Các khái niệm của LVM :
-
Physical Volume: Là một cách gọi khác của partition trong kỹ thuật LVM, nó là những thành phần cơ bản được sử dụng bởi LVM. Một Physical Volume không thể mở rộng ra ngoài phạm vi một ổ đĩa
-
Logical Volume Group: Nhiều Physical Volume trên những ổ đĩa khác nhau được kết hợp lại thành một Logical Volume Group, với LVM Logical Volume Group được xem như một ổ đĩa ảo.
-
Logical Volumes: Logical Volume Group được chia nhỏ thành nhiều Logical Volume, mỗi Logical Volume có ý nghĩa tương tự như partition. Nó được dùng cho các mount point và được format với những định dạng khác nhau như ext3, ext4 … Khi dung lượng của Logical Volume được sử dụng hết ta có thể đưa thêm ổ đĩa mới bổ sung cho Logical Volume Group và do đó tăng được dung lượng của Logical Volume
-
Physical Extent: là một đại lượng thể hiện một khối dữ liệu dùng làm đơn vị tính dung lượng của Logical Volume.
Ví dự : Add thêm ổ hdd vào server ubuntu
Sau khi thực hiện kết nối vật lý với 1 HDD mới ta thực hiện các bước như sau
-
B1: kiểm tra 1 hdd vừa add vào : fdisk -l
Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 37750783 37748736 18G 83 Linux /dev/sda2 37752830 41940991 4188162 2G 5 Extended /dev/sda5 37752832 41940991 4188160 2G 82 Linux swap / Solaris
-
B2: Khởi tạo các phân vùng trên sdb,
#fdisk /dev/sdb n, p, 1, enter, enter
Chuyển kiểu partition thành Linux LVM (kiểu 8e): t, 8e
Lưu lại partition table và thoát khởi fdisk: w
root@ubuntu1:/home/lucifer# fdisk /dev/sdb Welcome to fdisk (util-linux 2.27.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x9cae288c. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): l Value out of range. Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): Created a new partition 1 of type 'Linux' and of size 20 GiB. Command (m for help): t Selected partition 1 Partition type (type L to list all types): 8e Changed type of partition 'Linux' to 'Linux LVM'. Command (m for help): u Changing display/entry units to cylinders (DEPRECATED!). Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Kiểm tra lại thông tin cấu hình:
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x9cae288c
-
B3 : Tạo Physical Volume
root@ubuntu1:/home/lucifer# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
Kiểm tra phân vùng vừa tạo : pvdisplay
root@ubuntu1:/home/lucifer# pvdisplay "/dev/sdb1" is a new physical volume of "20.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID jqHKnb-JamQ-VJ63-XIqz-x3jv-CyVz-mmC1Ja
-
B4 : Tạo volume group tên infra
root@ubuntu1:/home/lucifer# vgcreate infra /dev/sdb1 Volume group "infra" successfully created
Kiểm tra volume group vừa tạo : vgs ( vgdisplay )
root@ubuntu1:/home/lucifer# vgs VG #PV #LV #SN Attr VSize VFree infra 1 0 0 wz--n- 20.00g 20.00g
-
B5 : Tạo Logical Volume :
root@ubuntu1:/home/lucifer# lvcreate --name framgia --size 5G infra Logical volume "framgia" created.
Kiểm tra thông tin vừa tạo : lvs ( lvdisplay )
root@ubuntu1:/home/lucifer# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert framgia infra -wi-a----- 5.00g root@ubuntu1:/home/lucifer# lvdisplay --- Logical volume --- LV Path /dev/infra/framgia LV Name framgia VG Name infra LV UUID tKc6wn-dmpf-ELj3-gTiL-CFuH-cOo9-kGqAmu LV Write Access read/write LV Creation host, time ubuntu1, 2018-03-05 23:52:26 +0700 LV Status available LV Size 5.00 GiB Current LE 1280 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0
10 : Các lệnh nén và giải nén :
-
Các chương trình cài đặt thường được nén lại và upload trên internet. Do vậy, các bạn phải biết cách giải nén và nén file. Trên Linux có nhiểu định dạng file nén như: .gz, .tar, .tar.gz, bz2, .tar.bz2. Mỗi loại file nén đều có cách nén và giải nén khác nha
Nén file “.gz” #gzip /etc/passwd Giải nén “.gz” #gzip –d /etc/passwd #gunzip /etc/passwd Nén file “.tar” #tar -cvf /home/adminbackup.tar Giải nén file “.tar” #tar -xvf /home/adminbackup.tar #tar -xzf /home/adminbackup.tar.gz Nén file “.bz2” #tar -cjf backup_eiciel.tar.bz2 eiciel-0.9.6.1 Giải nén file “.bz2” #tar -xjf eiciel-0.9.6.1.tar.bz2 2
11 : File System trên linux :
-
xfs: đây là file system mặc định nó có các đặc điểm như sau :
Hạn chế được tình trạng phân mảnh dữ liệu. Hỗ trợ file system lên tới 6 exabyte tương đương 18 triệu terabyte. Hỗ trợ file lên đến 8 exabyte. Cấu trúc thư mục chứa hàng chục triệu đối tượng. Kích thước tối đa của xfs partition là 500TB.
-
ext4: file system này ra đời từ phiên bản 2.6.28 của nhân Linux (25/12/2008 ). Nó kế thừa và phát huy các điểm mạnh của ext3, đồng thời ext4 có thể giảm bớt hiện tượng phân mảnh dữ liệu trong ổ cứng, hỗ trợ file system và file có dung lượng lớn và tốc độ hoạt động nhanh. Hỗ trợ kích thước tối đa của 1 file system ext4 trên Centos 7 là 50TB
-
Swap: partition swap được sử dụng để hỗ trợ virtual memory. Trong trường hợp không đủ RAM để xử lý thì data sẽ lưu vào swap và xử lý. Swap còn gọi là không gian hoán đổi bộ nhớ vật lý. Kích thước để swap hoạt động hiệu quả nhất là bằng 2 lần bộ nhớ RAM
12 : Các thiết bị khi kết nối tới linux ( USB , CDROM)
-
Nếu server linux dùng command line thì chúng ta buộc phải mount các thiết bị đó vào 1 thư mục để có thể sử dụng
-
Cấu trúc lệnh muont thiết bị:
mount<tên thiết bị><vị trí muốn muont>
Trong đó: <Tên thiết bị>
-
Nếu là cdrom thông thường sẽ là /dev/cdrom
-
Nếu là usb thì cần xác định tên thông qua lệnh #fdisk –l
(vị trí muốn muont> :
-
thường sẽ là /media
13: Một số dịch vụ trên linux :
- Cài đặt apache web server và setup basic authen:
Ubuntu :
root@ubun:/home/lucifer# apt-get install apache2 -y Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert Suggested packages: www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom openssl-blacklist The following NEW packages will be installed: apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert 0 upgraded, 10 newly installed, 0 to remove and 32 not upgraded.
Start và kiểm tra dịch vụ :
root@ubun:/home/lucifer# service apache2 start root@ubun:/home/lucifer# service apache2 status ● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Thu 2018-04-05 01:54:31 +07; 2min 34s ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/apache2.service ├─2877 /usr/sbin/apache2 -k start ├─2880 /usr/sbin/apache2 -k start └─2881 /usr/sbin/apache2 -k start Apr 01 01:54:30 ubun systemd[1]: Starting LSB: Apache2 web server... Apr 01 01:54:30 ubun apache2[2852]: * Starting Apache httpd web server apache2 Apr 01 01:54:31 ubun apache2[2852]: * Apr 01 01:54:31 ubun systemd[1]: Started LSB: Apache2 web server. Apr 01 01:55:55 ubun systemd[1]: Started LSB: Apache2 web server.
-
Cấu hình Basic authen Apache server : Basic authen là một chức năng dùng để bảo mật tài nguyên.. Khi users muốn đăng nhập vào trang web có basic authen abwst buộc phải nhập tài khoản mật khẩu được cấp nhằm nâng cao tính bảo mật của tài nguyên
- Các bước thực hiện
Step 1: update
root@ubun:/home/lucifer# apt-get update Hit:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease Get:2 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB] Get:3 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
Step2: Tạo file passwd
root@ubun:/home/lucifer# sudo htpasswd -c /etc/apache2/.htpasswd Lucifer New password: Re-type new password: Adding password for user Lucifer root@ubun:/home/lucifer# cat /etc/apache2/.htpasswd Lucifer:$apr1$KxWFu9R4$GKtaY/poDwEptZjSO5tyw/
Ở đây chúng ta tạo user và mật khẩu để đăng nhập và basic authen:
Step 3 : Cấu hình Authen trong apache2 configure
-
vim /etc/apache2/sites-enabled/000-default.conf
Thêm dòng này vào file cài đặt
<Directory "/var/www/html"> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory>
Sau đó restart dịch vụ và thử lại:
root@ubun:/home/lucifer# service apache2 restart
-
Cấu hình ssh bằng key trên ubuntu
Thông thường khi ssh chúng ta dùng tài khoản và mật khẩu root để đăng nhập tuy nhiên có 2 nguy có có thể diễn ra đó là :
- Mất mật khẩu - Attacker có thể sử dụng Brute Force Attack để dò tìm mật khẩu.
Do đó việc dùng ssh key để đăng nhập từ xa sẽ trở lên an toàn hơn
- Các thành phần chính của 1 ssh key:
Public Key | Key chsung ta sẽ dùng để cài đặt ssh key |
---|---|
Private Key | Key chúng ta sẽ cất ở một nơi an toàn sau đó đối chiếu với public key |
Keypharse | Mật khẩu để mở private key |
Cách tạo ssh key :
root@ubun:/home/lucifer# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Passphrases do not match. Try again. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:Bpqfy4s2+n4h6UuUhcfPJ03kzwp6wToS561KUfqZvGY root@ubun The key's randomart image is: +---[RSA 2048]----+ | . | | o o | | . * o | | O = o o | | O.. S o o | | .oO.O = . | | .+.%.o . | | o++E* | | .=*B*. | +----[SHA256]-----+
Sau đó chúng ta kiểm tra public key và private key.. Public key mặc định sẽ ở /root/.ssh/id_rsa.pub và private key sẽ ở /root/.ssh/id_rsa
root@ubun:~/.ssh# cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/7Bc1Q8nczyoZq6CbjORCJH4ptV+NmwDkKrsDTle43AeguXgVAEVlZHB3wJy9CIqFY3WarA+ySzrW2CEF5BnSIiTcoRu/E2ZMr/HxoP/+BE6vbM3iCTaZxmL12K8/ue9n01Hv9M2P08Bsflr+BRTeAALDuDNaczgN6JeY8aGsgbpWC6MZXU8W5L6kqHXZuGn/4J3V1dEMo1yiaCqpAIiIObdgbDWCvuKU8pkomhZMrWeS1KnKYY7LqgE32J4aL2QC7f4YRluqRmehxrFpMlVpE6uYRXmk6erJek9WWvFwlTKbAy8YerZy7zMND4rYPZun7Ts/33AlMu10y5VBqgVd r
Chúng ta sẽ lấy key private ra và lưu vào nơi dễ nhớ để sau này đối chiếu với public key
Ở bài này chúng ta sẽ add key ssh bằng script:
Step1 : Tạo script
vim sshscript.sh
Step2: Điền thông tin public key và những thông tin user group vào script
#!/bin/bash useradd -u 20946 -d /home/quyetdd -s /bin/bash -m quyetdd -G admin,sudo mkdir /home/quyetdd/.ssh echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAmIUjQtqP4SLN68RALVzLQ9gbCEe/9S0BID7sGWXZ3U9zGJS+87KJRFE3sR58ZwY6/CY5IX3a/vGn/hthsIb9OzbJ3iOC0av92RTtn13IrmXYmWDtJRsm2EVdci+AE88aRCMKfy7Bn8kmT48JuZjWPEJ8wV7zFrU+QmvdqxMOm42bSvnGnUjhAUY9qvaGONJ/LSUp4NItGpoH9Ns8ktEZatXoj8knlLPdTR9me9h/VMzpAv4Sql44lLYiPBtUe9zZdQkb3x4dCoA4YPvEobIWV3nRshfB2b4tofij+EtckCZv/RajdIgw4gVvxtURSTR1j5w8pyCd+c0ETUIH1wJD0w== rsa-key-20170413' > /home/quyetdd/.ssh/authorized_keys chown -R quyetdd:quyetdd /home/quyetdd/.ssh chmod 700 -R /home/quyetdd/.ssh chmod 600 -R /home/quyetdd/.ssh/* sed -i '/^quyetdd:.*$/d' /etc/shadow echo 'quyetdd:$6$SQRcRyet$Q2IUZbhYS5coLmMjmhG9MJfG26n4zbNTPeS8B/LvbO8BG3QrMOguEGecwIfb1h0sr9etBa53SJuzZfBkBvu9I/:17322:0:99999:7:::' >> /etc/shadow
Step 3: Cấp quyền và chạy script
root@squid:~# chmod +x quyetdd root@squid:~# ./quyetdd
Step4 : ssh vào server vào dùng Private key của mình vừa gen để đăng nhập
Note: Vì user ssh chưa có mật khẩu sudo vì vậy trước khi đăng nhập quản trị viên cần cấp 1 paswd cho user chúng ta vừa tạo