NỘI DUNG
Kết thúc nội dung Giải ngố Linux – Phần 7: Cài đặt Ubuntu 22.04 LTS trên VMware, tôi đã có trong tay con hàng Virtual Machine Ubuntu 22.04 LTS mới keng xà beng sẵn sàng chờ lệnh.
Ban đầu, như đã hứa hẹn ở đâu đó, tôi định xắn tay lên bay vô làm lại bản cập nhật cho nội dung Hướng dẫn tạo VPN Server miễn phí từ A đến Z – Phần 3: Cài đặt OpenVPN, EasyRSA và thiết lập Certificate Authority trên GCP VM Instance (sử dụng Ubuntu 16.04 LTS). Cái này cũng sẽ tương ứng với phần tiếp theo của nội dung tôi đang giới thiệu dang dở trước đó là Bảo mật kết nối VPN – Phần 1: Đặc quyền khi tự quản lý VPN Server.
Tuy nhiên, sau khi chiêm nghiệm lại các nội dung này, tôi thấy cần dành chút thời gian để giới thiệu về các thao tác thiết lập cơ bản ban đầu nhưng có vai trò khá quan trọng (cho Ubuntu 22.04 LTS và Linux nói chung) đó là:
- Quản lý user (người dùng);
- Quản lý firewall (tường lửa);
- Quản lý kết nối ssh đến server.
Vì các thiết lập này quan trọng nên tôi sẽ tạm thời từ bỏ phong cách mì ăn liền quen thuộc và trình bày hơi dông dài. Trường hợp bạn đã nắm rõ các nội dung này và chỉ quan tâm đến phần cập nhật cho VPN Server trên Ubuntun 22.04 LTS thì chịu khó chờ sang các kỳ kế tiếp (kỳ này tôi sẽ tập trung vào phần quản lý user cơ bản).
#1. Tạo và kiểm tra phân quyền cho user trên Ubuntu 22.04 LTS
Sau khi quất cái file iso và cài đặt Virtual Machine với các thiết lập mặc định như đề cập kỳ trước, tôi sẽ có thể đăng nhập vào hệ thống với user ubuntu có khả năng chạy command với sudo (superuser do – tức là tương đương với user root)
Ở chỗ này, tôi có thể tạo thêm các user (ví dụ test) mới bằng command:
sudo adduser test
Lưu ý:
- Tôi sẽ cần cung cấp và confirm password. Các thông tin còn lại thì có thể cung cấp hoặc để mặc định;
- Nếu ngứa mắt không muốn thấy cái user mới kia nữa thì tôi có thể cho nó bay màu với command sudo deluser test.
Lúc này, để thay đổi user từ ubuntu sang test, tôi dùng command sau (nhập password tương ứng cho user test):
su test
Sau đó, tôi có thể kiểm tra các thông tin liên quan đến user test với các command:
id
sudo -l
visudo
Như quan sát ở trên, user test này hiện khá phế vì không thuộc group (nhóm) quyền lực nào và cũng bị cấm chạy command với sudo cũng như visudo để nâng cấp quyền hạn.
Trái lại, nếu tôi chuyển về user ubuntu (cần nhập password tương ứng) và chạy các command như trên thì kết quả sẽ khác hẳn.
su ubuntu
id
sudo -l
Như quan sát ở trên, user ubuntu hiện đang nằm trong sudo group hạng nặng nên sẽ tha hồ tung tóe với sudo command. Tôi có thể xác nhận lại vụ này với cái output (ALL : ALL) ALL của command sudo -l.
#2. Phân quyền cho user trên Ubuntu 22.04 LTS
Quay trở lại câu chuyện với user test, với vai trò là user ubuntu có đặc quyền cao, tôi có thể cấp quyền cho nhân vật này với command:
sudo usermod -aG sudo test
Lưu ý:
- Nếu chỉ chạy usermod -aG sudo test tôi sẽ chửi thẳng mặt là không đủ tư cách nên cấm chạy Permission denied.
- Ngoài kiểu add group nói trên, tôi có thể dùng command visudo để ghi vào các đặc quyền mong muốn cho user test.
Lúc này, khi chuyển sang user test và chạy lại command kiểm tra tôi sẽ thấy vai vế của user này đã được cải thiện đáng kể.
su test
id
sudo -l
#3. Nếu được cấp user root trên Ubuntu 22.04 LTS thì sao?
Trường hợp tôi không thử nghiệm Ubuntu 22.04 LTS kiểu Virtual Machine nói trên mà quất luôn một cái Virtual Private Server – VPS từ Cloud services (tôi có đề cập về Cloud trong nội dung Giải ngố Cloud – Phần 1: Ngắn gọn thì Cloud là cái gì? Có ăn được không?) thì tình hình sẽ hơi khác một chút.
Cụ thể, tôi sẽ có thể được cấp password (hoặc yêu cầu thiết lập public key) của user root để ssh vào VPS. Lúc này, với user root quyền lực bao trùm cả vũ trụ (của cái VPS), hiển nhiên tôi có thể làm tất cả các trò như user ubuntu nói trên mà không cần phải lằng nhằng thêm cái chữ sudo trước các command.
Đến đây, tôi đoán bạn đang muốn phọt ra câu hỏi “Thế sao không dẹp mịa đám user kia đi rồi xài user root luôn cho khỏe, vẽ vời nhức cả đầu?!!!“. Ý tưởng này cũng không có gì sai trái, tuy nhiên nó có thể làm bạn “mệt đầu” trong một số tình huống như:
- Với các con hàng server, việc ông nào cũng đòi múc user root sẽ dẫn đến tình trạng “cha chung không ai khóc”, các ngoại cứ quẩy tẹt ga xong đụng chuyện banh server thì chối bay chối biến “chắc do thằng nào khác làm chứ em có làm thế bao giờ!”. Vì lẽ đó, việc sử dụng các user thường riêng biệt cho mỗi ông rồi nâng các đặc quyền cần thiết theo nhu cầu để có thể kiểm tra log khi cần sẽ là một lựa chọn hợp lý hơn;
- User root là đấng tối cao (của cái VPS) nên bất kỳ command nào bạn nhập vào (nếu đúng cú pháp) cũng sẽ được thực thi bất chấp hậu quả mà nó gây ra. Do vậy, việc chạy sudo command (và nhập mật khẩu tương ứng) của user thường có thể xem là giải pháp ngăn ngừa để nhắc nhở (kiểu như “Ê ku, có biết rõ đang làm gì không đấy?“) bạn kiểm tra lại một lần nữa trước khi xuống tay nhấn Enter.
Túm lại, nếu không có lí do gì thực sự cần thiết thì tôi nên tạo user thường, cấp các đặc quyền phù hợp rồi chuyển sang dùng user đấy.
Ngoài ra, nếu đang ssh vào server với password của user root đã được bên VPS services cung cấp thì tôi cũng sẽ nên thực hiện thêm một thao tác là thay đổi password cho root.
Để mần việc này tôi sẽ có thể chạy command passwd
nếu đang là user root (và sudo passwd
nếu đang là user thường có đặc quyền tương ứng).
Sau khi hoàn tất bước này, tôi sẽ có thể thực hiện các bước tạo user thường và cấp quyền tương ứng như đề cập ở Mục 1 và Mục 2.
Ở đây, tôi thấy cũng cần lưu ý rằng: Giải pháp ssh vào server với password (nếu cần thiết) dù với user thường hay user root chỉ nên là giải pháp tạm thời. Giải pháp này nên được thay thế bằng các phương án bảo mật hơn như sử dụng public/private key ngay khi có thể.
Tôi sẽ đề cập phần này chi tiết trong nội dung kỳ tới.
1 thought on “Giải ngố Linux – Phần 8: Quản lý user cơ bản trên Ubuntu 22.04 LTS”