Làm cách nào để đặt bình luận trong tập tin / etc / Shadow của tôi?


10

Tôi đang chạy qua một số nâng cấp hệ thống và trình quản lý gói của tôi đang hiển thị các thay đổi giữa dòng ngược / etc / bóng và của tôi.

Tôi muốn đặt một số ý kiến ​​trong tập tin cho lần tiếp theo điều này xảy ra. Làm thế nào tôi có thể hoàn thành việc đưa ý kiến ​​vào tệp / etc / bóng mà không phá vỡ mọi thứ.

Tôi nghĩ rằng "#" mặc định có thể sẽ làm điều đó, nhưng nếu tôi gặp lỗi này, việc khởi động lại sẽ không thú vị.


Sử dụng etckeeper và ghi nhận xét của bạn trong các thông điệp cam kết.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


14

Trên các hệ thống Linux sử dụng GNU libc, các dòng bắt đầu bằng #được bỏ qua /etc/shadow. Việc phân tích cú pháp được thực hiện bởi __fgetspent_r()mã nguồn của nó xử lý rõ ràng (và tài liệu) hành vi này.

Vì vậy, trên đại đa số các hệ thống Linux, bạn có thể bình luận dòng trong /etc/shadowvới #mà không gây ra vấn đề.

Thật không may, các bình luận bị bỏ khi /etc/shadowđược cập nhật, ví dụ bởi passwd; vì vậy việc lưu trữ các bình luận không thực sự an toàn (theo quan điểm của các bình luận).

Đây có nghĩa là bạn cần phải tìm một nơi khác để lưu trữ bình luận của bạn: hai gợi ý tốt là dr01 's ý tưởng của việc sử dụng /etc/shadow.README, hoặc tốt hơn là Gilles ' ý tưởng của việc sử dụng bài viết cam kết với etckeeper .


Chỉ cần về bất kỳ mục không hợp lệ xuất hiện để bị mất với passwd. Tôi đã thử sử dụng một mục nhập người dùng không có thật, hoặc một mục hợp lệ và thêm các ký tự vào mục cuối cùng, nhưng tất cả đều vô ích.
Otheus

7

Mỗi dòng /etc/shadowđược coi là một hồ sơ người dùng. Như được viết bởi Stephen Kitt, người đã xem xét mã nguồn của trình phân tích cú pháp, bạn có thể đặt các dòng bắt đầu bằng các #nhận xét trong tệp hoặc thậm chí các dòng trống và chúng sẽ bị bỏ qua.

Tuy nhiên, tôi chưa bao giờ thấy một /etc/shadowtập tin với ý kiến ​​về nó. Có vẻ như đó không phải là thông lệ và vì một lý do rất chính đáng: chỉnh sửa nó bằng tay rất không được khuyến khích . Vì lý do này, tôi muốn đề nghị bạn tạo một /etc/shadow.READMEtệp thay vì lưu ý kiến ​​của bạn. Ghi nhớ chmod 000tệp để tránh người dùng không phải người dùng rình mò.


Vậy tại sao 000? Sở hữu root:rootvà sau đó ug=r,o=không đủ?
0xC0000022L

000 là quyền của /etc/shadow(ít nhất là trên Red Hat, tôi đã không tìm trong các bản phát hành khác) và đảm bảo rằng chỉ root mới có quyền truy cập vào tệp. 440, như bạn đề xuất, làm cho tập tin có thể đọc được bởi một người dùng thông thường nếu anh ấy / cô ấy tham gia do nhầm lẫn nhóm gốc. Trên một máy được quản lý đúng cách và cho tất cả các mục đích thực tế, chúng có giá trị như nhau. Tôi nghĩ rằng 000 tốt hơn truyền đạt ý nghĩa của "tệp quan trọng bảo mật - giữ tay", nhưng đó chỉ là ý kiến ​​của tôi.
dr_

@ dr01: không chắc chắn làm thế nào một người dùng bình thường sẽ tham gia nhóm gốc mà không có siêu người dùng làm điều đó. Và nếu một siêu người chơi mắc lỗi như vậy, tất cả các cược đã tắt. Ví dụ, rất có thể người đó đã là một sudoer và có thể truy cập tệp bất kể. Tôi coi đó là bảo mật bởi sự tối nghĩa, nhưng YMMV.
0xC0000022L

Đó chính xác là những gì tôi muốn nói với "người dùng thông thường tham gia do nhầm lẫn nhóm gốc". Trường hợp của tôi là một siêu người dùng có thể (mặc dù cơ hội rất mong manh) đã đưa anh ấy / cô ấy vào nhóm gốc do nhầm lẫn. Trong khi quyền 000 sẽ chỉ cho phép root truy cập tệp. Tôi nhận ra rằng đó có thể là một trường hợp cạnh, nhưng tôi cũng xem xét cách này sạch sẽ hơn nhiều vì tệp nhận xét kết thúc có cùng quyền như /etc/shadow.
dr_

3

Tất nhiên bạn có thay đổi của bạn /etc/shadow. Bạn không muốn thông tin tài khoản /etc/shadowtrên máy chủ của mình - mật khẩu băm, hết hạn tài khoản, v.v. - là bản sao theo từng byte của dòng ngược /etc/shadow.

Và tôi hy vọng bạn không ghi đè lên hiện tại của bạn /etc/shadowbằng bất cứ điều gì bạn nhận được từ nguồn dữ liệu ngược dòng của mình.

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.