Tạo User Mới và Cấp Quyền Sudo trên Rocky Linux: Hướng Dẫn Chi Tiết

Rocky Linux, một hệ điều hành mã nguồn mở mạnh mẽ, thường được sử dụng trong môi trường máy chủ và phát triển. Việc quản lý người dùng và phân quyền là một phần quan trọng để đảm bảo an ninh và hiệu quả hoạt động của hệ thống. Bài viết này sẽ hướng dẫn bạn từng bước cách tạo user mới và cấp quyền sudo trên Rocky Linux, giúp bạn quản lý hệ thống một cách an toàn và hiệu quả. Chúng ta sẽ đi sâu vào các lệnh, cấu hình, và các mẹo hữu ích để bạn có thể thực hiện một cách dễ dàng, ngay cả khi bạn là người mới bắt đầu.

Để hiểu rõ hơn về tầm quan trọng của việc cấu hình hệ thống, bạn có thể tham khảo thêm về cách hướng dẫn cài đặt rocky linux từ A đến Z.

Tạo User Mới trên Rocky Linux

Việc tạo một user mới trên Rocky Linux là một thao tác đơn giản nhưng vô cùng quan trọng. Nó cho phép bạn chia sẻ quyền truy cập vào hệ thống một cách an toàn, tránh việc sử dụng tài khoản root cho các tác vụ hàng ngày, từ đó giảm thiểu rủi ro bảo mật.

Sử dụng Lệnh useradd

Lệnh useradd là công cụ cơ bản để tạo user mới trên Rocky Linux. Cú pháp cơ bản như sau:

sudo useradd <tên_người_dùng>

Ví dụ, để tạo một user có tên là “nguyenvanan”, bạn sẽ thực hiện lệnh:

sudo useradd nguyenvanan

Lệnh này sẽ tạo một user mới với các thiết lập mặc định. Tuy nhiên, bạn có thể tùy chỉnh thêm các tùy chọn khác.

Tùy Chọn Thường Dùng với useradd

  • -m: Tạo thư mục home cho user. Nếu không có tùy chọn này, user sẽ không có thư mục home mặc định.
  • -d <đường_dẫn>: Chỉ định đường dẫn cho thư mục home. Ví dụ: -d /home/nguyenvanan.
  • -g <tên_nhóm>: Chỉ định nhóm chính cho user. Nếu không chỉ định, user sẽ được gán vào một nhóm mặc định có tên trùng với tên user.
  • -G <danh_sách_nhóm>: Chỉ định danh sách các nhóm phụ mà user thuộc về, cách nhau bằng dấu phẩy.
  • -s <shell>: Chỉ định shell mặc định cho user. Ví dụ: -s /bin/bash.

Ví dụ, để tạo user “nguyenvanan” với thư mục home là /home/nguyenvanan, nhóm chính là “users” và shell mặc định là /bin/bash, bạn sẽ sử dụng lệnh:

sudo useradd -m -d /home/nguyenvanan -g users -s /bin/bash nguyenvanan

Lưu ý: Luôn sử dụng sudo trước lệnh useradd vì bạn cần quyền root để tạo user.

Thiết Lập Mật Khẩu cho User

Sau khi tạo user, bạn cần thiết lập mật khẩu cho user đó. Sử dụng lệnh passwd:

sudo passwd nguyenvanan

Hệ thống sẽ yêu cầu bạn nhập mật khẩu mới và xác nhận lại. Hãy chọn một mật khẩu mạnh để đảm bảo an toàn.

Ví dụ Thực Tế

Giả sử bạn cần tạo một user mới tên là “tranhuonglan” cho một nhà phát triển web. Bạn muốn user này có thư mục home, thuộc nhóm “developers” và sử dụng shell Zsh (nếu đã cài đặt). Bạn sẽ thực hiện các lệnh sau:

sudo useradd -m -d /home/tranhuonglan -g developers -s /bin/zsh tranhuonglan
sudo passwd tranhuonglan

“Việc quản lý user hiệu quả là nền tảng của một hệ thống an toàn. Đừng bỏ qua bước này!” – Kỹ sư hệ thống Trần Văn Nam chia sẻ.

Cấp Quyền Sudo cho User trên Rocky Linux

Quyền sudo cho phép một user thực hiện các lệnh với quyền root, tương tự như tài khoản root. Điều này rất hữu ích khi bạn muốn user có thể thực hiện các tác vụ quản trị hệ thống mà không cần phải đăng nhập trực tiếp bằng tài khoản root.

Phương Pháp 1: Thêm User vào Nhóm wheel

Đây là phương pháp phổ biến nhất và được khuyến nghị trên Rocky Linux. Nhóm wheel được cấu hình sẵn để cho phép các thành viên của nhóm này sử dụng lệnh sudo.

Để thêm user vào nhóm wheel, sử dụng lệnh usermod:

sudo usermod -aG wheel nguyenvanan

Trong đó:

  • -a: Thêm user vào nhóm mà không loại bỏ các nhóm hiện tại.
  • -G: Chỉ định nhóm phụ.
  • wheel: Tên nhóm.
  • nguyenvanan: Tên user cần cấp quyền.

Sau khi thực hiện lệnh này, user “nguyenvanan” sẽ có quyền sudo.

Phương Pháp 2: Chỉnh Sửa Tệp /etc/sudoers

Phương pháp này cho phép bạn cấp quyền sudo cụ thể hơn cho user. Tuy nhiên, cần cẩn thận khi chỉnh sửa tệp /etc/sudoers vì một lỗi nhỏ có thể khiến hệ thống không hoạt động.

Cảnh báo: Luôn sử dụng lệnh visudo để chỉnh sửa tệp /etc/sudoers. Lệnh này sẽ kiểm tra cú pháp trước khi lưu, giúp tránh các lỗi nghiêm trọng.

sudo visudo

Thêm dòng sau vào cuối tệp (hoặc bất kỳ vị trí nào bạn muốn, nhưng nên giữ cho các mục liên quan gần nhau để dễ quản lý):

nguyenvanan ALL=(ALL:ALL) ALL

Giải thích:

  • nguyenvanan: Tên user được cấp quyền.
  • ALL: Cho phép user truy cập từ bất kỳ host nào.
  • (ALL:ALL): Cho phép user thực hiện lệnh với tư cách bất kỳ user và nhóm nào.
  • ALL: Cho phép user thực hiện tất cả các lệnh.

Lưu ý: Phương pháp này cho phép user thực hiện tất cả các lệnh với quyền root. Nếu bạn muốn hạn chế quyền sudo cho một số lệnh nhất định, bạn có thể chỉ định các lệnh cụ thể thay vì ALL. Ví dụ:

nguyenvanan ALL=(ALL:ALL) /usr/bin/apt-get update, /usr/bin/apt-get upgrade

Kiểm Tra Quyền Sudo

Sau khi cấp quyền sudo, bạn nên kiểm tra xem user có thực sự có quyền sudo hay không. Đăng nhập vào tài khoản user (ví dụ: “nguyenvanan”) và thử thực hiện một lệnh yêu cầu quyền root:

sudo apt-get update

Nếu hệ thống yêu cầu bạn nhập mật khẩu của user và sau đó thực hiện lệnh thành công, thì bạn đã cấp quyền sudo thành công. Nếu bạn nhận được thông báo lỗi “user is not in the sudoers file”, thì bạn cần kiểm tra lại các bước trên.

Ví dụ Thực Tế

Giả sử bạn muốn cấp quyền sudo cho user “tranhuonglan” để cô ấy có thể cài đặt và cập nhật phần mềm. Bạn sẽ thêm user này vào nhóm wheel:

sudo usermod -aG wheel tranhuonglan

Sau đó, bạn yêu cầu “tranhuonglan” đăng nhập vào tài khoản của mình và thử chạy lệnh sudo apt-get update. Nếu thành công, cô ấy đã có quyền sudo.

“Việc sử dụng nhóm wheel để cấp quyền sudo là một cách tiếp cận an toàn và dễ quản lý hơn so với việc chỉnh sửa trực tiếp tệp /etc/sudoers.” – Chuyên gia bảo mật Lê Thị Mai Anh nhận định.

Các Lưu Ý Quan Trọng về An Ninh

Việc cấp quyền sudo là một con dao hai lưỡi. Nếu không cẩn thận, bạn có thể vô tình trao quyền quá lớn cho user, dẫn đến rủi ro bảo mật. Dưới đây là một số lưu ý quan trọng:

  • Chỉ cấp quyền sudo cho những user thực sự cần thiết. Không phải ai cũng cần quyền root.
  • Cân nhắc hạn chế quyền sudo cho một số lệnh nhất định. Nếu user chỉ cần thực hiện một số tác vụ nhất định, hãy chỉ cấp quyền cho các tác vụ đó.
  • Thường xuyên kiểm tra lại danh sách user có quyền sudo. Đảm bảo rằng chỉ những người còn làm việc trong dự án mới có quyền này.
  • Theo dõi nhật ký sudo. Bạn có thể sử dụng các công cụ như sudo -l để xem các lệnh đã được thực hiện với quyền sudo. Điều này giúp bạn phát hiện các hoạt động bất thường.

Ngoài ra, bạn cũng cần đảm bảo rằng hệ thống của bạn được bảo vệ bởi tường lửa và các biện pháp an ninh khác. Bạn có thể tham khảo thêm về cách tắt root login ssh rocky linux để tăng cường bảo mật cho hệ thống.

Quản Lý Nhóm Người Dùng Hiệu Quả

Việc quản lý nhóm người dùng là một phần quan trọng của việc quản lý hệ thống Linux. Nhóm cho phép bạn gán các quyền và quyền hạn cho nhiều người dùng cùng một lúc, giúp đơn giản hóa việc quản lý và đảm bảo tính nhất quán.

Tạo Nhóm Mới

Để tạo một nhóm mới, bạn sử dụng lệnh groupadd:

sudo groupadd <tên_nhóm>

Ví dụ, để tạo một nhóm có tên là “webmasters”, bạn sẽ thực hiện lệnh:

sudo groupadd webmasters

Quản Lý Thành Viên Nhóm

Như đã đề cập ở trên, bạn có thể sử dụng lệnh usermod để thêm user vào một nhóm:

sudo usermod -aG <tên_nhóm> <tên_người_dùng>

Để xóa một user khỏi một nhóm, bạn có thể sử dụng lệnh gpasswd:

sudo gpasswd -d <tên_người_dùng> <tên_nhóm>

Ví dụ, để xóa user “nguyenvanan” khỏi nhóm “webmasters”, bạn sẽ thực hiện lệnh:

sudo gpasswd -d nguyenvanan webmasters

Phân Quyền cho Nhóm

Bạn có thể sử dụng lệnh chownchgrp để thay đổi quyền sở hữu và nhóm sở hữu của một tệp hoặc thư mục. Ví dụ, để thay đổi nhóm sở hữu của thư mục /var/www/html thành “webmasters”, bạn sẽ thực hiện lệnh:

sudo chgrp webmasters /var/www/html

Sau đó, bạn có thể sử dụng lệnh chmod để cấp quyền cho nhóm “webmasters”. Ví dụ, để cấp quyền đọc, ghi và thực thi cho nhóm “webmasters” trên thư mục /var/www/html, bạn sẽ thực hiện lệnh:

sudo chmod g+rwx /var/www/html

“Sử dụng nhóm để quản lý quyền truy cập giúp giảm thiểu rủi ro lỗi cấu hình và đảm bảo tính nhất quán trên toàn hệ thống.” – Chuyên gia quản trị mạng Nguyễn Hoàng Anh chia sẻ.

Sử Dụng SSH Keys Thay Vì Mật Khẩu

Để tăng cường bảo mật, bạn nên sử dụng SSH keys thay vì mật khẩu để xác thực khi kết nối đến server. SSH keys sử dụng một cặp khóa (khóa công khai và khóa riêng tư) để xác thực, thay vì mật khẩu. Điều này giúp giảm thiểu rủi ro bị tấn công bằng brute-force.

Tạo SSH Key Pair

Trên máy tính của bạn (không phải server), mở terminal và thực hiện lệnh:

ssh-keygen -t rsa -b 4096

Hệ thống sẽ yêu cầu bạn nhập đường dẫn để lưu khóa và một passphrase (mật khẩu bảo vệ khóa). Bạn có thể để trống đường dẫn để lưu khóa vào thư mục mặc định (~/.ssh) và có thể bỏ qua passphrase nếu muốn, nhưng nên sử dụng passphrase để tăng cường bảo mật.

Sao Chép Khóa Công Khai lên Server

Sau khi tạo SSH key pair, bạn cần sao chép khóa công khai (~/.ssh/id_rsa.pub) lên server. Bạn có thể sử dụng lệnh ssh-copy-id:

ssh-copy-id nguyenvanan@<địa_chỉ_server>

Trong đó:

  • nguyenvanan: Tên user trên server.
  • <địa_chỉ_server>: Địa chỉ IP hoặc hostname của server.

Hệ thống sẽ yêu cầu bạn nhập mật khẩu của user trên server. Sau khi nhập mật khẩu, khóa công khai sẽ được sao chép vào tệp ~/.ssh/authorized_keys trên server.

Vô Hiệu Hóa Xác Thực Bằng Mật Khẩu

Để tăng cường bảo mật, bạn nên vô hiệu hóa xác thực bằng mật khẩu sau khi đã thiết lập SSH keys. Chỉnh sửa tệp /etc/ssh/sshd_config trên server:

sudo nano /etc/ssh/sshd_config

Tìm các dòng sau và thay đổi giá trị như sau:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Lưu tệp và khởi động lại dịch vụ SSH:

sudo systemctl restart sshd

Sau khi thực hiện các bước này, bạn sẽ chỉ có thể kết nối đến server bằng SSH keys, không còn có thể sử dụng mật khẩu.

“Việc sử dụng SSH keys là một biện pháp bảo mật quan trọng giúp bảo vệ server khỏi các cuộc tấn công từ bên ngoài.” – Chuyên gia bảo mật mạng Phạm Minh Đức khẳng định.

Sử Dụng Firewall Để Bảo Vệ Hệ Thống

Firewall là một phần không thể thiếu của bất kỳ hệ thống Linux nào. Nó giúp bảo vệ hệ thống khỏi các cuộc tấn công từ bên ngoài bằng cách kiểm soát lưu lượng mạng ra vào. Rocky Linux sử dụng firewalld làm firewall mặc định.

Kiểm Tra Trạng Thái Firewall

Để kiểm tra trạng thái của firewall, sử dụng lệnh:

sudo firewall-cmd --state

Nếu firewall đang hoạt động, bạn sẽ thấy kết quả là “running”.

Mở Cổng

Để mở một cổng, sử dụng lệnh:

sudo firewall-cmd --add-port=<số_cổng>/<giao_thức> --permanent

Ví dụ, để mở cổng 80 (HTTP) và 443 (HTTPS), bạn sẽ thực hiện các lệnh sau:

sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent

Sau khi mở cổng, bạn cần tải lại cấu hình firewall:

sudo firewall-cmd --reload

Đóng Cổng

Để đóng một cổng, sử dụng lệnh:

sudo firewall-cmd --remove-port=<số_cổng>/<giao_thức> --permanent

Ví dụ, để đóng cổng 22 (SSH), bạn sẽ thực hiện lệnh:

sudo firewall-cmd --remove-port=22/tcp --permanent

Sau khi đóng cổng, bạn cần tải lại cấu hình firewall:

sudo firewall-cmd --reload

“Việc cấu hình firewall đúng cách là rất quan trọng để bảo vệ hệ thống khỏi các cuộc tấn công mạng. Hãy đảm bảo rằng bạn chỉ mở các cổng cần thiết và đóng tất cả các cổng không sử dụng.” – Chuyên gia an ninh mạng Lê Hoàng Việt khuyến cáo.

Bạn có thể xem xét tạo virtual host apache rocky linux để hiểu rõ hơn về cách cấu hình web server và firewall.

Kết Luận

Trong bài viết này, chúng ta đã tìm hiểu cách tạo user mới và cấp quyền sudo trên Rocky Linux, cùng với các biện pháp bảo mật quan trọng như sử dụng SSH keys và cấu hình firewall. Việc quản lý người dùng và phân quyền là một phần không thể thiếu của việc quản lý hệ thống Linux, và việc thực hiện đúng cách sẽ giúp bạn bảo vệ hệ thống của mình khỏi các rủi ro bảo mật. Hãy luôn nhớ tuân thủ các nguyên tắc an ninh và thường xuyên kiểm tra lại cấu hình hệ thống để đảm bảo an toàn.

FAQ (Câu Hỏi Thường Gặp)

1. Tại sao tôi nên tạo user mới thay vì sử dụng tài khoản root?

Sử dụng tài khoản root cho các tác vụ hàng ngày làm tăng nguy cơ hệ thống bị xâm nhập. Nếu tài khoản root bị xâm nhập, kẻ tấn công sẽ có toàn quyền kiểm soát hệ thống. Tạo user mới và cấp quyền sudo cho các tác vụ quản trị giúp giảm thiểu rủi ro này.

2. Làm thế nào để biết một user có quyền sudo hay không?

Bạn có thể sử dụng lệnh sudo -l -U <tên_người_dùng> để kiểm tra quyền sudo của một user. Nếu user có quyền sudo, hệ thống sẽ hiển thị danh sách các lệnh mà user có thể thực hiện với quyền sudo. Nếu user không có quyền sudo, hệ thống sẽ hiển thị thông báo lỗi.

3. Tôi có thể cấp quyền sudo cho một nhóm người dùng không?

Có, bạn có thể cấp quyền sudo cho một nhóm người dùng bằng cách thêm nhóm đó vào tệp /etc/sudoers hoặc thêm các user vào nhóm wheel.

4. Làm thế nào để hạn chế quyền sudo cho một số lệnh nhất định?

Bạn có thể chỉnh sửa tệp /etc/sudoers và chỉ định các lệnh cụ thể mà user hoặc nhóm được phép thực hiện với quyền sudo.

5. Tôi có thể vô hiệu hóa quyền sudo cho một user không?

Có, bạn có thể vô hiệu hóa quyền sudo cho một user bằng cách xóa user đó khỏi nhóm wheel hoặc xóa dòng tương ứng trong tệp /etc/sudoers.

6. Tại sao tôi không thể kết nối đến server sau khi vô hiệu hóa xác thực bằng mật khẩu?

Có thể bạn chưa sao chép khóa công khai lên server hoặc khóa riêng tư của bạn không đúng. Hãy kiểm tra lại các bước thiết lập SSH keys và đảm bảo rằng bạn đang sử dụng đúng khóa riêng tư. Ngoài ra, kiểm tra file log của SSH để biết thêm thông tin chi tiết.

7. Làm thế nào để biết cổng nào đang được sử dụng trên hệ thống?
Bạn có thể sử dụng lệnh netstat -tulnp hoặc ss -tulnp để xem danh sách các cổng đang được sử dụng trên hệ thống, giao thức và chương trình đang sử dụng cổng đó.