Khai Dân Trí
  • Home
  • Sức khỏe
    • All
    • Các bệnh

    Lipomas ở vú: Điều bạn cần biết

    Đau đầu do Vaping: Những điều bạn cần biết

    Hiểu biết về loãng xương thứ phát

    Nâng mũi: Mọi thứ bạn cần biết

    • Các bệnh
  • Công nghệ
    • Điện thoại & Máy tính
  • Bách khoa toàn thư
No Result
View All Result
  • Home
  • Sức khỏe
    • All
    • Các bệnh

    Lipomas ở vú: Điều bạn cần biết

    Đau đầu do Vaping: Những điều bạn cần biết

    Hiểu biết về loãng xương thứ phát

    Nâng mũi: Mọi thứ bạn cần biết

    • Các bệnh
  • Công nghệ
    • Điện thoại & Máy tính
  • Bách khoa toàn thư
No Result
View All Result
Khai Dân Trí
No Result
View All Result
Home Công nghệ Điện thoại & Máy tính

Cách kiểm soát quyền truy cập sudo trên Linux

by Trọng Hiếu
24/03/2021
in Điện thoại & Máy tính
0

Fatmawati Achmad Zaenuri / Shutterstock

Các sudo lệnh cho phép bạn chạy các lệnh trên Linux như thể bạn là người khác, chẳng hạn như root. sudo cũng cho phép bạn kiểm soát ai có thể truy cập root's khả năng, với mức độ chi tiết. Cung cấp cho người dùng toàn quyền truy cập hoặc cho phép họ sử dụng một tập hợp con lệnh nhỏ. Chúng tôi chỉ cho bạn cách làm.

quyền sudo và quyền gốc

Tất cả chúng ta đều đã nghe nói (sự đơn giản hóa quá mức) rằng mọi thứ trong Linux đều là một tệp. Trên thực tế, hầu như mọi thứ trong hệ điều hành từ quy trình, tệp, thư mục, ổ cắm và đường ống đều giao tiếp với hạt nhân thông qua bộ mô tả tệp. Vì vậy, mặc dù mọi thứ không phải một tệp, hầu hết các đối tượng hệ điều hành được xử lý như thể họ đã. Khi có thể, thiết kế của các hệ điều hành giống như Linux và Unix tuân theo nguyên tắc này.

Khái niệm “mọi thứ là một tệp” đã trở nên sâu rộng trong Linux. Khi đó, thật dễ dàng nhận thấy, quyền đối với tệp trong Linux đã trở thành một trong những yếu tố chính của đặc quyền và quyền người dùng. Nếu bạn sở hữu một tệp hoặc thư mục (một loại tệp đặc biệt), bạn có thể làm những gì bạn thích với nó, bao gồm chỉnh sửa, đổi tên, di chuyển và xóa nó. Bạn cũng có thể đặt các quyền trên tệp để người dùng hoặc nhóm người dùng khác có thể đọc, sửa đổi hoặc thực thi tệp. Mọi người đều chịu sự điều chỉnh của các quyền này.

Tất cả mọi người, ngoại trừ superuser, được gọi là root. Các root tài khoản là một tài khoản đặc quyền. Nó không bị ràng buộc bởi các quyền đối với bất kỳ đối tượng nào trong hệ điều hành. Người dùng root có thể làm bất cứ điều gì với bất cứ điều gì và, khá nhiều, bất cứ lúc nào.

Tất nhiên, bất kỳ ai có quyền truy cập vào root's mật khẩu có thể làm tương tự. Họ có thể tàn phá một cách ác ý hoặc vô tình. Trên thực tế root người dùng cũng có thể tàn phá bằng cách mắc lỗi. Không ai là không thể sai lầm. Đó là thứ nguy hiểm.

Đây là lý do tại sao nó hiện được coi là phương pháp hay nhất để không phải vào root ở tất cả. Đăng nhập bằng tài khoản người dùng thông thường và sử dụng sudo để nâng cao các đặc quyền của bạn trong thời gian ngắn mà bạn cần chúng. Thường thì đó chỉ là đưa ra một lệnh duy nhất.

LIÊN QUAN: “Mọi thứ là một tệp” có nghĩa là gì trong Linux?

Danh sách sudoers

sudo đã được cài đặt trên các máy tính Ubuntu 18.04.3, Manjaro 18.1.0 và Fedora 31 được sử dụng để nghiên cứu bài viết này. Đây không phải là một bất ngờ. sudo đã xuất hiện từ đầu những năm 1980 và đã trở thành phương tiện tiêu chuẩn để vận hành superuser cho hầu hết các bản phân phối.

Khi bạn cài đặt bản phân phối hiện đại, người dùng bạn tạo trong quá trình cài đặt sẽ được thêm vào danh sách người dùng được gọi là sudoers. Đây là những người dùng có thể sử dụng sudo chỉ huy. Bởi vì bạn có sudo quyền hạn, bạn có thể sử dụng chúng để thêm những người dùng khác vào danh sách các sudoers.

Tất nhiên, việc cung cấp trạng thái siêu người dùng đầy đủ hoàn toàn không cần thiết, hoặc cho bất kỳ ai chỉ có nhu cầu một phần hoặc cụ thể. Danh sách sudoers cho phép bạn chỉ định lệnh nào mà những người dùng khác nhau được phép sử dụng sudo với. Bằng cách đó, bạn không đưa cho họ chìa khóa vương quốc, nhưng họ vẫn có thể hoàn thành những việc mình cần làm.

Chạy lệnh với tư cách người dùng khác

Ban đầu, nó được gọi là “superuser do”, bởi vì bạn có thể làm mọi thứ với tư cách là superuser. Phạm vi của nó hiện đã được mở rộng và bạn có thể sử dụng sudo để thực hiện một lệnh như thể bạn là bất kỳ người dùng nào. Nó đã được đổi tên để phản ánh chức năng mới đó. Bây giờ nó được gọi là “người dùng thay thế làm.”

Để sử dụng sudo để chạy một lệnh với tư cách là người dùng khác, chúng ta cần sử dụng -u (người dùng) tùy chọn. Ở đây, chúng tôi sẽ chạy lệnh whoami với tư cách là người dùng mary. Nếu bạn sử dụng sudo lệnh mà không có -u tùy chọn, bạn sẽ chạy lệnh dưới dạng root.

Và tất nhiên, vì bạn đang sử dụng sudo bạn sẽ được nhắc nhập mật khẩu của mình.

sudo -u mary whoami

Phản hồi từ whoami cho chúng tôi biết rằng tài khoản người dùng đang chạy lệnh là mary.

Bạn có thể dùng sudo lệnh đăng nhập với tư cách người dùng khác mà không cần biết mật khẩu của họ. Bạn sẽ được nhắc nhập mật khẩu của riêng mình. Chúng ta cần sử dụng -i (đăng nhập) tùy chọn.

sudo -i -u mary
pwd
whoami
ls -hl
exit

Bạn đang đăng nhập mary. Các tệp “.bashrc”, “.bash_aliases” và “.profile” cho tài khoản người dùng mary được xử lý chính xác như thể chủ sở hữu của tài khoản người dùng mary đã đăng nhập.

  • Lời nhắc lệnh thay đổi để phản ánh đây là phiên dành cho tài khoản người dùng mary.
  • Các pwdlệnh đại diện mà bạn hiện đang ở mary's thư mục chính.
  • whoami cho chúng tôi biết bạn đang sử dụng tài khoản người dùng mary.
  • Các tệp trong thư mục thuộc về mary tài khoản người dùng.
  • Các exit lệnh đưa bạn trở lại phiên tài khoản người dùng bình thường của bạn.

Chỉnh sửa tệp sudoers

Để thêm người dùng vào danh sách những người có thể sử dụng sudo , bạn cần chỉnh sửa sudoers tập tin. Điều tối quan trọng là bạn chỉ nên làm như vậy bằng cách sử dụng visudo chỉ huy. Các visudo lệnh ngăn nhiều người cố gắng chỉnh sửa tệp sudoers cùng một lúc. Nó cũng thực hiện kiểm tra cú pháp và phân tích cú pháp nội dung tệp khi bạn lưu chúng.

Nếu các chỉnh sửa của bạn không vượt qua các bài kiểm tra, tệp sẽ không được lưu một cách mù quáng. Bạn nhận được các tùy chọn. Bạn có thể hủy và bỏ các thay đổi, quay lại và chỉnh sửa lại các thay đổi hoặc buộc lưu các chỉnh sửa không chính xác. Lựa chọn cuối cùng là một ý tưởng tồi. Đừng bị cám dỗ để làm điều đó. Bạn có thể thấy mình trong một tình huống mà tất cả mọi người vô tình bị khóa không sử dụng sudo.

Mặc dù bạn bắt đầu quá trình chỉnh sửa bằng cách sử dụng visudo chỉ huy, visudo không phải là một biên tập viên. Nó gọi một trong những người chỉnh sửa hiện có của bạn để thực hiện các chỉnh sửa tệp. Trên Manjaro và Ubuntu, visudo lệnh khởi chạy trình soạn thảo đơn giản nano. Trên Fedora, visudo ra mắt có khả năng hơn — nhưng kém trực quan hơn—vim.

LIÊN QUAN: Cách thoát Vi hoặc Vim Editor

Nếu bạn muốn sử dụng nano trên Fedora, bạn có thể làm như vậy một cách dễ dàng. Đầu tiên, hãy cài đặt nano:

sudo dnf cài đặt nano

Và sau đó visudo phải được gọi bằng lệnh này:

sudo EDITOR=nano visudo

Đó có vẻ như là một ứng cử viên tốt cho một bí danh. Các nano trình soạn thảo được mở bằng tệp sudoers được tải trong đó.

trình chỉnh sửa nano với tệp sudoers được tải trong đó

Thêm người dùng vào nhóm sudo

Sử dụng visudo để mở tệp sudoers. Sử dụng lệnh này hoặc lệnh được mô tả ở trên để chỉ định trình chỉnh sửa mà bạn chọn:

sudo visudo

Cuộn qua tệp sudoers cho đến khi bạn thấy định nghĩa của %sudo mục nhập.

Tệp sudoers với dòng% sudo được đánh dấu

Dấu phần trăm cho biết đây là định nghĩa nhóm chứ không phải định nghĩa người dùng. Trên một số bản phân phối, %sudo dòng có một băm # ở đầu dòng. Điều này làm cho dòng trở thành một bình luận. Nếu đúng như vậy, hãy xóa băm và lưu tệp.

Các %sudo dòng bị phá vỡ như thế này:

  • % sudo: Tên của nhóm.
  • TẤT CẢ =: Quy tắc này áp dụng cho tất cả các máy chủ trên mạng này.
  • (TẤT CẢ): các thành viên của nhóm này có thể chạy lệnh với tư cách là tất cả người dùng và tất cả các nhóm.
  • Tất cả: thành viên của nhóm này có thể chạy tất cả các lệnh.

Để đổi tên một chút, các thành viên của nhóm này có thể chạy bất kỳ lệnh nào, với tư cách là bất kỳ người dùng hoặc bất kỳ nhóm nào, trên máy tính này hoặc trên bất kỳ máy chủ nào khác trong mạng này. Vì vậy, một cách đơn giản để cấp cho ai đó đặc quyền root và khả năng sử dụng sudo, là thêm chúng vào sudo nhóm.

Chúng tôi có hai người dùng, Tom và Mary, có tài khoản người dùng tom và mary tương ứng. Chúng tôi sẽ thêm tài khoản người dùng tom đến sudo nhóm với usermod chỉ huy. Các -G (nhóm) tùy chọn chỉ định nhóm mà chúng tôi sẽ thêm tom tài khoản cho. Các -a (nối thêm) tùy chọn thêm vào nhóm này vào danh sách các nhóm tài khoản người dùng tom đã ở trong. Nếu không có tùy chọn này, tài khoản người dùng tom sẽ được đưa vào nhóm mới nhưng bị xóa khỏi bất kỳ nhóm nào khác.

sudo usermod -a -G sudo tom

Hãy kiểm tra Mary ở trong nhóm nào:

groups

Tài khoản người dùng mary chỉ trong mary nhóm.

Hãy cùng Tom kiểm tra:

groups

Các tom tài khoản người dùng — và do đó, Tom — nằm trong nhóm tom và sudo.

Hãy cố gắng để Mary làm điều gì đó yêu cầu sudo các đặc quyền.

sudo less /etc/shadow

Mary không thể nhìn vào bên trong tệp bị hạn chế “/ etc / shadow”. Cô ấy nhận được một lời khen nhẹ vì đã cố gắng sử dụng sudo mà không có sự cho phép. Hãy xem cách Tom đánh giá:

sudo less /etc/shadow

Ngay sau khi Tom nhập mật khẩu của mình, anh ta sẽ được hiển thị tệp / etc / shadow.

Chỉ bằng cách thêm anh ta vào sudo nhóm, anh ấy đã được nâng lên hàng ngũ ưu tú của những người có thể sử dụng sudo. Hoàn toàn không bị giới hạn.

Cung cấp cho người dùng các quyền sudo bị hạn chế

Tom đã được cho đầy đủ sudo các quyền. Anh ấy có thể làm bất cứ điều gì root—Hoặc bất kỳ ai khác trong sudo nhóm — có thể làm. Điều đó có thể mang lại cho anh ta nhiều quyền lực hơn là bạn vui lòng giao cho. Đôi khi có một yêu cầu đối với người dùng để thực hiện một chức năng yêu cầu root đặc quyền, nhưng không có trường hợp chính đáng để họ có đầy đủ sudo truy cập. Bạn có thể đạt được sự cân bằng đó bằng cách thêm chúng vào tệp sudoers và liệt kê các lệnh mà chúng có thể sử dụng.

Hãy gặp Harry, chủ sở hữu của tài khoản người dùng harry. Anh ấy không ở trong sudo nhóm, và anh ấy không có sudo các đặc quyền.

groups

Việc có thể cài đặt phần mềm rất hữu ích cho Harry, nhưng chúng tôi không muốn cậu ấy có đầy đủ sudo các quyền. OK, không vấn đề gì. hãy nhóm lên visudo:

sudo visudo

Cuộn xuống qua tệp cho đến khi bạn vượt qua các định nghĩa nhóm. Chúng tôi sẽ thêm một dòng cho Harry. Bởi vì đây là một người sử dụng định nghĩa chứ không phải định nghĩa nhóm, chúng ta không cần bắt đầu dòng bằng dấu phần trăm.

mục nhập tệp sudoer cho harry

Mục nhập cho tài khoản người dùng harry là:

harry    ALL=/usr/bin/apt-get

Lưu ý rằng có một tab giữa “harry” và “ALL =.”

Đây là tài khoản người dùng harry có thể sử dụng các lệnh được liệt kê trên tất cả các máy chủ được kết nối với mạng này. Có một lệnh được liệt kê, đó là “/ usr / bin / apt-get.” Chúng ta có thể cấp cho Harry quyền truy cập vào nhiều lệnh bằng cách thêm chúng vào danh sách lệnh, phân tách bằng dấu phẩy.

Thêm dòng vào tệp sudoers và lưu tệp. Nếu bạn muốn kiểm tra lại xem dòng có đúng cú pháp hay không, chúng tôi có thể yêu cầu visudo để quét tệp và kiểm tra cú pháp cho chúng tôi, bằng cách sử dụng -c (chỉ kiểm tra) tùy chọn:

sudo visudo -c

Việc kiểm tra diễn ra và visudo báo cáo rằng tất cả đều tốt. Harry bây giờ có thể sử dụng apt-get để cài đặt phần mềm nhưng sẽ bị từ chối nếu anh ta cố gắng sử dụng bất kỳ lệnh nào khác yêu cầu sudo.

sudo apt-get install finger

Thích hợp sudo quyền đã được cấp cho Harry và anh ấy có thể cài đặt phần mềm.

Điều gì sẽ xảy ra nếu Harry cố gắng sử dụng một lệnh khác yêu cầu sudo?

sudo shutdown now

Harry bị ngăn không cho chạy lệnh. Chúng tôi đã cấp cho anh ấy quyền truy cập cụ thể, hạn chế, thành công. Anh ta có thể sử dụng lệnh được chỉ định và không có gì khác.

Sử dụng bí danh người dùng sudoers

Nếu chúng tôi muốn cấp cho Mary những đặc quyền tương tự, chúng tôi có thể thêm một dòng trong tệp sudoers cho tài khoản người dùng mary theo cách giống hệt như chúng ta đã làm với Harry. Một cách khác, gọn gàng hơn, để đạt được điều tương tự là sử dụng User_Alias.

trong tệp sudoers, một User_Alias chứa danh sách tên tài khoản người dùng. Tên của User_Alias sau đó có thể được sử dụng trong một định nghĩa để đại diện cho tất cả các tài khoản người dùng đó. Nếu bạn muốn thay đổi các đặc quyền cho các tài khoản người dùng đó, bạn chỉ có một dòng để chỉnh sửa.

Hãy tạo một User_Alias và sử dụng nó trong tệp sudoers của chúng tôi.

sudo visudo

Scroll down in the file until you come to the User_Alias specification line.

Thêm User_Alias bằng cách gõ:

User_Alias INSTALLERS = harry, mary

Mỗi phần tử được phân tách bằng dấu cách, không phải tab. Logic được chia thành:

  • User_Alias: Điều này nói với visudo đây sẽ là một User_Alias.
  • NGƯỜI CÀI ĐẶT: Đây là tên tùy ý cho bí danh này.
  • = harry, mary: Danh sách người dùng để đưa vào bí danh này.

Bây giờ chúng tôi sẽ chỉnh sửa dòng mà chúng tôi đã thêm trước đó cho tài khoản người dùng harry:

harry    ALL=/usr/bin/apt-get

Thay đổi nó để nó đọc:

INSTALLERS    ALL=/usr/bin/apt-get

Điều này nói rằng tất cả các tài khoản người dùng có trong định nghĩa của “NGƯỜI CÀI ĐẶT” User_Alias có thể chạy apt-get chỉ huy. Chúng tôi có thể kiểm tra điều này với Mary, người bây giờ có thể cài đặt phần mềm.

sudo apt-get install colordiff

Mary có thể cài đặt phần mềm vì cô ấy nằm trong nhóm “NGƯỜI CÀI ĐẶT” User_Alias, và điều đó User_Alias đã được trao những quyền đó.

Ba thủ thuật sudo nhanh chóng

Khi bạn quên thêm sudo đến một lệnh, gõ

sudo !!

Và lệnh cuối cùng sẽ được lặp lại với sudo được thêm vào đầu dòng.

Khi bạn đã sử dụng sudo và được xác thực bằng mật khẩu của bạn, bạn sẽ không phải sử dụng mật khẩu của mình với sudo lệnh trong 15 phút. Nếu bạn muốn quên xác thực của mình ngay lập tức, hãy sử dụng:

sudo -k

Bao giờ tự hỏi nơi bạn có thể nhìn thấy thất bại sudo cố gắng lệnh? Họ đi tới tệp “/var/log/auth.log”. Bạn có thể xem nó với:

less /var/log/auth.log

Chúng ta có thể thấy mục nhập cho tài khoản người dùng mary đã đăng nhập tại TTY pts / 1 khi cô ấy cố gắng chạy shutdown lệnh với tư cách người dùng “root”.

Với sức mạnh tuyệt vời…

… Có khả năng ủy quyền các phần của nó cho người khác. Bây giờ bạn biết cách trao quyền cho người dùng khác một cách có chọn lọc.

Tags: CáchcấpkiểmLinuxQuyềnsoátSudotrêntruy
Trọng Hiếu

Trọng Hiếu

Xem thêm

Điện thoại & Máy tính

Cách chia sẻ vị trí hiện tại của bạn trên WhatsApp cho Android

28/05/2022
Điện thoại & Máy tính

Cách (và tại sao) sử dụng Samsung Edge Panels trên điện thoại Galaxy

28/05/2022
Điện thoại & Máy tính

Cách tắt Điều khiển bằng giọng nói trên iPhone

27/05/2022
Điện thoại & Máy tính

Bản xem trước dành cho nhà phát triển của Android 13 tăng cường quyền riêng tư cho ảnh của bạn

27/05/2022
Điện thoại & Máy tính

Ứng dụng Google Play Hiện cho thấy ứng dụng ‘Khả năng tương thích cho các thiết bị đang hoạt động của bạn’

27/05/2022
Điện thoại & Máy tính

Cách kiểm tra yêu cầu tin nhắn trên Messenger

27/05/2022
Điện thoại & Máy tính

Apple hứa sẽ tấn công tội phạm bằng AirTags

27/05/2022
Điện thoại & Máy tính

Google Drive thêm các phím tắt Cắt, Sao chép & Dán

27/05/2022
Điện thoại & Máy tính

Samsung hiện đã tiết lộ năng lực về ống kính 200 Megapixel của mình

27/05/2022

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Bài viết mới

Lipomas ở vú: Điều bạn cần biết

28/05/2022

Cách chia sẻ vị trí hiện tại của bạn trên WhatsApp cho Android

28/05/2022

Đau đầu do Vaping: Những điều bạn cần biết

28/05/2022

Hiểu biết về loãng xương thứ phát

28/05/2022
Khai Dân Trí

Website phổ biến kiến thức, tin tức và bình luận, nhằm nâng cao dân trí.

No Result
View All Result
  • Home
  • Sức khỏe
    • Các bệnh
  • Công nghệ
    • Điện thoại & Máy tính
  • Bách khoa toàn thư

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.