Khóa Raspbian chỉ cho phép các tính năng hạn chế


7

Trong môi trường công cộng, máy tính có thể bị lạm dụng rất nhiều, dẫn đến lỗi hệ thống, vi rút, bảo mật bị xâm phạm, v.v ... Trong nhiều trường học, máy tính được thiết lập để chỉ cho phép sử dụng các tính năng cơ bản, gây ra lỗi nếu ai đó cố gắng làm một cái gì đó hơi giống như mở một trò chơi.

Tôi dự định đặt Raspberry Pi trong môi trường công cộng để cho phép mọi người có thể cảm nhận "Trải nghiệm Raspberry Pi" mà không cần sở hữu Raspberry Pi. Điều này đặt ra một vấn đề bảo mật lớn , có thể sử dụng Raspberry Pi mà không có giới hạn.

Có cách nào để tôi có thể khóa các tính năng nâng cao của Raspberry Pi để người dùng chơi với nó không thể làm hỏng nó sau khi sửa chữa không?


Bạn có thể làm rõ những gì bạn có nghĩa là "khóa" và "tính năng nâng cao"? Theo chỉ định của Hello World, có rất nhiều hệ thống Linux được bảo vệ khá tốt.
Fred

Tôi nghĩ nó khá rõ ràng trong bối cảnh này: Mọi thứ trong Rpi cần được thực hiện sudokhông dành cho khách. Đây là một định nghĩa tốt về một "tính năng nâng cao".
Xin chào thế giới

Câu trả lời:


9

Linux là một môi trường nhiều người dùng theo mặc định. Mỗi người dùng có thư mục riêng trong / home / TheUserName

Người dùng rất hạn chế bên ngoài thư mục đó. Họ chỉ có quyền truy cập đọc vào hầu hết mọi thứ.

Theo mặc định, Raspberry Pi đi kèm với một người dùng được gọi pi. Người dùng này có một thư mục nhà gọi là /home/pi/. Bắt: Theo mặc định, pingười dùng có khả năng truy cập mọi thứ thông qua sudo, thực thi các lệnh dưới dạng root.

Giải pháp

Tạo một người dùng mới. Theo mặc định, người dùng mới không có sudoquyền truy cập.

sudo adduser guest

Bây giờ, khi đăng nhập (giả sử chế độ thiết bị đầu cuối): Chỉ cần nhập guestlàm tên người dùng, nhập mật khẩu của bạn, sau đó nhập startxđể vào GUI. Người dùng này sẽ không thể sửa đổi bất cứ điều gì bên ngoài /home/guest.

Bạn cũng có thể muốn thay đổi mật khẩu "Pi" mặc định, thực hiện điều này như pisau:

sudo passwd pi

Bây giờ người dùng khách của bạn sẽ chỉ có thể hủy thư mục riêng / nhà / khách của họ mà không làm hỏng phần còn lại của Raspberry Pi.

Thêm

Bạn cũng có thể muốn sao lưu tươi / nhà / khách. Vì vậy, trong trường hợp một khách làm phiền người dùng khách, bạn chỉ cần khôi phục nó từ bản sao lưu.

thực hiện điều này như pi:

mkdir /home/pi/backup
sudo cp /home/guest /home/pi/backup/guest

Để khôi phục tài khoản khách:

sudo rm -f -r /home/guest #Remove the guest folder.
sudo cp /home/pi/backup/guest /home/ #Copy the backup to where the guest folder used to be.
sudo chown -R guest /home/guest #Give "guest" ownership of the new guest folder.

Nếu bạn muốn tài khoản khách luôn được đặt lại khi khởi động, hãy đảm bảo rằng cùng một tập lệnh luôn thực thi khi khởi động bằng cách đặt nó vào /etc/rc.local.


Bạn có thể tiến thêm một bước không? Làm thế nào để bạn giữ cho khách không thể đọc, viết hoặc thực thi các thư mục chính khác, trong khi vẫn cho phép sudoers khả năng đọc, viết và thực thi các thư mục và tệp của khách?
Gabriel Staples

Làm xong. Tôi đã hiểu rồi. Xem câu trả lời của tôi ở đây, như một phần phụ lục cho câu trả lời của bạn: raspberrypi.stackexchange.com/a/58778/49091
Gabriel Staples

3

Hello World có một câu trả lời tuyệt vời ở đây . Tuy nhiên, tôi muốn tiến thêm một bước nữa. Tôi hỏi trong một bình luận dưới câu trả lời của anh ấy:

Bạn có thể đọc thêm một bước nữa không? "

Đây là cách: chạy các lệnh này:

sudo adduser guest 
sudo chmod g+w /home/guest
sudo chmod o-rwx /home/* 
sudo usermod -aG guest pi

Mô tả ngắn

  • sudo adduser guest = Thêm người dùng mới gọi là "khách"
  • sudo chmod g+w /home/guest= Thêm quyền truy cập w'rite của nhóm vào / nhà / khách để mọi người trong nhóm hiện có đầy đủ đặc quyền cho thư mục này. Để chắc chắn rằng họ thực sự có được đặc quyền đầy đủ, bạn cũng có thể sử dụng sudo chmod g+rwx /home/guestthay thế.
  • sudo chmod o-rwx /home/* = Trừ 'người dùng không phải là người dùng', 'w'rite và e'x'ecute truy cập vào tất cả các thư mục trong thư mục / home / để không người dùng cơ bản nào, chẳng hạn như "khách", có thể truy cập các tệp của người dùng khác .
  • sudo usermod -aG guest pi = 'a'dd user "pi" cho "khách"' G'roup để bây giờ anh ta nhận được các đặc quyền nhóm trên (rwx) vào thư mục / home / guest.

Làm xong! Người dùng "khách" hoàn toàn không thể xem các thư mục của người dùng khác, trong khi người dùng "pi" vẫn có thể có quyền truy cập đầy đủ vào tất cả các tệp và thư mục "khách" trong "/ home / guest".

Mô tả dài:

  1. Thêm một người dùng mới gọi là "khách" : sudo adduser guest. Lưu ý rằng điều này cũng tạo ra một thư mục nhà cho khách gọi là "/ home / guest"
  2. Bây giờ chúng ta hãy chuyển đến thư mục "/ home" để xem xét một số thứ. cd /home. Xem các quyền của các thư mục: ls -l Ví dụ đầu ra:

    drwxr-xr-x 22 khách khách 4096 Ngày 6 tháng 12 23:16 khách
    drwxr-xr-x 43 pi pi 4096 ngày 10 tháng 12 10:39 pi

    • Đầu ra này cho chúng ta biết rất nhiều thông tin. Đọc ở đây để biết thêm thông tin ( https://www.linode.com/docs/tools-reference/linux-users-and-groups ).
    • Dòng đầu tiên ("drwxr-xr-x") cho chúng tôi biết đó là 'quyền hạn, với quyền' r'ead / 'w'rite / e'x'ecute (rwx) cho Người dùng,' r'ead và quyền e'x'ecute (rx) cho Nhóm và quyền 'r'ead và e'x'ecute (rx) cho những người dùng khác.
    • "khách khách" cho chúng tôi biết Người dùng thư mục này thuộc về "khách" và Nhóm thư mục này thuộc về cũng là "khách". (Người dùng được liệt kê đầu tiên, Nhóm được liệt kê thứ hai).
    • "Khách" cuối cùng ở cuối dòng đầu tiên là tên của thư mục bên trong thư mục "/ home /" mà các quyền này áp dụng.
  3. Lưu ý rằng những người dùng khác có quyền rx cho cả thư mục nhà "khách" và thư mục nhà "pi". Chúng tôi không muốn điều này, vì điều đó có nghĩa là "khách" có thể đọc và thực thi các tệp trong thư mục nhà "pi", "pi" có thể đọc và thực thi các tệp bên trong thư mục chính của "khách" và bất kỳ người dùng nào khác mà bạn có thể trong tương lai có thể đọc và thực thi các tệp bên trong cả hai thư mục nhà! Chúng tôi, tuy nhiên, muốn các thành viên của "khách" nhóm phải có quyền đầy đủ để / home / khách, vì vậy chúng tôi sẽ cung cấp cho họ viết đặc quyền. Do đó, sudo chmod g+w /home/guestthêm quyền ghi (w) vào quyền 'g'roup cho thư mục này và sudo chmod o-rwx /home/*trừ các quyền rwx khỏi' người dùng không phải cho tất cả các thư mục trong thư mục "/ home", bao gồm cả "/ home / pi" và "home / khách". ls -lbây giờ cho thấy:

    drwxrwx --- 22 khách khách 4096 Ngày 6 tháng 12 23:16 khách
    drwxr-x --- 43 pi pi 4096 ngày 10 tháng 12 10:39 pi

  4. Bây giờ, người dùng "khách" KHÔNG thể xem các tệp / home / pi nữa vì đây là một phần của người dùng / home / pi "Khác" và người dùng "Khác" không còn quyền trên đó nữa! Tuy nhiên, người dùng "pi" cũng KHÔNG thể xem các tập tin / home / guest nữa vì đây là một phần của người dùng / home / guest "Other" và người dùng "Other" không còn có quyền trên thư mục này nữa. Chúng tôi sẽ sửa lỗi này tiếp theo:
  5. Cuối cùng, bây giờ các thành viên của Nhóm "khách" có đầy đủ đặc quyền (rwx) trên thư mục / home / guest, chúng tôi cần thêm người dùng "pi" vào nhóm "khách", để "pi" có thể truy cập và sử dụng / nhà / thư mục khách đầy đủ. Đó là những gì sudo usermod -aG guest pi. Để xác minh rằng nó hoạt động, hãy chạy groups pivà bạn sẽ thấy bản in của tất cả các nhóm mà người dùng "pi" thuộc về. Tôi thấy điều này:

    pi: pi adm dialout cdrom sudo audio video plugdev người dùng nhập netdev spi i2c gpio khách

    • Lưu ý danh sách nhóm "khách" ở cuối. Điều đó có nghĩa là người dùng "pi" hiện là thành viên của nhóm "khách".
    • Cũng lưu ý rằng nếu bạn chạy, groups guestbạn sẽ thấy người dùng "khách" đó chỉ là thành viên của nhóm "khách". Điều này là tốt, vì nó có nghĩa là anh ta là một người dùng cơ bản. Nếu anh ta là thành viên của nhóm "pi", giờ anh ta sẽ có các đặc quyền rx hơn / home / pi, điều mà chúng tôi KHÔNG muốn, và nếu anh ta là thành viên của nhóm "sudo", anh ta sẽ là một siêu người dùng (quản trị viên , như người dùng "pi"), có khả năng thay đổi tất cả các quyền này và làm bất cứ điều gì anh ta muốn! Điều đó cũng sẽ là xấu.
  6. Ghi chú cuối cùng:

    • để chứng minh với bản thân rằng người dùng "khách" không thể truy cập / home / pi, bạn có thể chuyển sang người dùng khách thông qua lệnh 's'witch' u'ser : su guest. Nó sẽ hỏi mật khẩu của khách. Sau khi nhập, hãy làm cd /home/pivà bạn sẽ thấy như sau:

      pi @ raspberrypi3: / home $ su khách
      Mật khẩu:
      khách @ raspberrypi3: / home $ cd / home / pi
      bash: cd: / home / pi: Quyền bị từ chối
      của khách @ raspberrypi3: / home $

    • Nếu bạn cố chạy bất kỳ sudolệnh nào với tư cách là người dùng "khách", bạn sẽ gặp lỗi này:

      khách không có trong tập tin sudoers. Sự cố này sẽ được báo cáo.

    • Để xem báo cáo về các loại sự cố bảo mật này, hãy chuyển sang người dùng "pi" ( su pi), sau đó chạy sudo cat /var/spool/mail/mail( nguồn ).

Làm xong!

Chúc mừng,
Gabriel Staples
www.ElectricRCAircraftGuy.com

Tài liệu tham khảo cơ bản:


0

Câu trả lời này là về cách giải quyết vấn đề và nó chỉ được khuyến nghị cho các quản trị viên lười biếng hoặc rất bận rộn

Để biết cách tiếp cận chuyên nghiệp hơn / tốt hơn, hãy xem câu trả lời khác

Tôi gặp vấn đề tương tự với máy tính PC có sẵn cho khách trong nhà nghỉ của chú tôi.

Trong Windows có người dùng "Khách" và nhóm "Khách". Điều này được thiết kế khá tốt để hạn chế quyền của người dùng ở mức tối thiểu, tuy nhiên chúng tôi vẫn gặp một số vấn đề với sự lộn xộn trên máy tính để bàn, lịch sử trình duyệt, thanh trình duyệt và addons, mọi người vô tình lưu mật khẩu của họ trong trình duyệt, những đứa trẻ đùa giỡn với màn hình máy tính để bàn làm hình nền và biểu tượng đã tắt, vv

Sau vài lần "sửa chữa máy tính" liên quan đến những vấn đề này, tôi quyết định cho phép mọi thứ và khôi phục toàn bộ đĩa cứng về "trạng thái sạch" sau mỗi lần khởi động lại.

Sau khi tôi làm điều đó - không bao giờ phải đến đó và sửa chữa bất cứ điều gì.

Khách cũng rất vui, vì họ có thể làm bất cứ điều gì - cài đặt trình điều khiển máy ảnh, một số phần mềm từ thẻ nhớ USB, v.v ... Nếu họ làm phiền - khởi động lại mất 5 phút để sửa mọi thứ.

Tôi nghĩ rằng phương pháp đó có thể làm việc cho bạn quá.


0

Điều này không bảo mật máy tính công cộng khỏi sự cố, nhưng bạn đã sẵn sàng để nhanh chóng thiết lập nó chạy lại nếu bạn có một số bản sao của boot-SD. Bằng cách này, không ai có thể đột nhập vào hệ điều hành của bạn.

Đây là cách bạn sao chép hệ điều hành hiện tại của bạn:

Bạn cần một đầu đọc thẻ SD và không có gì khác đặt vào USB. Đặt micro-SD vào đầu đọc thẻ (hoặc bộ chuyển đổi thẻ SD).

QUAN TRỌNG : Nó phải có cùng kích thước với boot-SD và cùng nhãn hiệu được mua cùng một lúc . Bởi vì tất cả các siêu khóa bị ghi đè, Tất cả siêu dữ liệu về phần cứng của nó bị ghi đè! Nếu phần cứng khác nhau, SD sẽ bị mất.

sudo fdisk -l
umount /dev/sda1
mount

Hãy chắc chắn rằng mọi phân vùng sẽ hiển thị dưới dạng sda1, sda2, ... Lặp lại 'umount' cho mỗi / dev / sd * #

Xem đầu ra từ 'fdisk' và chắc chắn nếu = TỪ và của = TO

sudo dd if=/dev/mmcblk0 of=/dev/sda iflag=nofollow oflag=noatime
sync; sync #to be sure it has flushed all data to disk

Đó là nó!

Để xem tiến trình bạn gửi tín hiệu qua thiết bị đầu cuối khác:

pid=$(pgrep -x dd)
sudo kill -USR1 $pid

Và nếu nó cố gắng như lần đầu tiên đối với tôi (SD xấu):

sudo kill -9 $pid

Tôi đã mua thẻ SD 0,5TB, nhưng đã mất nó do quá nhiều thử nghiệm. Ước gì tôi sử dụng phương pháp này để đưa bản gốc vào ổ cứng.
Dan Froberg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.