Lý do và cách chỉnh sửa file sudoers trong Linux

Trong hệ thống Linux hoặc macOS, có một file được gọi là “sudoers” kiểm soát các cấp sâu nhất trong hệ thống quyền của bạn. Nó cho phép hoặc từ chối người dùng có được quyền truy cập superuser (siêu người dùng) và giữ một số tùy chọn đặc biệt cho sudo.

File sudoers là gì?

File sudoers là một file văn bản nằm ở “/etc/sudoers” và kiểm soát cách sudo hoạt động trên máy. Có lẽ bạn đã quen với vai trò chính của sudo là nâng quyền của tài khoản hiện tại lên quyền root, superuser trên tất cả các hệ thống dựa trên Unix. Điều này cho phép người dùng thực hiện các lệnh hiện bị cấm.

Khi nào cần chỉnh sửa file sudoers?

Khi cài đặt Linux (hoặc macOS) lần đầu, người dùng đầu tiên và mặc định sẽ được tự động thêm vào file sudoers để file có thể chạy các tác vụ quản trị bằng lệnh sudo. Tuy nhiên, nếu bạn tạo một tài khoản người dùng mới, nó sẽ không có quyền superuser theo mặc định. Nếu cần cấp cho nó quyền superuser, bạn sẽ cần chỉnh sửa file sudoers và thêm tài khoản người dùng này vào nó.

Làm cách nào để chỉnh sửa file sudoers?

Đừng bao giờ chỉnh sửa file sudoers trong trình soạn thảo văn bản thông thường. Điều này có thể dẫn đến việc chỉnh sửa đồng thời và các file bị hỏng, có khả năng từ chối mọi quyền truy cập admin. Sudoers phải được chỉnh sửa bằng cách chạy visudo trong Terminal, như sau:

sudo visudo

Lưu ý rằng bạn cần sử dụng sudo để chạy visudo. Thao tác này sẽ mở file sudoers bằng trình soạn thảo văn bản mặc định trong Terminal (theo mặc định là Nano).

File sudoers bằng trình soạn thảo văn bản mặc định trong Terminal
File sudoers bằng trình soạn thảo văn bản mặc định trong Terminal

Thay đổi file sudoers có tác dụng gì?

Công việc chính của file sudoers là xác định người dùng nào có thể sử dụng sudo để làm gì. Nó cũng có một số tùy chọn đơn giản mà bạn có thể điều chỉnh trước tiên để có cảm nhận về cách visudo hoạt động.

Thay đổi thời gian chờ sudo

Theo mặc định, nhập mật khẩu sudo sẽ nâng quyền của bạn cho đến khi bạn đóng shell hoặc thoát. Điều này có thể không an toàn và một số người thích nhập mật khẩu mỗi khi sử dụng sudo.

1. Chạy sudo visudo như đã nói ở trên.

2. Nhấn Alt + / để điều hướng đến cuối tài liệu. Nếu bạn đang sử dụng Vi hoặc Vim, hãy nhấn Shift + G.

Nhấn Alt + / để điều hướng đến cuối tài liệu
Nhấn Alt + / để điều hướng đến cuối tài liệu

3. Tạo một dòng mới ở cuối tài liệu và thêm dòng sau:

Defaults timestamp_timeout=0
Tạo một dòng mới ở cuối tài liệu
Tạo một dòng mới ở cuối tài liệu

Điều này sẽ đặt thời gian chờ sudo thành 0 giây, vì vậy bạn sẽ có quyền sudo trong 0 giây sau khi bạn thực hiện lệnh đầu tiên. Nếu bạn thích một khoảng thời gian khác, hãy nhập giá trị đó tính theo giây.

Bạn cũng có thể đặt thời gian chờ thành “-1”, điều này cho bạn thời gian gia hạn vô hạn. Nhưng đừng làm vậy! Việc đó có thể vô tình làm hỏng hệ thống vào một ngày nào đó.

4. Nhấn Ctrl + O để lưu và Ctrl + X để thoát.

Giới hạn ai có thể sử dụng sudo và làm những gì

Mục đích chính của file sudoers là kiểm soát người dùng nào có thể chạy sudo. Nếu không có sudo, người dùng không thể nâng quyền của họ. Nếu bạn có nhiều người dùng truy cập vào cùng một hệ thống thông qua shell, bạn có thể kiểm soát quyền truy cập của họ bằng cách đặt các giá trị trong sudo.

Mọi file sudoers sẽ có dòng sau:

root ALL=(ALL) ALL

Điều này cho phép người dùng root trên tất cả các host sử dụng tất cả user để thực hiện tất cả mọi lệnh. ALL là một giá trị đặc biệt trong file sudoers, mang nghĩa là “không có giới hạn”. Cú pháp như sau:

username hostlist = (userlist) commandlist

Nếu bạn muốn thêm người dùng khác làm root, chỉ cần sao chép dòng root và thay đổi người dùng như sau:

alexander ALL=(ALL) ALL

Để kiểm soát nhiều hơn, bạn có thể thêm một dòng như sau, dòng này sẽ chỉ cho phép người dùng “alexander” chạy apt-get update.

alexander ALL=(ALL) /usr/bin/apt-get update

Đặt “%” trước user và nó sẽ xác định một nhóm. Dòng dưới đây sẽ cho phép mọi người dùng trong nhóm "admin" có quyền root. Đây sẽ là nhóm được xác định bởi các nhóm quyền hệ điều hành.

%admin ALL=(ALL) ALL

Thay đổi trình chỉnh sửa visudo

Tùy thuộc vào phiên bản Linux bạn đang chạy, có hai cách chính để thay đổi trình chỉnh sửa.

Đối với Ubuntu, bạn sẽ muốn chạy lệnh Terminal bên dưới:

sudo update-alternatives –config editor

Bạn sẽ thấy một thứ gì đó như sau:

There are 4 choices for the alternative editor (providing /usr/bin/editor).
  
   Selection    Path                Priority   Status
 ------------------------------------------------------------
 * 0            /bin/nano            40        auto mode
   1            /bin/ed             -100       manual mode
   2            /bin/nano            40        manual mode
   3            /usr/bin/vim.basic   30        manual mode
   4            /usr/bin/vim.tiny    10        manual mode
  
 Press enter to keep the current choice[*], or type selection number: 3

Nếu bạn muốn chọn Vim làm trình chỉnh sửa visudo từ tùy chọn mặc định Nano, bạn sẽ cần nhấn vào lựa chọn số 3 rồi nhấn Enter.

Đối với các phiên bản Linux khác, bạn sẽ muốn thêm một dòng mới vào file “~./bashrc” của mình như bên dưới:

export EDITOR="vim"

Sau đó, lưu file. Trình chỉnh sửa visudo sẽ chuyển thành Vim.

Xem thêm:

Thứ Năm, 15/10/2020 08:09
51 👨 96
0 Bình luận
Sắp xếp theo