Lệnh “sudo” trên Linux Image Lệnh “sudo” trên Linux

Bài viết này sẽ nói về lệnh sudo và cách để các bạn có thể tạo một user mới với quyền truy cập sudo trong Linux. Các ví dụ sau được thực hiện trên bản phân phối CentOS.

1. Lệnh “sudo”

Lệnh “sudo” cho phép người quản trị hệ thống uỷ quyền cho một thành viên có thể thực hiện chạy một số lệnh nào đó trong hệ thống dưới dạng chủ hoặc người dùng khác.

2. Cách cấu hình cho phép user dùng lệnh sudo

Để cấu hình cho một user trước hết chúng ta cần đăng nhập với tư cách là user root.

Đăng nhập vào user root

Bước 1: Dùng lệnh useradd để thêm user vào hệ thống:

useradd username

Bước 2: Dùng lệnh passwd để cập nhật pass cho user vừa tạo:

passwd username

Mật khẩu phải đủ mạnh và xác nhận lại mật khẩu.

Đối với CentOS 7 , mặt định tất cả các user trong wheel được cấp quyền sudo.

Bước 3: Dùng lệnh usermod để thêm user vừa tạo vào nhóm wheel

usermod -aG wheel username

Bước 4: Truy cập vào sudo trên user mới

  • Dùng lệch su để chuyển tới user mới: su username
  • Gõ lệch sudo trước lệch bạn muốn chạy với quyền superuseer: sudo command_to_run
  • Trong lần đầu tiên thực hiện lệnh sudo thì bạn sẽ nhập mật khẩu của user:

Nhập pass khi dùng sudo lần đầu tiên

Ví dụ: Xem thư mục của user /root:

Hiển thị thành phần trong thư mục của user /root vốn dĩ chỉ được thực hiện ở user root:

sudo ls -la /root

Xem thành phần thư mục trong user root

Khi user của bạn được thêm vào nhóm wheel thì lệnh của bạn được thực thi dưới quyền root.

Trên đây là cách cấu hình cho một user sử dụng tất cả các lệnh tương ứng với user root. Trong một số tường hợp thì quản trị viên chỉ cho user dùng lệnh sudo để thực hiện một vài lệnh thì chúng ta có cách cấu hình trong file cấu hình visudo.

Muốn cho user dùng lệnh sudo thực hiện 1 lệnh nào đó ta chỉ cần cấu hình vào file visudo.

Thêm quyền poweroff cho user:

Thêm quyền poweroff cho user2 dùng sudo để tắt máy trong file visudo:

Cấu hình cho user quyền tắt máy trong file visudo

Cấu hình cho user dùng lệnh sudo:

Cấu hình cho user dùng lệnh sudo để thực hiện 1 vài lệnh hoặc toàn bộ lệnh tương ứng với user root:

Cho phép user1 được thực thi nhiều lệnh với quyền root

user1 ALL=(root) /sbin/shutdown, /bin/kill, /etc/init.d/httpd.

Cho phép user1 được tắt máy mà không cần phải xác nhận bằng mật khẩu

user1 localhost= NOPASSWD: /sbin/shutdown.

Cho phép user1 được thực hiện bất kỳ lệnh nào trong /usr/bin ở máy linux01.

user1 linux01 = /usr/bin/*

3. Ví dụ trường hợp dùng lệnh “sudo” thực tế

Dùng sudo để xoá hoặc thêm một user hoặc một nhóm

sudo useradd username

sudo userdel username

sudo groupadd anewgrou

sudo groupdel anewgroup

Dùng sudo chạy các lệnh với tư cách người dùng khác - không chỉ người dùng root

Hầu hết mọi người sử dụng sudo để chạy các lệnh dưới dạng root, nó cũng cho phép bạn chạy các lệnh như những người dùng khác. Chỉ cần sử dụng tùy chọn -u với lệnh sudo và chỉ định tên người dùng.

sudo -u username whoami

Dùng lệnh sudo để update các bản cập nhật mới:

sudo yum update

Nếu không có sử dụng sudo khi user khác được cấu hình toàn bộ lệnh của user root sẽ không cập nhật được. Ví dụ vế vấn đề này:

Dùng sudo để cập nhật hệ thống từ user khác root

Dùng sudo chuyển sang user root:

sudo -i -u root

Khi dùng sudo để chuyển từ user hiện tai vào user root thì không cần dùng mật khẩu của user root. Nhờ thế tài khoản root sẽ an toàn hơn.

Sửa tệp /etc/sudoers bị hỏng:

Tệp /etc/sudoers có thể giữ cho sudo không hoạt động và thực sự gây rối cho bạn. Vì thế, có một số cách xung quanh điều này mà không liên quan đến nhiều công việc, và lệnh visudo cung cấp một số chi tiết về các vấn đề cần phải được cố định.

Vấn đề:

Vấn đề của việc sữa tệp hổng /etc/sudoer

Cách fix:

pkxec visudo

Ngoài ra, bạn cũng có thể thực hiện trình chỉnh sửa file theo nhu cầu cần thiết của bạn:

sudo vim /file