Header Ads Widget

Ticker

6/recent/ticker-posts

Không cho phép user sudo truy cập root bằng "sudo -i" và chặn sử dụng một số file bin

Keywords: How to disable "su", "sudo -i" access for sudo user and disable files bin

Chào các anh em, hôm nay mình sẻ hướng dẫn cho anh em một mẹo rất hay trong Linux, mẹo này để giúp anh em muốn một tài khoản có quyền sudo nhưng không cho phép họ truy cập qua tài khoản root hoặc đơn giản là cấm họ sử dụng một số files bin nhất định, để thực thi một vấn đề gì đó.

Chắc nhiều bạn sẻ suy nghĩ, chặn điều này để làm gì nhỉ, tại sao cho nó quyền sudo rồi mà còn chặn làm gì? vấn đề nào cũng có nguyên nhân của nó cả, thật ra mình muốn team MKT họ sử dụng tài khoản họ và thao tác trên toàn bộ hệ thống, mình muốn họ có quyền để thực thi mọi thứ chứ không phải chỉ đơn giản là một user bình thường, nhưng khổ cái nếu như mình cho full quyền như vậy, họ có thể truy cập vào tài khoản root với tài khoản root họ thậm chí còn có rất nhiều quyền hơn nữa, nếu như ai sử dụng Linux lâu năm thì sẻ hiểu rõ điều này và một phần mình cũng muốn chặn họ thao tác một số lệnh khác ví dụ rsync hoặc gì đó v.v, cũng như các bạn biết rằng các câu lệnh của Linux được thực thi thông qua files bin và nó cũng giống files exe của Windows vậy, thôi nói dài dòng vậy được rồi, chúng ta bắt đầu thực hiện điều này nhé, đầu tiên chúng ta sẻ backup file sudoer lại vì chúng ta sẻ thực hiện chỉnh sửa mọi thứ trên file này, tránh lỗi xảy ra thì nên backup cho an toàn đó mà.
cp /etc/sudoers /etc/sudoers.bak
Sau đó chúng ta có 2 cách chỉnh sửa
sudo visudo hoặc vi /etc/sudoers
Sau đó chúng ta tạo một variable (command aliases) trong file sudoers như sau
## Config user for MKT
## Disable for all user MKT
Cmnd_Alias DISABLE_MKT = /bin/su, /bin/sh, /bin/bash, /usr/bin/zsh, /usr/sbin/visudo
Ở trên mình đã tạo một variable là DISABLE_MKT, mình thực hiện chọn một số file bin cần Disable như là su, sh, bash, zsh, visudo. Để giải thích sơ qua một chút cho các bạn hiểu thì
  1. su: mình disable file bin này là vì nó là nguyên nhân để có thể chuyển user.
  2. sh, bash, zsh: những files bin cho việc sử dụng sudo -i, cũng như là shell chính của os.
  3. visudo: để chặn user có thể vào file sudoers để chỉnh sửa lại quyền mà mình đã chặn.
Ok sau khi đã setting variable xong rồi thì tới bước thực hiện xác nhận câu lệnh, mình sẻ add thêm một đoạn lệnh bên dưới
%pmc-mkt        ALL=(ALL)       NOPASSWD: ALL, !DISABLE_MKT
Trong đây pmc-mkt chính là group của user mkt nên thành ra mình sẻ setting % ở đầu, nhưng nếu nó là một user mà không phải group thì không cần % đó, các bạn chú ý điều này kẻo nhầm nhé, chúng ta cũng có tổng cộng 3 phần cần chú ý
  • "ALL=(ALL:ALL) ALL" hoặc "ALL=(ALL)": Chỗ này để cho ta khai báo là tất cả user và group hoặc tất cả user sẻ bị dính policy này.
  • "NOPASSWD: ALL": Phần này thì khai báo để tất cả user không cần nhập password khi thực thi.
  • "!DISABLE_MKT": Phần này chính là sẻ loại bỏ thực thi những file bin mà ta đã setting ở variable trên cho các user nằm trong group "pmc-mkt".
Giờ các bạn thử save lại và truy cập thử user mà bạn đã chặn để thực hiện thử nghiệm xem nào?
Tuyệt vời, giờ đây user mkt không thể chuyển qua root bằng "sudo -i" và cũng không thể dùng visudo để chỉnh lại mặc dù đã có lệnh sudo nhưng không thể làm gì được, chúc các bạn thành công nhé.

Post a Comment

0 Comments