Cũng khá lâu rồi mình chưa viết bài viết nào rồi nhỉ. Nay mình mới quay trở lại với một vài bài viết về kỹ thuật Ops. Bài viết đầu tiên sau khi trở lại mình sẽ chia sẻ một số kiến thức cơ bản nhất khi làm việc với HĐH Ubuntu/Linux. Ok vậy mình cùng đi qua một số phần chính của bài viết nhé:
- Bascic command
- User và Group
- Một số thành phần khác
1. Basic command
- “-r": recusive, xóa toàn bộ cac thư mục kể cả bên trong
- “-I”: xuất hiện thêm question hỏi trước khi xóa
- Bash script khoi dong cung he thong .
- ~/.bash_profile, ~/.bash_login, ~/.profile .
- Tham số trong bash là $: nếu $0 tức là lấy cả tên luôn
- Cài đặt package từ debian: sudo dpkg - I package_name.dpkg
Quản lý package
- Cài đặt package: sudo apt-get install package
- Remove package: sudo apt-get remove —purge package_name
- dpkg -l: hiển thị tất cả các package đã được cài đặt
- dpkg -l: grep <regex>: search cac thanh phần còn lại của package
Trọng phạm vi bài viết này mình sẽ ko đề cập tới một số lệnh shell thông dụng. Để để dành cho bài viết sau đấy. Đùa đấy vì mình chưa kịp tổng hợp thôi 😄
2. User và Group
Đây là 2 thành phần rất quan trọng để làm việc với dữ liệu cũng như các thông tin bảo mật trên hệ thống của bạn. Vậy lên bạn đừng bỏ qua phần này nhé.
a. Cơ bản về user và group
User:
- Là người truy cập tới hệ thống. User có 2 loại là super user và regular user
- Mỗi User trong ubuntu sẽ có một ID duy nhất gọi là UID. Thông thường UID được đặt như sau:
- 0: Superuser, là User có quyền cao nhất
- 1 - 99: Dành cho các User hệ thống (Các Linux distribution khác nhau có thể khác nhau)
- 100: Các user khác (Trong Ubuntu thì thường tính từ 1000)
Note: định danh user bình thường bắt đầu từ 500
Group:
- Là tập hợp nhiều user lại.
- Mỗi user luôn là thành viên của một group.
- Khi tạo một user thì mặc định một group được tạo ra.
- Mỗi group còn có một định danh riêng gọi là GID.
- Định danh của group thường sử dụng giá trị bắt đầu từ 500.
Xem thông tin cơ bản của user và group.
- cat /etc/passwd: xem các user trên máy tính.
- /etc/passwd: Chứa thông tin Users (mỗi user sẽ nằm trong 1 group quyền)
- /etc/shadow: Chứa mật khẩu Users (nếu dùng chế độ shadow password)
- /etc/group: Chứa thông tin Groups (group quyền)
- whoami: kiểm tra user đang sử dụng
- su <name_user>: kiểm tra tài khoản đang đăng nhập
- sudo su hoặc sudo -i: chuyển đổi sang tài khoản root
b. Phân quyền user và group
Phân quyền với user
- $ useradd <user_name>: Thêm 1 user
- $ usermod -a -G <group_name> <user_name>: -a <=> append: thêm 1 user đồng thời add nó luôn vào group.
- vd: useradd -g developers Tony, tạo user Tony add vào group developervd: useradd -g developers Tony, tạo user Tony add vào group developer
- $ userdel -r <user_name>: xóa user và thư mục của user
Phân quyền với group
- $ sudo groupadd <name_group>: tạo group
- $ sudo usermod -a -G [tên group] [tên user]$ sudo usermod -a -G [tên group] [tên user]: Thêm User vào Group (cần logout và login lại thì mới có tác dụng)
- $ id [tên user]$ id [tên user]: Xem danh sách Group mà một User đã tham gia
- $ sudo deluser <user _name> group: xóa user
- $ deluser user group: vd: deluser test root <=> delete user test nằm trong group root
Phân quyền với thưc mục, file
Trong Linux, sẽ có 3 quyền cơ bản của một user/group trên một file/folder bao gồm:
- r (read) – quyền đọc file/folder
- w (write) – quyền ghi/sửa nội dung file/folder
- x (execute) – quyền thực thi (truy cập) thư mục. Đối với thư mục thì bạn cần phải có quyền execute thì mới dùng lệnh cd để truy cập vào được
Có khá nhiều bài viết phân quyền rồi lên minh sẽ giải thích qua 1 số tham số khi để giúp bạn đọc và hình dung được quyền cấp phát cho file hoặc thư mục mà bạn đang sở hữu. Ở đây để trực quan nhất bạn hay gõ đoạn lệnh này: cd ~ && ll . Đoạn lệnh này có ý nghĩa ra ngoài thư mục user của bạn và ll <=> xem thông tin các quyền được cấp phát cho file và thư mục mà bạn đang sở hữu. Rồi giờ mình sẽ giải thích 1 số tham số nhé:
- Phần chữ cái đầu tiên _ hoặc d: tương ứng với file hoặc directory
- Phần nối tiếp theo: 3 chữ cái tạo thành 3 cặp từ trái qua phải tương ứng với: owner - group - other (viết tắt: u - g - o ngoài ra có thêm a là all)
- 3 chữ cái cân quan tâm: r w e. <=> read, write, execute
Bonus lại basic nhất cách phân quyền cho các bạn nha 🙃
- Thực thi: chmod [tùy chọn] [biểu diễn phân quyền] [tên file hoặc thư mục]. Trong đó các tùy chọn gồm
- -R: (đệ quy) áp dụng cac luật cho toàn bộ cả thư mục con nằm bên trong nó
- -f: bắt buộc kể cả khi lỗi vẫn chạy tới cùng
- -v: hiển thị báo cáo sau khi chạy lệnh
- chown: thay đỏi quyền sở hữu của tập tin (thay đổi user ở hữu)
- chmod: thay đổi, gán loại bỏ quyền của tập tin. ( thay đổi quyền đọc ghi, khác với quyền sở hữu)
- Các thông số đặc biệt
- Ví dụ:
- chown -R ubuntu:ubuntu examoke: thay đồi quyền sở hữu sang user khác (ở đây là ubuntu)
- chmod u+x /Lib: cấp quyền thực thi file cho user sơ hữu
3. Một số thành phần khác
Ở phần này mình chỉ giới thiệu qua một số giao thức cũng và tiến trình trên linux thui nhé. Chi tiết hơn thì các bạn có thể tìm thêm các nguồn khác. Nếu có nhiều request mình lại làm một vài bài chi tiết hơn :D.
a. SSH và SCP
- ssh: là giao thức truy cập máy tính từ xa. Bác nào làm server thì thôi đừng hỏi nhé 😄
- scp- secure copy: là 1 ứng dụng để copy file trên các máy chủ linux dự trên giao thức ssh khá là hữu ích. Thường thì bạn sẽ phải cài thêm gói này hoặc có sẵn trên 1 số hệ thống server. Dưới đây là cách để sử dụng scp download các tài nguyên từ máy chủ tới client và upload từ client tới máy chủ sử dụng scp
- scp -I key.pem user@host:<path_file_server> <path_file_client>: Download tập tin từ server về máy thật và authen qua key (Nếu authen qua password thì bạn ko cần nhập cờ -I và giá trị của nó)
- scp -i key.pem <path_file_client> user@host:<path_folder_server>: (Thay source /home/ubuntu bằng đường dẫn tương ứng của bạn)
- => để tránh file trùng bạn có thể thay đổi tư đường dẫn thành tên file chỉ định thay thế mới để scp download và đặt tên cho nó luôn :D
b. Process và Service
Process:
- SIGINT: Ngừng tiến trình từ bàn phím.
- SIGTERM: Tín hiệu tắt tiến trình một cách an toàn (terminate signal).
- SIGKILL: Tín hiệu tắt tiến trình ngay lập tức (giết tiến trình - kill signal).
- SIGSTOP: Tạm dừng tiến trình.
- SIGCONT: Tiếp tục tiến trình đang tạm dừng.
Service: Các service hay còn gọi là các daemon daemon (/ˈdiːmən/ or /ˈdeɪmən/) là một chương trình máy tính mà nó chạy ngầm trên hệ thống (Gọi là background process ). Trên windows ta thường gọi daemon là các dịch vụ chạy ngầm hay là windows services, các dịch vụ trên windows thường được quản lí trong Services.msc.
- service --status-all: xem trạng Thai cua cac service
- Cron job: * * * * *: minute, hours, day, month, dow (thứ)
- Note: Thông thường, trên Ubuntu/Linux các daemon thường có tên kết thúc là chữ –d. Ví dụ, dịch vụ FTP có tên là vsftpd, system logs tên là syslogd, dịch vụ SSH có tên là sshd.
c. Hard Link và Soft Link
- Hard Link: cú pháp: ln src_file dest_file
- Có thể tao nhiều hard link, hard link khi xóa sẽ bị xóa cả inode <=> đồng nghĩa file se bị xóa. Nhưng nếu nhiều hard link ==>xóa phải tới hard link cuối cung thì inode mới bị xóa ==> file bị xóa
- Hard link chỉ có thể tạo trên ổ cứng cùng với file thật, do cùng trỏ tơi inode
- Hard link chỉ tạo được trên fle
- Soft Link- cú pháp: ln -s src_file dest_file
- Có thể tạo trên nhiều phân vùng ổ cứng
- Sosft link có thể tạo được cả trên thư mục
- Soft link ko trỏ vào inode mà trỏ theo tên và path vì vậy khi thay đổi đường dẫn hoặc tên file gốc ==> soft link ko thể truy cập
- htop: Theo giõi tiến trình, ấn F1 để xem thêm hướng dẫn
- p: xem thông tin chi tiết process.
- t: xem cây dưới dạng tree view.
- u: show ra các user để chọn user xem tiến trình.
Bonus một số gói tiện ích ko liên quan 🤠
- fortune: cài xong mỗi lần chán gõ fortune. => tự sinh ra một câu danh ngôn bằng Tiếng Anh
- finger: lệnh finger <user>. (hiển thị info user sử dụng)
- cal: xem lịch
- man <command>: xem chi tiết về thông tin của tệp lệnh chương trình.
Rồi nay mình giới thiệu thế này thôi. Bài viết dài quá mong anh, chị em thông cảm nhé. Ok vậy hẹn gặp lại các bạn trong các bài viêt tiếp theo nha !.
- Techmaster Việt Nam
- (https://vi.wikipedia.org/wiki/Chmod)