Là đăng nhập như một người dùng chia sẻ là một thói quen xấu?


35

Tôi đã làm việc trong các tổ chức thay vì tạo một người dùng Ubuntu mới cho mỗi người muốn đăng nhập vào máy, các hệ thống chỉ cần thêm khóa ssh của mỗi người dùng .ssh/authorized_keysvà mọi người sshvào máy như ( ví dụ ) ubuntu@hosthoặc ec2-user@host. (Ngẫu nhiên, tôi cũng đã thấy điều này được thực hiện trên các máy Mac được chia sẻ trong môi trường phòng thí nghiệm.) Đây có phải là thực tiễn được chấp nhận hay là một mô hình chống?

Các máy chủ được đề cập chủ yếu được sử dụng để thử nghiệm, nhưng cũng có những hành động được thực hiện thường yêu cầu cấu hình theo người dùng và được theo dõi bởi một người dùng cụ thể, chẳng hạn như tạo và đẩy git cam kết, hiện đang được thực hiện bằng cách sử dụng git chung người sử dụng.


23
Mặc dù nhiều người gặp rắc rối với các mối quan hệ đa tình cảm, nhưng những người khác xử lý chúng tốt, vì vậy tôi không nghĩ rằng đó nhất thiết là một "thói quen xấu" để chia sẻ một ... ồ, không có nghĩa, bạn có nghĩa là tài khoản người dùng .
HoplessN00b

À, ai đó đã chỉnh sửa tiêu đề clickbait .. :(
Burgi

Câu trả lời:


42

Vâng, đó là một thói quen xấu. Nó dựa vào giả định cơ bản rằng không có ai độc hại (hoặc sẽ) xung quanh và không ai phạm sai lầm. Có một tài khoản được chia sẻ làm cho mọi thứ trở nên tầm thường mà không có trách nhiệm và không có bất kỳ giới hạn nào - một người dùng phá vỡ thứ gì đó sẽ phá vỡ nó cho mọi người.

Nếu lý do cho chương trình chia sẻ uid này chỉ đơn giản là để giảm chi phí quản trị khi tạo tài khoản mới và cấu hình chia sẻ, thì có lẽ các quản trị viên nên đầu tư một chút thời gian vào một hệ thống tự động hóa như Ansible , Chef , Puppet hoặc Salt để tạo ra những thứ như tạo người dùng tài khoản trên nhiều máy cực kỳ đơn giản.


4
Nó thậm chí không có ác ý, và nó cũng không phải là bất tài. Khi bất cứ điều gì tôi làm không hoạt động, tôi không thể cho rằng mình sẽ nhớ bất cứ điều gì đã được thực hiện trên tài khoản này.
djechlin

Nguyên tắc của dữ liệu an toàn: Tính toàn vẹn Tính bảo mật Tính khả dụng. +1 để sử dụng trách nhiệm từ
DeveloperWeek

7

Để bắt đầu với điều này không gây sốc cho tôi và tôi làm việc trong một môi trường cực kỳ an toàn. Mọi người đều có người dùng và máy và khóa ssh của riêng mình và để làm việc trên máy chủ mà chúng tôi ssh in, với tư cách là root hoặc là người dùng khác, thông qua chuyển tiếp đăng nhập nếu cần. Tất cả mọi thứ chúng tôi làm được ghi lại như đã được thực hiện bởi chủ sở hữu của khóa ssh, vì vậy trách nhiệm là OK.

Sự thay thế sẽ là gì? Rất nhiều thứ phải được thực hiện như một người dùng nhất định, không đề cập đến root. Sudo? Điều đó ổn đối với một số tác vụ rất hạn chế, nhưng không phải để sysadmining máy.

Tuy nhiên tôi không chắc chắn về đoạn cuối cùng của bạn, bạn có nghĩa là ai đó có thể đẩy một người dùng chung chung không? Điều đó sẽ phá vỡ trách nhiệm, và phá vỡ trách nhiệm là xấu. Chúng tôi thực hiện git từ máy mà chúng tôi đã đăng nhập và chúng tôi xác thực để git bằng khóa ssh của chúng tôi ...

Xác thực, ủy quyền và kế toán (AAA) là biểu thức cổ điển: bạn được xác thực bằng khóa ssh của mình, bạn được ủy quyền để làm bất cứ điều gì mà người dùng chung có thể làm vì khóa của bạn nằm trong ủy quyền và bạn cần kế toán để làm những gì bạn làm có thể được xem xét sau khi thực tế.


3
Vì vậy, người dùng chung có một số loại xác thực (khóa ssh?) Được phép sửa đổi repo git? Điều đó thực sự không tốt. Không chỉ bởi vì nó phá vỡ trách nhiệm cho cam kết đó, mà còn bởi vì bất kỳ người nào cũng có thể sao chép khóa đó và sử dụng nó từ một nơi khác. Khi tôi gặp vấn đề đó, tôi sao chép mã hoặc diff vào máy cục bộ của mình và cam kết nó từ đó.
Luật29

2
Tại sao chính xác không sudothể chấp nhận cho quản trị chung của một máy?
Blacklight Shining

4
bạn ssh trong root trong "một môi trường cực kỳ an toàn" oO?
xaa

@BlacklightShining Nếu bạn phải có thể làm bất cứ điều gì (chown, chmod các tệp tùy ý, cài đặt máy chủ, gắn kết hệ thống tệp, không có gì có thể đạt được bằng cách sử dụng như một người dùng và thực hiện một sash bash. Thay vào đó, hãy sử dụng một rơle đăng nhập. và / hoặc đăng nhập mọi thứ vào một máy chủ từ xa với chủ sở hữu của khóa ssh mà ssh'd.
Law29

1
@xaa Có tôi làm, và tôi không thấy vấn đề với điều đó. Tất cả mọi thứ tôi gõ được ghi vào máy khác. "Đừng làm việc như root" là một câu châm ngôn hoàn toàn vô dụng khi máy là một máy chủ nơi mọi thứ bạn có thể muốn làm đều cần bạn là root.
Luật29

3

Nó rõ ràng phụ thuộc vào trường hợp sử dụng của hệ thống. Nếu nó là hệ thống để thử nghiệm theo thời gian, nó là tốt cho tôi. Chúng tôi cũng có những hệ thống như vậy. Nếu công ty không có bất kỳ loại quản lý danh tính (LDAP, IPA) nào, thì việc tạo người dùng mới mà không có bất kỳ điều khiển từ xa nào trên hệ thống ngẫu nhiên là một gánh nặng khá lớn.

Nhưng đối với công việc hàng ngày khi ai đó nhầm lẫn khiến toàn bộ công ty không thể hoạt động không phải là một ý tưởng tốt.


Chính xác, nếu bạn không hoặc không thể có dịch vụ thư mục, việc tạo và quản lý hàng ngàn tài khoản là không thực tế.
Jim B

Ngay cả khi bạn không thể sử dụng LDAP, bạn vẫn có khả năng truy cập SSH (hoặc Powershell trên Windows). Bạn vẫn sẽ cần một cách để quản lý tệp ủy quyền trên máy chủ của mình cho tất cả các tài khoản đó (trừ khi bạn cũng chia sẻ mật khẩu) và hàng tấn cài đặt khác. Tôi phải tự hỏi tại sao bạn không sử dụng một số loại quản lý cấu hình (ví dụ: Puppet, Chef, Ansible) Nếu bạn có nhiều người dùng hoặc máy chủ đó. Gạt đi gánh nặng đó và mang lại cho bạn sự kiểm soát quá trình, trách nhiệm và trách nhiệm kiểm toán.
Martijn Heemels

3

Tất cả những câu trả lời đều giải quyết mối quan tâm về trách nhiệm giải trình, đây là một vấn đề quan trọng và thực sự, nhưng sử dụng tài khoản dùng chung cũng cho phép các cuộc tấn công không quá tinh vi đối với người dùng khác:

Hãy xem xét một kẻ tấn công tạo ra một sshtập lệnh độc hại ghi lại mật khẩu đã nhập và đặt nó vào trong PATHcho người dùng chung đó (được thực hiện dễ dàng). Bây giờ, người tiếp theo đăng nhập vào máy đó với người dùng được chia sẻ và quyết định sshđến một nơi khác (lần này với tài khoản cá nhân, không chia sẻ, của anh ta) có thể có một bất ngờ khó chịu.

Về cơ bản, sử dụng tài khoản dùng chung trên máy tính cũng giống như uống nước từ bồn ngâm chân tại bể bơi công cộng.


1

Nói chung, chia sẻ một tài khoản là một ý tưởng tồi vì những lý do sau:

  1. Mọi cài đặt được thực hiện cho người dùng này đều ảnh hưởng đến mọi người đăng nhập. (Promt, bí danh, ...)
    1. Bạn mất khả năng tìm ra ai đã làm gì (trách nhiệm)
    2. Một lỗi trong cấu hình của tài khoản (ví dụ như vô tình xóa ssh kay) ảnh hưởng đến mọi người sử dụng tài khoản người dùng đó (trong ví dụ đó bị khóa).

Và chắc chắn rằng có nhiều nhược điểm hơn nữa ... Nhưng tôi không muốn đi sâu hơn nữa.

Vấn đề là, có thể bạn đang phải đối mặt với nhu cầu chia sẻ tài khoản để quản lý một dịch vụ được thực thi dưới một tài khoản người dùng nhất định nơi tất cả quản trị viên có thể truy cập.

Trong một thiết lập như vậy, bạn có khả năng chia sẻ tài khoản này để đăng nhập (đối với các biện pháp trên tôi không muốn làm điều này) hoặc bạn đăng nhập riêng lẻ và chuyển người dùng sau đó sang tài khoản được chia sẻ (tôi sẽ đề nghị điều đó).

Các công cụ kiểm toán vẫn sẽ cho phép bạn theo dõi ai đã thực hiện những gì nhưng vẫn chia sẻ cùng một tài khoản.

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.