Android

Lệnh Sudo trong linux

Linux Security - Configuring SUDO Access

Linux Security - Configuring SUDO Access

Mục lục:

Anonim

Lệnh sudo cho phép bạn chạy các chương trình như một người dùng khác, theo mặc định là người dùng root. Nếu bạn dành nhiều thời gian cho dòng lệnh, sudo là một trong những lệnh mà bạn sẽ sử dụng khá thường xuyên.

Sử dụng sudo thay vì đăng nhập bằng root sẽ an toàn hơn vì bạn có thể cấp các đặc quyền quản trị hạn chế cho người dùng cá nhân mà không cần họ biết mật khẩu gốc.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách sử dụng sudo .

Cài đặt Sudo (không tìm thấy lệnh sudo)

Gói sudo được cài đặt sẵn trên hầu hết các bản phân phối Linux.

Để kiểm tra xem gói sudo đã được cài đặt trên hệ thống của bạn chưa, hãy mở giao diện điều khiển của bạn, nhập sudo và nhấn Enter . Nếu bạn đã cài đặt sudo, hệ thống sẽ hiển thị một thông báo trợ giúp ngắn, nếu không bạn sẽ thấy một cái gì đó giống như sudo command not found .

Nếu sudo chưa được cài đặt, bạn có thể dễ dàng cài đặt nó bằng trình quản lý gói của bản phân phối.

Cài đặt Sudo trên Ubuntu và Debian

apt install sudo

Cài đặt Sudo trên CentOS và Fedora

yum install sudo

Thêm người dùng vào Sudoers

Theo mặc định trên hầu hết các bản phân phối Linux cấp quyền truy cập sudo cũng đơn giản như việc thêm người dùng vào nhóm sudo được xác định trong tệp sudoers . Thành viên của nhóm này sẽ có thể chạy bất kỳ lệnh nào với quyền root. Tên của nhóm có thể khác nhau từ phân phối đến phân phối.

Trên các bản phân phối dựa trên RedHat như CentOS và Fedora, tên của nhóm sudo là wheel . Để thêm người dùng vào nhóm chạy:

usermod -aG wheel username

Trên Debian, Ubuntu và các dẫn xuất của chúng, các thành viên của nhóm sudo được cấp quyền truy cập sudo:

usermod -aG sudo username

Tài khoản người dùng root trong Ubuntu bị tắt theo mặc định vì lý do bảo mật và người dùng được khuyến khích thực hiện tác vụ quản trị hệ thống bằng sudo. Người dùng ban đầu được tạo bởi trình cài đặt Ubuntu đã là thành viên của nhóm sudo, vì vậy nếu bạn đang chạy Ubuntu thì có khả năng người dùng mà bạn đã đăng nhập như đã được cấp đặc quyền sudo.

Ví dụ: để cho phép người dùng linuxize chỉ chạy mkdir là sudo, gõ:

sudo visudo

và nối dòng sau:

linuxize ALL=/bin/mkdir

Trên hầu hết các hệ thống, lệnh visudo mở tệp /etc/sudoers bằng trình soạn thảo văn bản vim. Nếu bạn không có kinh nghiệm với vim, hãy kiểm tra bài viết của chúng tôi về cách lưu tệp và thoát khỏi trình chỉnh sửa vim.

Bạn cũng có thể cho phép người dùng chạy các lệnh sudo mà không cần nhập mật khẩu:

linuxize ALL=(ALL) NOPASSWD: ALL

Cách sử dụng Sudo

Cú pháp của sudo như sau:

sudo OPTION.. COMMAND

Lệnh sudo có nhiều tùy chọn kiểm soát hành vi của nó nhưng thông thường sudo được sử dụng ở dạng cơ bản nhất, không có tùy chọn nào.

Để sử dụng sudo, chỉ cần thêm tiền tố vào lệnh với sudo :

sudo command

Trong đó command là lệnh mà bạn muốn sử dụng sudo.

Sudo sẽ đọc tệp /etc/sudoers và kiểm tra xem người dùng gọi có được cấp đánh giá sudo không. Lần đầu tiên bạn sử dụng sudo trong một phiên, bạn sẽ được nhắc nhập mật khẩu người dùng và lệnh sẽ được thực thi dưới dạng root.

Ví dụ: để liệt kê tất cả các tệp trong thư mục /root bạn sẽ sử dụng:

sudo ls /root

password for linuxize:….bashrc.cache.config.local.profile

Hết thời gian chờ mật khẩu

Theo mặc định, sudo sẽ yêu cầu bạn nhập lại mật khẩu sau năm phút không hoạt động. Bạn có thể thay đổi thời gian chờ mặc định bằng cách chỉnh sửa tệp sudoers . Mở tệp bằng visudo :

sudo visudo

Đặt thời gian chờ mặc định bằng cách thêm dòng bên dưới, trong đó 10 là thời gian chờ được chỉ định theo phút:

Defaults timestamp_timeout=10

Defaults:user_name timestamp_timeout=10

Chạy một lệnh như một người dùng khác ngoài Root

Có một nhận thức sai lầm rằng sudo chỉ được sử dụng để cung cấp quyền root cho người dùng thông thường. Trên thực tế, bạn có thể sử dụng sudo để chạy lệnh như bất kỳ người dùng nào.

Tùy chọn -u cho phép bạn chạy một lệnh như một người dùng được chỉ định.

Trong ví dụ sau, chúng tôi đang sử dụng sudo để chạy lệnh whoami với tư cách là một người dùng giàu Richard:

sudo -u richard whoami

Lệnh whoami sẽ in tên của người dùng đang chạy lệnh:

richard

Cách chuyển hướng với Sudo

sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permission denied

Điều này xảy ra bởi vì chuyển hướng > của đầu ra được thực hiện dưới người dùng mà bạn đã đăng nhập, không phải người dùng được chỉ định bởi sudo. Việc chuyển hướng xảy ra trước khi sudo được gọi.

Một giải pháp là gọi shell mới bằng root bằng cách sử dụng sudo sh -c :

sudo sh -c 'echo "test" > /root/file.txt'

Một tùy chọn khác là chuyển đầu ra dưới dạng người dùng thông thường sang lệnh tee như dưới đây:

echo "test" | sudo tee /root/file.txt

Phần kết luận

Bạn đã học cách sử dụng sudo và cách tạo người dùng mới với quyền sudo.

thiết bị đầu cuối sudo