Friday, September 7, 2018

1. Mở file
Cũng giống như các editor khác bạn cần sử dụng vi trước tên file
vi /duong_dan_den_file
ví dụ: vi /var/www/index.php sẽ mở file index.php trong editor
2. Đóng file
Khi đã làm việc với file xong, để đóng file bạn bấm "Esc" (phím Escape) rồi gõ
:q
để thoát và không lưu
:wq
lưu lại nội dung file và thoát
3. Sửa file
Trong vi có 2 chế độ là command mode và insert mode. Mặc định là command mode. Để chuyển sang chế độ sửa hoặc ghi vào file (insert mode) bạn sử dụng
:i
để chuyển sang chế độ insert mode (ký tự được ghi phía trước con trỏ)
:a
để chuyển sang chế độ insert mode (ký tự được ghi phía sau con trỏ)
Lưu ý : trong chế độ insert mode bạn không thể dùng các command (các lệnh của vi như tìm kiếm ....), để có thể dùng command bạn cần thoát chế độ insert trước (bằng cách gõ Esc trên bàn phím)
4. Di chuyển con trỏ
Để di chuyển con trỏ bạn sử dụng các phím h,j,k,l hoặc các phím mũi tên tương ứng trên bàn phím
5. Xóa dòng
Để xóa 1 dòng, bạn di chuyển con trỏ đến đầu dòng đó và gõ dd
6. Copy và paste
Để copy 1 dòng, bạn gõ 
yy
Để paste dòng đó, di chuyển đến nơi cần paste và gõ
p
7. Tìm kiếm
Để tìm kiếm bạn gõ / hoặc ?, phía sau là từ cần tìm kiếm
Ví dụ 
/ServerName
sẽ tìm kiếm từ ServerName trong file
Nếu vi nhảy đến kết quả đầu tiên chưa đúng ý bạn, để tiếp tục xem dòng khác gõ n
8. Nhảy đến 1 dòng hoặc cột nào đó
Gõ số dòng muốn nhảy đến và gõ G, nhảy đến cột nào đó gõ |
ví dụ : 
89G
sẽ nhảy đến dòng 89
21|
sẽ nhảy đến cột 21

Thursday, September 6, 2018

Trong linux, hệ điều hành server được chia sẻ giữa nhiều user khác nhau, việc phân quyền cho từng user là rất cần thiết để đảm bảo an ninh, tính bảo mật và tránh xung đột giữa các user với nhau

I.Cấu trúc của một tập tin, thư mục
Chúng ta sẽ cùng xem cấu trúc của một tập tin, thư mục, chúng ta gõ lệnh sau:
# ls -al
Ý nghĩa của từng chỉ số
-rw-r--r--     1     root   root     0 Mar  6 21:04 .autofsck
-rw-r--r--     1     root   root     0 Dec  2 11:41 .autorelabel
dr-xr-xr-x.    2     root   root  4096 Mar  6 21:06 bin
dr-xr-xr-x.    4     root   root  4096 Dec  2 11:38 boot
__________________________________________
^ ^  ^  ^      ^      ^      ^    ^      ^-- Ngày tháng tạo ra file và tên file
| |  |  |      |      |      |    |
| |  |  |      |      |      |    \--- Dung lượng của file/folder
| |  |  |      |      |      \-------- Tên group sở hữu
| |  |  |      |      \--------------- Tên user sở hữu
| |  |  |      \---------------------- Hard link, thể hiện nhiều file hoặc thư mục có cùng sử dụng chung inode
| |  |  |
| \--\--\----------------------------- Các chỉ số phân quyền
\------------------------------------- Loại file (chữ d nghĩa là thư mục)
II.Phân quyền cho tập tin và thư mục
Linux có 3 quyền cơ bản của 1 user và group đó là
  • 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
  •  (Deny) – Không có quyền
Các quyền này cũng được đánh số nhất định
  • r (read) – được biểu diễn bằng số 4.
  • w (write) – được biểu diễn bằng số 2.
  • x (execute) – được biểu diễn bằng số 1.
  •  (Deny) – được biểu diễn bằng số 0
Cấu trúc chỉ số phân quyền
  • owner: Quyền của user mà chủ sở hữu của file này.
  • group: Quyền của những users thuộc group mà chủ sở hữu của file này.
  • other: Quyền của tất cả các user khác trên máy.
Nhìn hình phía trên , các bạn có thể đọc được thông số file test1 như sau
  • owner có quyền r+w+- =  4+2+0 = 6
  • group có quyền  r+-+- = 4+0+0 = 4
  • other có quyền  r+-+- = 4+0+0 = 4
Thông số file test2 như sau
  • owner có quyền r+w+x =  4+2+1 = 7
  • group có quyền  r+-+x = 4+0+1 = 5
  • other có quyền  r+-+x = 4+0+1 = 5
Thông số file test3 như sau
  • owner có quyền r+w+x =  4+2+1 = 7
  • group có quyền  r+w+- = 4+2+0 = 6
  • other có quyền  r+w+- = 4+2+0 = 6
Chỉ số phân quyền của 3 file sẽ là test1=644, test2=755, test3=766
Để có thể thay đổi các chỉ số phân quyền này ta sẽ dử dụng lệnh chmod
# chmod  <tùy chọn> <chỉ số phân quyền> <tên tập tin/thư mục>
Các tùy chọn
  • -v : Hiển thị báo cáo sau khi chạy lệnh, mỗi lần đổi quyền là hiển thị một lần
  • -c : Giống như trên, nhưng chỉ hiện khi nó đã làm xong tất cả.
  • -R : Áp dụng luôn vào các file/folder nằm bên trong folder được phân quyền (chỉ áp dụng cho thư mục)
Ví dụ: Bạn muốn phân quyền cho file test1
# chmod 777 test1 <Cấp quyền truy cập đầy đủ cho mọi đối tượng người dùng.>
# chmod 775 test1 <Cấp quyền truy cập đầy đủ cho chủ hệ thống và nhóm quản trị, đối tượng người dùng chỉ có quyền đọc (read) và chạy (execute) file.>
# chmod 755 test1 <Cấp quyền truy cập đầy đủ cho chủ hệ thống, chỉ cho phép nhóm quản trị và đối tượng người dùng đọc và chạy các file trong thư mục.>
# chmod 700 test1 <Chỉ cấp quyền truy cập đầy đủ cho chủ hệ thống và chặn truy cập với mọi đối tượng khác.>
# chmod 500 test1 <Không cho phép nhóm quản trị và người dùng truy cập vào file trong thư mục, đồng thời giới hạn quyền chủ hệ thống chỉ đọc và chạy để tránh xóa và thay đổi các file trong thư mục này.>
# chmod 660 test1 <Cho phép chủ hệ thống và nhóm quản trị đọc, sửa, xóa và ghi dữ liệu vào file, nhưng không phân quyền truy cập cho những người dùng khác.>

III.Thay đổi chủ sở hữu cho tập tin và thư mục
Mặc định  tập tin và thư mục đều có user group riêng của nó, nếu bạn muốn thay đổi bạn sẽ dùng lệnh chown
# chown  <tùy chọn> <tên user>:<tên group>  <tên tập tin/thư mục>
Các tùy chọn
  • -v : Hiển thị báo cáo sau khi chạy lệnh, mỗi lần đổi chủ sở hữu là hiển thị một lần
  • -c : Giống như trên, nhưng chỉ hiện khi nó đã làm xong tất cả.
  • -R : Áp dụng luôn vào các file/folder nằm bên trong folder được đổi chủ (chỉ áp dụng cho thư mục)
Ví dụ: Bạn muốn thay đổi chủ sở hữu cho file test1
# chown paste:paste test1   <Thay đổi cả user và group cho test1>
# chown paste test1         <Thay đổi user cho test1>
# chown :paste test1        <Thay đổi group cho test1>
Kết
Hi vọng rằng với bài viết này của mình các bạn đã có thể hiểu rõ hơn về cách phân quyền cho tập tin và thư mục. Hẹn gặp lại các bạn trong các bài tiếp theo. Chúc các bạn thành công !
– Khảo sát thông tin user và group
#cat /etc/gshadow : show all group and user in each group.

#cat /etc/group : show all group
# getent group userName (ex: geten group root)
#cat /etc/passwd : show all user
#cat /etc/passwd | more

1. Tạo User
=> Mỗi user tạo ra được lưu trên một dòng

Ví dụ:
– Khi tạo một user thì mặc định linux tạo thêm một group primary cùng tên với user và chứa user đó.– User có id = 0 thì đó là user có quyền root

id = 1 – 99: dùng cho system service
id = 100 – 499: dùng cho system cài thêm
id >=500: dùng cho user và group thường

useradd: tạo user
-c: comment (chú thích)
-d: home directory (thư mục cá nhân)
-G: đưa user vào group
-M: không tạo thư mục cá nhân
-n: không tạo primary group, user tạo ra sẽ được đưa vào group users
-s: chỉ định shell

passwd: đặt password cho user
-l: lock user
-u: unlock user
-d: disable passwd
userdel: xóa user
-r: xóa luôn thư mục các nhân
– Tạo user nv1, nv2 có home directory là thư mục /home
#useradd –c “ke toan” nv1
#useradd –c “ke toan” nv2

– Tạo user kt1, kt2 có home directory là thư mục /ketoan
#mkdir /ketoan
#useradd –c “ke toan” –d /ketoan/kt1 kt1
#useradd –c “ke toan” –d /ketoan/kt2 kt2
#cat /etc/passwd
#ll /ketoan
#ll /home
– Đặt password cho user kt1, kt2
#passwd kt1
#passwd kt2

groupadd: tạo group
groupdel: xóa group


– Tạo group kinhdoanh
#groupadd kinhdoanh
– Tạo user kd1, kd2 và đưa vào group kinhdoanh đã tồn tại
#useradd –G kinhdoanh kd1
#useradd –G kinhdoanh kd2
#cat /etc/group

– Xem id và group của user kd1
#id kd1

LAB: Tạo các đối tượng sau và đưa chúng vào group tương ứng
Group User
ketoan kt1/123
kt2/123
nv1/123
kinhdoanh kd1/123
kd2/123
nv2/123
nhanvien nv1/123
nv2/123

– Tạo group
# groupadd ketoan
# groupadd kinhdoanh
# groupadd nhanvien

– Tạo user
# useradd kt1 # useradd kt2
# useradd kd1 # useradd kd2
# useradd nv1 # useradd nv2

– Đưa user vào group tương ứng
# usermod –G ketoan kt1 # usermod –G ketoan kt2
# usermod –G kinhdoanh kd1 # usermod –G kinhdoanh kd2
# usermod –G nhanvien nv1 # usermod –G nhanvien nv2
# usermod –aG ketoan nv1 # usermod –aG kinhdoanh nv2

– Đưa user bình thường kt1 có quyền bị hạn chế, thành user có quyền root :
#su – kt1
#mkdir /datakt1 //Không tạo được thư mục vì không có quyền
#su – root
#vi /etc/passwd
User kt1 có thông tin: kt1:x:501:501:ke toan:/ketoan/kt1:/bin:bash
Sửa thành: kt1:x:0:0:ke toan:/ketoan/kt1:/bin:bash
#su – kt1
#mkdir /datakt1 //thành công
Thực hiện lệnh với quyền root
– User kd1 là một user có quyền bị giới hạn nên không thể tạo ra user mới, ta muốn user này có thể tạo được user
– login kd1 tạo user kd3
#useradd kd3 //không thành công
– login root cấu hình cho phép user kd1 sử dụng lệnh useradd
#vi /etc/sudoers



Các thiết lặp mặc định: /etc/default/useradd
#vi /etc/default/useradd
# useradd defaults file
GROUP=100 //group users
HOME=/home //home directory
INACTIVE=-1 //
EXPIRE= // thiết lặp ngày hết hạn của tài khoản
SHELL=/bin/bash
SKEL=/etc/skel // khi tạo user mới thì thư mục skel sẽ được copy cho user

Sửa thành
GROUP=100
HOME=/kinhdoanh
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
/etc/login.defs
Các thiết lặp mặc định passwd của user



Tạo nhiều user :
#vi taouser
clear
read -p “Ma user can tao (kt, kd, …): ” code
read -p “So user can tao: ” n
while [ $n -gt 0 ]
do
useradd $code$n
echo “123456” | passwd $code$n –stdin
n=$[ $n – 1]
done

#sh taouser

Xem nhiều nhất