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

    Tâm lý trị liệu là gì và nó hoạt động như thế nào?

    Tất cả về liều lượng của Femara

    Tổng quan về co giật gelastic

    Những điều cần biết về căng thẳng và lạc nội mạc tử cung

    • 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

    Tâm lý trị liệu là gì và nó hoạt động như thế nào?

    Tất cả về liều lượng của Femara

    Tổng quan về co giật gelastic

    Những điều cần biết về căng thẳng và lạc nội mạc tử cung

    • 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 sử dụng Restricted Shell để hạn chế những gì người dùng Linux có thể làm

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

Fatmawati Achmad Zaenuri / Shutterstock

Một trình bao hạn chế giới hạn những gì tài khoản người dùng có thể làm trên Linux. Người dùng bị hạn chế không thể thay đổi thư mục của họ và bạn kiểm soát những lệnh nào họ có quyền truy cập. Đây là cách thiết lập một trình bao bị hạn chế trên Linux.

Vỏ hạn chế

Một trình bao hạn chế không phải là một trình bao khác. Đó là một chế độ khác của một trình bao tiêu chuẩn. Bash, Korn, Fish và các shell khác đều có thể được khởi động ở chế độ shell bị hạn chế. Chúng tôi sẽ sử dụng Bash trong bài viết này, nhưng các nguyên tắc tương tự cũng áp dụng cho các trình bao khác.

Bởi vì các trình bao bị hạn chế chỉ là một cách khác để sử dụng trình bao tiêu chuẩn của bạn, chúng rất dễ thiết lập. Không có gì để cài đặt và chúng có sẵn ở bất kỳ đâu Linux.

Các trình bao bị hạn chế cũng có thể được áp dụng cho các tập lệnh. Điều đó đảm bảo rằng bất kỳ thiệt hại nào mà họ có thể gây ra nếu viết sai chỉ giới hạn trong phạm vi giới hạn của thế giới hạn chế của họ và họ không có quyền truy cập vào toàn bộ máy tính của bạn.

Tuy nhiên, hãy lưu ý rằng các vỏ hạn chế không hoàn toàn chống thoát. Ai đó có đủ kiến ​​thức có thể thoát khỏi lớp vỏ hạn chế. Chúng tuyệt vời để đặt ranh giới an toàn cho người dùng bình thường, nhưng không dựa vào các trình bao bị hạn chế cho bất kỳ bảo mật trong thế giới thực nào trên hệ thống sản xuất.

LIÊN QUAN: Sự khác biệt giữa Bash, Zsh và các Shell Linux khác là gì?

Bash bị hạn chế

Khi bạn chạy Bash dưới dạng trình bao bị hạn chế, người dùng có một số khả năng bị xóa khỏi chúng. Cụ thể, người dùng không thể:

  • Sử dụng cd để thay đổi thư mục làm việc.
  • Thay đổi các giá trị của $PATH , $SHELL , $BASH_ENV , hoặc là $ENV các biến môi trường (nhưng chúng có thể đọc các giá trị hiện tại).
  • Đọc hoặc thay đổi $SHELLOPTS tùy chọn môi trường vỏ.
  • Chuyển hướng đầu ra của một lệnh.
  • Gọi các lệnh yêu cầu một đường dẫn để xác định vị trí của chúng. Đó là, bạn không thể đưa ra một lệnh có một hoặc nhiều dấu gạch chéo “/” trong đó.
  • Mời exec để thay thế một quy trình khác cho shell.
  • Sử dụng bất kỳ tính năng bị hạn chế nào trong một tập lệnh.

Bạn có thể gọi một trình bao Bash bị hạn chế bằng cách sử dụng -r (bị hạn chế) tùy chọn. Việc cố gắng thực hiện một tác vụ đơn giản như thay đổi thư mục làm việc bị cấm. Một tin nhắn ngắn gọn cho bạn biết rằng cd bị hạn chế.

bash -r
cd Documents

Bash shell cũng có thể phát hiện khi nào nó được gọi bằng cách sử dụng “rbash” thay vì “bash”. Điều này khiến nó cũng bắt đầu như một trình bao bị hạn chế. Điều này cung cấp một cách thuận tiện để đặt trình bao mặc định cho một người dùng cụ thể mà chúng tôi sẽ sớm sử dụng.

Nếu chúng ta sử dụng whereis lệnh trên Ubuntu để tìm kiếm rbash , chúng ta sẽ thấy rằng tệp thực thi nằm trong thư mục “usr / bin”. Trang người đàn ông nằm trong thư mục “/ usr / share / man / man1”.

Sử dụng ls ra lệnh với -l (dài) tùy chọn tiết lộ rằng rbash thực sự là một liên kết tượng trưng đến bash .

whereis rbash
ls -l /usr/bin/rbash

Trên Manjaro và Fedora, rbash liên kết tượng trưng phải được tạo. Điều này hoạt động trên cả hai bản phân phối:

whereis rbash
sudo ln -s /bin/bash /bin/rbash
whereis rbash

Lần thứ hai chúng tôi sử dụng whereis lệnh, nó tìm thấy rbash trong thư mục “/ usr / bin”.

Hạn chế người dùng

Hãy tạo một tài khoản người dùng mới có tên là “Minnie”. Chúng tôi sẽ đặt trình bao của chúng thành trình bao bị hạn chế bằng cách sử dụng -s (shell) tùy chọn của useradd chỉ huy. Chúng tôi cũng sẽ đặt mật khẩu của tài khoản bằng cách sử dụngpasswd và chúng tôi sẽ tạo một thư mục chính cho chúng.

Các -p (cha mẹ) gắn cờ trong mkdir lệnh nói với mkdir để tạo thư mục đích và bất kỳ thư mục mẹ nào mà nó cũng cần tạo. Vì vậy, bằng cách tạo thư mục “/ home / minnie / bin”, chúng tôi tạo thư mục “/ home / minnie” cùng một lúc.

sudo useradd minnie -s /bin/rbash
sudo passwd minnie
sudo mkdir -p /home/minnie/bin

Khi minnie đăng nhập, cô ấy sẽ chạy trong một trình bao bị hạn chế.

cd

Cô ấy không thể gọi các lệnh cần bao gồm một dấu gạch chéo “/“:

/usr/bin/ping

Tuy nhiên, cô ấy vẫn có thể thực hiện các lệnh được tìm thấy trong đường dẫn.

ping

Đó không phải là hành vi mà bạn có thể mong đợi, và nó chắc chắn không phải là những gì chúng tôi muốn. Để thắt chặt các hạn chế hơn nữa, chúng ta cần thay đổi đường dẫn mà trình bao của minnie sẽ sử dụng để tìm kiếm các lệnh.

Thắt chặt các hạn chế

Khi chúng tôi tạo thư mục chính của minnie “/ home / minnie”, chúng tôi cũng tạo một thư mục “/ home / minnie / bin”. Đây là nơi mà thư mục đó phát huy tác dụng.

Chúng tôi sẽ chỉnh sửa tệp “.bash_profile” của minnie và đặt đường dẫn của cô ấy chỉ trỏ đến thư mục đó. Chúng tôi cũng sẽ hạn chế tệp “.bash_profile” của minnie để chỉ người chủ mới có thể chỉnh sửa nó. Điều đó có nghĩa là không người dùng nào khác có thể chỉnh sửa tệp đó và thay đổi đường dẫn của cô ấy.

sudo gedit /home/minnie/.bash_profile

Chỉnh sửa “PATH =” hiện có hoặc thêm dòng sau:

PATH=$HOME/bin

Lưu các tập tin. Chúng tôi sẽ thay đổi chủ sở hữu của tệp thành root bằng cách sử dụng chown lệnh và thay đổi quyền đối với tệp bằng cách sử dụng chmod chỉ huy. Chỉ người dùng root mới có thể chỉnh sửa tệp.

sudo chown root:root /home/minnie/.bash_profile
sudo chmod 755 /home/minnie/.bash_profile
ls -l /home/minnie/.bash_profile

Lần tiếp theo khi người dùng minnie đăng nhập, đường dẫn của cô ấy sẽ trỏ đến một thư mục duy nhất.

Người dùng bị hạn chế minnie của chúng tôi chỉ có thể sử dụng các lệnh tích hợp sẵn của Bash như echo, alias, và logout. Cô ấy thậm chí không thể sử dụng ls!

ls

Chúng ta sẽ cần phải nới lỏng vòng vây của chúng ta một chút nếu chúng ta muốn chúng có thể làm bất cứ điều gì hữu ích. Chúng tôi sẽ tạo một số liên kết tượng trưng từ thư mục “bin” của minnie đến các lệnh mà chúng tôi muốn minnie có thể sử dụng.

sudo ln -s /bin/ls /home/minnie/bin
sudo ln -s /bin/top /home/minnie/bin
sudo ln -s /bin/uptime /home/minnie/bin
sudo ln -s /bin/pinky /home/minnie/bin

Khi minnie đăng nhập tiếp theo, cô ấy sẽ thấy rằng cô ấy có thể sử dụng các lệnh tích hợp sẵn của Bash, cộng với các lệnh đã được liên kết với.

ls
pinky dave
uptime

Hạn chế người dùng hiện tại

Chúng tôi đã tạo minnie với tư cách là một người dùng mới. Để thay đổi giao diện người dùng hiện tại, chúng ta có thể sử dụng -s (shell) tùy chọn của usermod chỉ huy.

sudo usermod -s /bin/rbash mary

Bạn có thể dùng less trên tệp “/ etc / passwd” để nhanh chóng xem trình bao nào được đặt làm trình bao mặc định của người dùng.

less /etc/passwd

Chúng ta có thể thấy rằng người dùng mary sẽ sử dụng shell bị hạn chế khi cô ấy đăng nhập lần sau.

Hãy nhớ áp dụng các thay đổi khác để hạn chế $PATH biến môi trường và để đặt các lệnh bạn muốn người dùng mary có thể thực thi.

Tập lệnh Hạn chế

Một người dùng thông thường, không bị giới hạn có thể khởi chạy các tập lệnh được thực thi trong một trình bao bị hạn chế. Sao chép các dòng sau và dán chúng vào trình chỉnh sửa. Lưu tệp dưới dạng “limited.sh” và đóng trình chỉnh sửa.

#!/bin/bash

# script starts in normal Bash shell
echo "## In UNrestricted mode! ##"

echo
echo "Current directory: `pwd`"
echo "Changing directory"
cd /usr/share
echo "Now in directory: `pwd`"
echo "Changing to home directory"
cd ~
echo "Now in directory: `pwd`"

# Setting restricted mode
set -r

echo
echo "## In restricted mode! ##"

echo
echo "Current directory: `pwd`"
echo "Changing directory to /home/"
cd /home
echo "Still in directory: `pwd`"

echo
echo "Trying to start another shell"
/bin/bash

echo
echo "Trying to redirect command output"
ls -l $HOME > my_files.txt
cat my_files.txt
echo

exit 0

Chúng ta cần sử dụng chmod ra lệnh với +x cờ (thực thi) để làm cho tập lệnh có thể thực thi được.

chmod +x restricted.sh

Phần đầu tiên của tập lệnh chạy trong một trình bao bình thường.

./restricted.sh

Phần thứ hai của tập lệnh — bit sau dòng “set -r” — chạy trong một trình bao bị hạn chế.

Không có hành động đã cố gắng nào thành công trong phần bị hạn chế của tập lệnh.

Toàn bộ tập lệnh có thể được thực hiện để chạy trong một trình bao bị hạn chế bằng cách thêm -r đến dòng đầu tiên:

!#/bin/bash -r

Nhớ Houdini

Vỏ hạn chế rất hữu ích, nhưng không hoàn toàn sai lầm. Một người dùng đủ kỹ năng có thể thoát khỏi chúng. Nhưng khi được sử dụng một cách thận trọng, chúng là một cách hữu ích để thiết lập một tập hợp các giới hạn cho một tài khoản cụ thể.

Tags: CáchChếcódungđểgìHạnLàmLinuxngườiNhữngRestrictedShellsựthế
Trọng Hiếu

Trọng Hiếu

Xem thêm

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

Tại sao Windows 11 lại tốt hơn cho PC chơi game hơn Windows 10

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

Hệ thống tệp liên hành tinh (IPFS) là gì và bạn sử dụng nó như thế nào?

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

YouTube TV sẽ sớm có chế độ Ảnh trong Ảnh trên iPhone

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

Cách hợp nhất hai cột trong Microsoft Excel

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

Google sẽ sớm phát hiện ra tiếng ngáy và ho của người dùng Android

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

Cách thay đổi ứng dụng và ngôn ngữ giọng nói trong Google Maps

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

“Chất liệu bạn” của Android 12 sắp xuất hiện trên 5 chiếc điện thoại này

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

Cách ngăn người dùng thay đổi cài đặt proxy trong Windows 11

28/05/2022
Đ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

Leave a Reply Cancel reply

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

Bài viết mới

Tâm lý trị liệu là gì và nó hoạt động như thế nào?

28/05/2022

Tại sao Windows 11 lại tốt hơn cho PC chơi game hơn Windows 10

28/05/2022

Tất cả về liều lượng của Femara

28/05/2022

Tổng quan về co giật gelastic

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.