Các tệp người dùng có còn riêng tư khi hai người dùng sudo tồn tại trong Ubuntu không?


31

Tôi đang chia sẻ máy tính Ubuntu cá nhân của mình với một trong những đồng nghiệp của mình.

Tôi đã tạo một người dùng khác với một mật khẩu khác (tất nhiên anh ta biết) và thêm nó vào sudoerdanh sách.

Cho rằng có hai sudongười dùng trong một hệ thống Ubuntu:

  • Các tệp riêng tư (được chỉ định bởi chủ sở hữu và quyền) của bất kỳ người dùng nào trong số này vẫn ở chế độ riêng tư?

  • Tôi có thể sửa đổi các tệp của đồng nghiệp của mình thông qua sudolệnh, thậm chí sudo suhoặc ngược lại không?



6
Ubuntu cho phép tạo một thư mục nhà được mã hóa khi tạo người dùng. Đó có thể là chính xác các tính năng cần thiết ở đây.
Thorbjørn Ravn Andersen


@ ThorbjørnRavnAndersen Sau khi tôi mã hóa thư mục nhà, tôi vẫn có thể truy cập các tệp bên trong thuận tiện như trước đây không?
Châu Hoàng

3
Tại sao bạn không xóa quyền truy cập sudo khỏi người dùng khác và bạn trở thành quản trị viên duy nhất? Dù lý do người dùng khác cần sudo là gì, bạn có thể khắc phục để họ không cần sudo (gắn, in, tự động cập nhật, v.v.)
Xen2050

Câu trả lời:


51

Nếu đồng nghiệp của bạn nằm trong danh sách sudoers, anh ta sẽ root nhiều như bạn nếu anh ta muốn (và anh ta cũng có thể mạo danh bạn), và sau đó anh ta có thể nhìn thấy mọi thứ.

Đây là thiết lập tồi tệ nhất bạn có thể có nếu bạn muốn quyền riêng tư của người dùng. Bạn chắc chắn nên đọc cách quản lý người dùng trên Linux. Dưới đây là một vài bài viết bạn có thể bắt đầu với:

Và thậm chí sau đó nếu ai đó có quyền truy cập vật lý vào máy đang nghi vấn, không có quyền riêng tư, anh ta có thể thả boot vào vỏ gốc và xem mọi thứ bất kể là gì, và nếu đây là mật khẩu được bảo vệ, anh ta vẫn có thể sử dụng thẻ USB và đi vào con đường này

Vì vậy, điều tốt nhất trong trường hợp đó là quản lý người dùng thích hợp, mật khẩu cho root, và ổ đĩa được mã hóa và / hoặc các thư mục nhà được mã hóa.


2
Mặc dù đảm bảo sudo -ikhông hoạt động :)
Wilf

3
Mặc dù cấu hình đơn giản và phổ biến nhất của sudoers là cho phép danh sách người dùng tạm thời có quyền root, sudoers cho phép kiểm soát truy cập chi tiết. Chẳng hạn, bạn có thể chỉ định rằng người dùng chỉ có thể thực thi một số lệnh cụ thể dưới dạng root. Nếu bạn cẩn thận chỉ cho phép người dùng thực thi các lệnh không cho phép tạo shell gốc hoặc nói cách khác là tạo quyền truy cập gốc liên tục vượt quá phạm vi của các lệnh bạn muốn cho phép, bạn có thể tránh cho họ quyền truy cập gốc nói chung.
bgvaughan

19

Một cách khác đơn giản là giữ dữ liệu riêng tư của bạn trong một tệp được mã hóa (có thể là tệp lưu trữ tar, mà bạn mã hóa, ví dụ như với gpg). Bạn phải nhớ ghi đè và xóa các tệp văn bản rõ ràng sau khi xem chúng.

Một cách khác cho tất cả các bạn dùng chung máy tính và truy cập sudo (root) là sử dụng mã hóa tại nhà và trao đổi được mã hóa.

Nhưng điều này sẽ không giúp ích gì, nếu bạn đăng nhập cùng một lúc. Vì thực tế, bạn phải khởi động lại máy tính để loại bỏ các tệp của mình ở định dạng văn bản rõ ràng ngay cả với nhà được mã hóa.


Nói chung, bảo mật rất khó khăn và một hệ thống người dùng duy nhất có đĩa được mã hóa (LVM có mã hóa) sẽ là cách đơn giản nhất để giữ an toàn cho mọi thứ.

  • Không lưu trữ dữ liệu riêng tư nhạy cảm trong máy tính dùng chung
  • Không lưu trữ dữ liệu riêng tư trong máy tính thuộc về chủ nhân của bạn

3
Một thùng chứa dm-crypt / LUKS sẽ không phải lo lắng về việc ghi đè các tệp Cleartext (ngoại trừ bất kỳ tệp tạm thời & trao đổi nào của ứng dụng) hoặc một thư mục ~ / .Private được mã hóa vớiecryptfs-mount-private
Xen2050

6
Điều này thậm chí không bảo vệ bạn khỏi các cuộc tấn công người giúp việc độc ác: người dùng sudo khác có thể thay đổi hệ thống để lừa bạn đưa cho họ mật khẩu của bạn. Một câu hỏi như vậy nên được đọc là "Tôi nghi ngờ đồng nghiệp của mình là gián điệp Nga. Tôi có nên cho anh ta quyền sudo trên máy tính của mình không?"
sleblanc

Một máy ảo với hình ảnh đĩa được mã hóa thì sao? blogs.oracle.com/scoter/...
leftaroundabout

1
Nếu bạn cần sự riêng tư, bạn cần một hệ thống người dùng duy nhất nói cách khác không có người dùng khác, chắc chắn không có người dùng sudo nào khác. Ubuntu LVM với hệ thống mã hóa dễ bị tấn công bởi người giúp việc độc ác. Tuy nhiên, tôi nghĩ rằng nó là tốt hơn so với các lựa chọn thay thế dễ dàng khác bao gồm cả nhà được mã hóa. Tất nhiên, nếu bạn muốn, bạn có thể có đĩa được mã hóa và nhà được mã hóa và một hệ thống người dùng duy nhất, để gây khó khăn hơn cho kẻ xâm nhập, ví dụ như theo liên kết này, iso.qa.ub Ubuntu.com/qatracker/mil Thạch / 363 / bản dựng / 126342 /
Lần

Tất cả những gì người dùng root mới cần làm là cài đặt một rootkit không gian kernel như diamorphine. Thậm chí không cần bận tâm đến việc LD_PRELOADhack xung quanh với hack hack người dùng: chỉ cần tạo một trình ghi chép gõ phím đơn giản và ném nó vào một số tập lệnh python để thực hiện một số phân đoạn K-nghĩa mờ dựa trên thời gian / nhóm gõ và phân tích cú pháp văn bản, và làm xong. Bây giờ bạn có cụm mật khẩu cho người dùng và có thể lấy dữ liệu cá nhân của họ.
Đám mây

8

Một khi bạn có thể để có được rootquyền truy cập (ví dụ sử dụng sudo, su, vv).
Bạn có toàn quyền truy cập vào mọi tệp trên hệ thống.

Vì vậy, cả hai người dùng có sudoquyền và có thể rootsử dụng sudo bashsẽ có quyền truy cập đầy đủ vào mọi tệp trên hệ thống

Theo Q & A này trong SE-Security: Bạn có thể sửa đổi SELinux(không phải Ubuntu) để giới hạn rootquyền truy cập:

Nếu câu hỏi của bạn là "tôi có thể dễ dàng và an toàn làm điều này bây giờ không?" câu trả lời là không. Nếu câu trả lời của bạn là "Tôi đã sẵn sàng để tìm hiểu về SELinux, hãy chán nản với bản phân phối của mình và đưa ra khá nhiều thứ không hoạt động", câu trả lời là có thể hạn chế root nhiều hơn so với cài đặt trung bình của bạn. Điều đó nói rằng, điều này không theo bất kỳ cách nào khiến bạn trở nên bất khả xâm phạm - nó không khiến người dùng không thể phá vỡ sự kiểm soát truy cập bổ sung này cả về phần mềm hoặc vật lý.


2
Bạn có thể giới hạn root bằng apparmor và selinux, tuy nhiên, ai đó có quyền truy cập hoặc truy cập root đầy đủ thông qua shell recovery hoặc CD trực tiếp, với hệ thống (apparmor hoặc selinux) có thể thay đổi lại.
Panther

1
Ngay cả khi bạn sử dụng SELinux hoặc như vậy để hạn chế những gì root có thể thực hiện trực tiếp, họ vẫn có thể sửa đổi các tiện ích mà người dùng tự chạy. Và nếu họ được cho là có thể chạy bất kỳ nâng cấp nào, họ sẽ cần quyền truy cập để sửa đổi các tệp nhị phân trên hệ thống ...
ilkkachu

5

Để làm cho những gì các câu trả lời khác đã nêu hoàn toàn rõ ràng: Người dùng khác đó không chỉ "root nhiều như bạn" (câu trả lời của Videonauth), họ cũng có thể trở thành bạn (chuyển sang tài khoản người dùng của bạn) .

Điều này là do với các đặc quyền siêu người dùng, người ta có thể chuyển sang bất kỳ tài khoản nào.

Bạn có thể biết

sudo su

đó là một tùy chọn mở shell root nếu root không có mật khẩu được đặt (vì vậy bạn không thể đăng nhập trực tiếp bằng root).

sulà viết tắt của "người dùng chuyển đổi". Người dùng chuyển sang cái gì? Không có gì được nêu, phải không? Nhưng từ trang người đàn ông, chúng ta có thể biết rằng:

Được gọi mà không có tên người dùng, su mặc định trở thành siêu người dùng.

Vì vậy, điều này có hiệu quả là

sudo su root

nếu bạn không đổi tên rootthành thứ khác.

Nếu bạn chỉ chạy su <someuser>, bạn sẽ được nhắc nhập mật khẩu. Vì vậy, nếu bạn chạy su root, bạn được nhắc nhập mật khẩu của root (không tồn tại trong Ubuntu theo mặc định, vì vậy bạn không thể đăng nhập (lưu ý rằng không có mật khẩu nào được đặt nghĩa là không có phương tiện đăng nhập qua mật khẩu khác với mật khẩu là chuỗi rỗng)). Nhưng nếu bạn chạy sudo su root, bạn sẽ được nhắc nhập mật khẩu của riêng mình. Và bạn chỉ được nhắc cho nó bởi sudo. Sau khi sudonhận được mật khẩu của bạn, nó chạy lệnh mà nó nhận được dưới dạng tham số với các đặc quyền siêu người dùng. Vì người ta có thể chuyển sang bất kỳ tài khoản nào khi có đặc quyền siêu người dùng, không cần nhắc mật khẩu.

Vì vậy, bằng cách thực hiện

sudo su <yourusername>

, sudoer khác có thể đăng nhập như bạn.


+1; Có, tôi đã không đề cập đến điều này vì không gây nhầm lẫn, lĩnh vực bảo vệ máy đúng cách rất rộng và chứa đầy đá bạn có thể vật lộn. Vẫn còn bổ sung tốt cho những gì đã được đưa ra như câu trả lời.
Videonauth

Không chắc chắn, nhưng không sudo suphải lúc nào cũng mặc định là UID 0 và GUID 0? Nếu có, không quan trọng bạn đặt tên là 'root' như thế nào.
Videonauth

@Videonauth Bạn đúng với câu thứ hai trong bình luận thứ hai của bạn. Tuy nhiên, đây là lý do tôi đưa vào câu bạn đang chỉ trích. Nếu bạn đổi tên rootthành john, sudo subây giờ tương đương sudo su johnvà không còn sudo su root.
UTF-8

3

Có thể giới hạn các chương trình có thể được chạy bằng cách sử dụng leo thang đặc quyền sudo bằng cách chỉnh sửa tệp sudoers ( /etc/sudoers).

Xem câu trả lời được chấp nhận cho câu hỏi này trên Super User để biết thêm chi tiết và cả ở đây trên Unix và Linux . Xem câu trả lời của slm để có gợi ý về việc giới hạn các đặc quyền trong /etc/sudoers.

Đồng thời kiểm tra mantrang sudoers bằng cách gõ man sudoersvà đừng quên kiểm tra nó. Hãy nhớ rằng với quyền truy cập sudo không bị chặn, người dùng hoàn toàn có thể mạo danh bất kỳ người dùng nào khác. ví dụ: nếu người dùng foochạy lệnh

sudo exec su - bar

sau đó họ có thể đóng vai trò là người dùng bar, với tất cả các đặc quyền của người dùng đó.


6
Lưu ý rằng các cụ sudoersdòng thể hiện trong SLM củamtak của câu trả lời không làm việc để cung cấp cho khả năng thực hiện một số hành động và không phải người khác, vì nó là trivially dễ dàng để sử dụng chúng để thực hiện bất kỳ lệnh. (Xem các nhận xét về từng câu trả lời để biết giải thích chi tiết về lý do.) Câu trả lời này có thể không hoàn toàn sai ở chỗ đôi khi có thể cho phép người dùng sử dụng sudođể chạy các lệnh cụ thể như root mà không cần quản trị viên một cách hiệu quả. Nhưng thật khó để có được điều này.
Eliah Kagan

@EliahKagan Phải. Cần phải cẩn thận đảm bảo rằng bạn không cho phép họ đạt được một cơ chế cho phép họ thực hiện bất kỳ lệnh nào. Tất nhiên, nó phụ thuộc vào mức độ tin tưởng bạn đặt vào người khác.

1
@EliahKagan Do đó khuyến khích cả hai đọc trang người đàn ông và kiểm tra bất kỳ thực hiện. Giới hạn người dùng với đặc quyền sudo là có thể làm được. Tuy nhiên, như bạn chỉ ra, đó không phải là một giải pháp hoàn toàn an toàn và một số mức độ tin cậy phải được trao cho người dùng được trao quyền sudo. Thật thú vị khi xem downvote cho một câu trả lời khuyến nghị sử dụng cơ chế (mục nhập tệp sudoers) được thiết kế riêng cho mục đích giới hạn phạm vi của lệnh sudo.
người quyến rũ

Tôi nghĩ rằng đó không phải là về khuyến nghị sử dụng một cơ chế xây dựng, vì vậy hãy để tôi đi đến điểm phê bình mang tính xây dựng mà tôi có thể cung cấp cho bạn cho câu trả lời của bạn. 1) Nó chứa một số lỗi chính tả và có hình thức kém và trông kỳ quặc khi bạn đọc nó, bản thân nó có thể được sửa rất dễ dàng. 2) bạn trỏ đến các câu trả lời khác được đưa ra bên ngoài Hỏi Ubuntu , ở đây bạn nên lấy các phần thiết yếu làm trích dẫn khối và đăng chúng ở đây, làm cho các liên kết của bạn trở thành một phần của trích dẫn để chỉ ra các nguồn bạn đã lấy từ đó. Hy vọng điều này sẽ giúp cải thiện câu trả lời của bạn.
Videonauth

Và vì tôi đã hết các nhân vật trong bình luận trước đây của mình: 3) Bạn có thể giải thích sâu hơn một chút, hãy chỉ ra những lời cảnh báo mà @EliahKagan đã đề cập.
Videonauth

0

Các câu trả lời trước không áp dụng đầy đủ, nếu bạn đã đánh dấu encrypt home foldertrong khi cài đặt Ubuntu. Điều này đảm bảo các thư mục nhà được mã hóa cho mọi người dùng, ngay cả khi root không thể đọc dữ liệu mà không có mật khẩu thích hợp của người dùng / chủ sở hữu của thư mục nhà đó. Trường đại học của bạn sẽ cần phải thay đổi mật khẩu của bạn để đọc các tập tin, sẽ được chú ý.

Và tất nhiên mọi người đã đúng, rằng việc chia sẻ các máy có dữ liệu có giá trị hoặc nhạy cảm trên đó và trên cùng là quyền truy cập root với các đồng nghiệp, không phải là một ý tưởng hay.

Tùy thuộc vào giá trị của dữ liệu này, tôi khuyên bạn nên yêu cầu máy của riêng bạn.


1
Điều này có thể không ngăn cản người dùng root thực hiện "su -" hoặc thao tác tương tự ngay khi "nạn nhân" được đăng nhập và gắn ổ đĩa được mã hóa .... cũng có thể có một tập lệnh cron hoặc trình kích hoạt khác đang chờ xảy ra. Ngoài ra, người dùng root có thể dễ dàng thay thế nhị phân xử lý đầu vào mật khẩu để mở khóa thư mục chính được mã hóa bằng phiên bản lưu mật khẩu Cleartext và chờ. Bất kỳ cơ chế bảo mật nào ngăn chặn các cuộc tấn công như vậy vẫn có thể được tận dụng bằng cách thay đổi một số nhị phân mà nạn nhân sẽ sử dụng thành thứ gì đó như bạn muốn.
rackandboneman

5
Tôi hạ thấp câu trả lời này dưới dạng thư mục chính được mã hóa chỉ giúp nếu bạn hiện chưa đăng nhập. Ngay khi bạn đăng nhập, dữ liệu của bạn được giải mã và có sẵn cho người dùng khác có quyền truy cập sudo.
Panther

2
Nhưng tại sao họ phải như vậy? Ngay cả khi đăng nhập đồng thời không bao giờ được thực hiện từ xa (ví dụ: SSH) hoặc với bảng điều khiển ảo, hai người dùng có thể được đăng nhập bằng đồ họa cùng một lúc và chuyển đổi giữa không? Tôi sử dụng Lubfox (có LXDE) và tôi chưa bao giờ đăng nhập bằng đồ họa với nhiều người dùng cùng một lúc, nhưng ấn tượng của tôi là môi trường máy tính để bàn giàu tính năng hơn đã hỗ trợ điều này trong một số năm nay và cho phép mặc định. Tôi có nhầm lẫn về điều đó? Ngoài ra, các tập tin không còn được giải mã và có thể đọc được bằng root khi màn hình bị khóa?
Eliah Kagan

2
IRRC, khóa mã hóa người dùng được lưu trữ công khai trên máy để cung cấp mã hóa và giải mã, do sudo su - <username>đó, không cần mật khẩu người dùng khác, thường sẽ giải mã thành công thư mục người dùng khác. Nhưng tôi có thể sai ở đây, cần kiểm tra nó trong VM và sẽ làm như vậy sau. Dù sao đi nữa, nó xuất hiện trong 99% của tất cả các trường hợp: "Nếu tôi có quyền truy cập vật lý vào máy của bạn, bạn sẽ bị lừa!".
Videonauth

1
Một siêu người dùng có thể thay đổi thủ tục đăng nhập để ghi lại tên người dùng và mật khẩu mà họ nhìn thấy. Đợi cho đến khi người dùng khác đăng nhập và vấn đề được giải quyết.
Stig Hemmer
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.