12/08/2018, 17:14

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)
  1. 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
    
  1. 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
  1. ~~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.

  1. 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
0