Tại sao bạn KHÔNG BAO GIỜ nên chỉnh sửa trực tiếp tệp / etc / Shadow?


10

Trong một câu trả lời khác ở đây trên UNIX & Linux Stack Exchange Michael D Parker đã viết , để đáp lại ai đó nói rằng làm như vậy là "an toàn", rằng:

Thông thường bạn KHÔNG BAO GIỜ nên chỉnh sửa trực tiếp tệp / etc / bóng.

Vì thế:

Tại sao bạn không bao giờ nên chỉnh sửa /etc/shadowtập tin trực tiếp?


bởi vì nó có mật khẩu của bạn được mã hóa.
Milind Dumbare 15/03/2015

7
Bởi vì bạn sẽ phá vỡ nó. Có thể không phải hôm nay, có thể không phải ngày mai, nhưng sẽ sớm thôi
ctrl-alt-delor 15/03/2015

1
Cập nhật câu hỏi của bạn (bằng cách chỉnh sửa nó) với một liên kết đến lý do tại sao bạn nghĩ rằng đây là trường hợp. Tôi đã được chỉnh sửa /etc/shadowtrong hơn 20 năm mà không có một vấn đề, bao giờ hết . Và xin hãy lịch sự để đọc trợ giúp hai phút → tham quan , đặc biệt là "không làm phiền", "không tán gẫu". Đây là lần đầu tiên tôi phải đọc qua nhiều câu chuyện không liên quan trong một câu hỏi hơn là đọc qua "chi tiết" câu hỏi có liên quan.
Anthon

"Thông thường bạn không bao giờ nên" không giống như "không bao giờ".
roaima 15/03/2015

2
@captcha Vô nghĩa. Có những lý do tốt để không làm điều đó. Chỉ vì bạn không thể nghĩ ra bất kỳ điều gì không cho phép bạn gọi người khác không biết gì. Xin hãy tử tế .
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


15

Có nhiều lý do để không chỉnh sửa /etc/passwd, /etc/shadow, /etc/group, /etc/gshadowhoặc /etc/sudoerstrực tiếp, nhưng thay vì sử dụng vipw, vigrhoặc visudo:

  • Nếu bạn mắc lỗi cú pháp, bạn có thể không thể đăng nhập hoặc trở thành root nữa. Sử dụng các công cụ viXXX giúp giảm rủi ro này vì công cụ này sẽ kiểm tra độ tỉnh táo trước khi sửa đổi tệp.
  • Nếu tệp được chỉnh sửa đồng thời, bất kỳ ai lưu lần cuối sẽ ghi đè lên các thay đổi được thực hiện bởi các chỉnh sửa trước đó. Điều này bao gồm cả người quản trị chỉnh sửa các tập tin và các tập tin được sửa đổi vì một người dùng gọi passwd, chshhoặc chfnđể thay đổi điều gì đó về tài khoản của họ. Nếu bạn sử dụng công cụ thích hợp, nó sẽ ngăn chặn sửa đổi đồng thời. Điều này chủ yếu là mối quan tâm trên các hệ thống có nhiều người dùng, vì vậy nếu bạn là người dùng duy nhất.
  • Trên một số hệ thống (chủ yếu hoặc chỉ * BSD), vipwcập nhật nhiều tệp (ví dụ /etc/passwd/etc/master.passwd). Điều này không áp dụng cho Linux.
  • vipwtự động tạo bản sao lưu ( passwd-,, shadow-), rất hữu ích nếu bạn nhận ra rằng mình đã vô tình xóa một dòng. Nó chỉ hữu ích nếu bạn nhận ra trước lần chỉnh sửa tiếp theo, vì vậy nó không thay thế kiểm soát phiên bản và sao lưu, nhưng sẽ rất tốt nếu bạn sớm nhận ra lỗi của mình. visudokhông làm điều này.

Bạn có thể chỉnh sửa tập tin trực tiếp. Bạn sẽ chỉ nhận một rủi ro bổ sung mà không có lợi thế thực sự.


Điểm # 2 là mối quan tâm trên bất kỳ hệ thống nào mà người dùng có thể thay đổi mật khẩu, vỏ và mật khẩu của riêng họ. Nhiều quản trị viên không phải là điều kiện tiên quyết. ☺
JdeBP

3
Và vấn đề chính với điều này trên BSD là, /etc/shadowkhông tồn tại và /etc/passwdlà tệp sai để chỉnh sửa, vì đây là tệp được tạo không phải là tệp nguồn. ☺
JdeBP

@JdeBP Ngoại trừ đó hoàn toàn không phải là vấn đề và cửa hàng BSD trong master.passwd
Rob

6

Về cơ bản có hai cách để xem xét điều này:

  1. Không bao giờ chỉnh sửa một số tệp nhất định mà không sử dụng các công cụ theo quy định bởi vì bạn có thể không biết những gì bạn đang làm và điều đó không sao vì các công cụ cho biết biết rõ hơn và luôn có sẵn.

  2. Thực tế hơn, bạn cũng có thể phá vỡ nó ngay bây giờ trong khi bạn đang suy nghĩ về nó để bạn có thể lên kế hoạch trước với một bản sao lưu và so sánh sự khác biệt sau khi bạn làm vì kiến ​​thức cơ bản về loginquy trình ban đầu của hệ thống có thể có giá trị có khi bạn phá vỡ nó theo một cách khác sau đó và nói rằng các công cụ sẽ không giúp bạn.

Tôi đoán bạn có thể có thể nói mà tôi đề nghị. Tôi nói rằng nếu một chủ đề khiến bạn quan tâm ngay cả trong một khoảnh khắc, bạn cũng có thể tận dụng sự tò mò đó và có được một kỹ năng mới trong khi bạn ở đó. Đặc biệt là một cái như thế này - shadowtệp có định dạng khá cơ bản, và những gì tôi biết về nó tôi đã học được sau khi vô tình phá vỡ nó - và đó không phải là kết quả của một chỉnh sửa tôi thực hiện đối với tệp đó.

Thay vào đó, sự cố của tôi xảy ra sau một số lỗi khác với cơ sở dữ liệu quản lý gói đã khiến trình quản lý gói ghi đè lên mà không lưu bản sao lưu và tất cả người dùng trên hệ thống đã được tạo kaput . Những nỗ lực vênh váo không biết gì nữa trong việc sửa chữa chỉ lan truyền thiệt hại cho các tệp liên quan khác và không lâu sau tôi phải khôi phục phần lớn các /etctệp văn bản từ bản sao lưu (ít gần đây hơn mong đợi) .

Khi tôi đã làm như vậy và xác minh rằng tôi đã có nó trong trạng thái hoàn toàn khả thi, tôi quyết định cố tình, tỉ mỉ làm lại tất cả. Và một lần nữa. Đây là tất cả vài tháng trước, nhưng hôm nay tôi vẫn tự tin rằng tôi có thể chẩn đoán nguồn gốc của sự cố loginvới một lần đăng nhập một tệp trên hệ thống của tôi và giải quyết nó với bất kỳ trình soạn thảo cơ bản nào (và có thể, có thể, lướt qua hoặc hai at man 5 problem_file) chỉ cung cấp quyền truy cập cơ bản vào fs gốc bị ảnh hưởng. Nó không được tăng giá rẻ - tôi đã mất gần một ngày - và các tệp cấu hình liên quan được lan truyền khắp thư mục (và thậm chí một số - như Linux PAM /var/run/no_login- trên các mount khác) - nhưng nó rất đáng làm. Và nó có thể rẻ hơn với một chút suy nghĩ trước.

Đạo đức của câu chuyện này là nó có lẽ không một điều tốt mà định dạng của configs nhiệm vụ quan trọng như shadow, passwd, groups, shellsnên quá mờ đục với chúng tôi rằng chúng ta phải sử dụng chỉnh sửa công cụ đặc biệt có thể có hoặc không thể sửa công việc của mình theo những cách và vì những lý do chúng tôi không hiểu chỉ để thực hiện một thay đổi đơn giản. Ít nhất, tôi nghĩ rằng, đáng để chúng ta hiểu chính xác những gì họ sẽ làm khác với chúng ta có thể.

Nó có lẽ một điều tốt, tuy nhiên, khi chúng tôi trở nên đủ quen thuộc với việc hiệu chỉnh các file nói rằng chúng ta có nguy cơ làm cho trong họ và sau đó tiết kiệm cho họ đánh máy hoặc đơn giản lỗi cú pháp đó có các công cụ theo ý của chúng tôi có thể kiểm tra lại công việc của chúng tôi theo những cách và vì lý do chúng tôi đã hiểu trước khi áp dụng các chỉnh sửa blase của chúng tôi.


3

Điểm truy cập - nếu bạn cần sao chép một nhóm thông tin đăng nhập của người dùng từ máy chủ này sang máy chủ khác mà không cần biết mật khẩu hiện tại của họ hoặc gán cho họ mật khẩu mới, thì bạn cần phải chỉnh sửa / etc / bóng trực tiếp để chèn trường mật khẩu băm. vipw không cho phép bạn chạm vào trường đó, nó chỉ là "*"

Cập nhật: hoặc trong trường hợp này sử dụng chpasswd -e "mật khẩu băm", nhưng điều đó chỉ có thể được thực hiện trực tiếp trên máy tính. Nếu bạn đang làm việc với một tập hợp các tệp chưa được triển khai cho máy (ví dụ: Máy ảo), thì chỉnh sửa trực tiếp có thể là giải pháp duy nhất của bạn.

tức là thường có một công cụ để làm những gì bạn muốn làm mà không cần chỉnh sửa / etc / bóng trực tiếp, bạn chỉ cần biết nó là gì ...


Hoặc bạn có thể thiết lập máy chủ LDAP.
Kusalananda

0

Một lý do khác bạn cần chỉnh sửa các tệp này là nếu bạn đang chỉnh sửa các tệp trong hình ảnh hệ thống tệp mà bạn sẽ khởi động trên hệ thống khác và bạn cần gỡ lỗi hệ thống đó sau khi khởi động. Ví dụ, hệ thống tập tin biểu mô MAAS được sử dụng khi không có hoa hồng hoặc trong chế độ cứu hộ.

Không bao giờ nói không bao giờ ... trừ khi bạn có ý đó.

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.