Root có nên sở hữu tập tin trong thư mục nhà (linux) của tôi không?


3

Câu hỏi này bắt đầu hỏi tại sao tập tin lịch sử của tôi không hoạt động đúng. Sau đó, tôi nhận thấy nó đã -rw------- 1 root rootvà chưa được cập nhật kể từ 2012-09-11. Tôi đã thay đổi quyền sở hữu, vấn đề đã được sửa.

Nhưng bây giờ tôi thấy một số tệp khác được sở hữu bởi root:

.gitconfig
.pearrc
.viminfo

Tôi có thể thay đổi chúng một cách an toàn để được sở hữu bởi người dùng bình thường của tôi chứ không phải root không? Tôi đang gãi đầu cố gắng giải quyết nếu có nhược điểm, hoặc hậu quả bảo mật.

Mất bảy tuần lịch sử thực sự khá đau đớn, bởi vì tôi dựa vào nó rất nhiều (ví dụ để nhắc lại lần cuối tôi đã làm một kho lưu trữ). Có hợp lý không khi thiết lập một công việc định kỳ để gửi email cho tôi nếu nó tìm thấy bất kỳ tệp nào trong thư mục nhà của tôi thuộc sở hữu của bất kỳ ai khác ngoài tôi? Rephrased: có bao giờ một lý do tốt để root sở hữu một tập tin trong thư mục nhà của tôi?

CẬP NHẬT: Cảm ơn các phản hồi cho đến nay. Tôi thấy các tập tin thuộc sở hữu gốc có thể được đưa vào đó để làm gì đó trong một phiên sudo. Cốt lõi của câu hỏi của tôi là: Tôi có thể luôn luôn coi đó là một lỗi cần sửa không? Hoặc có bao giờ một lý do hợp lệ để để lại một tập tin sở hữu gốc trong thư mục nhà của tôi một khi tôi nhận thấy nó? Cảm ơn!


Trả lời tốt câu hỏi đầu tiên của bạn (trong tiêu đề), các tệp cần phải được sở hữu bởi ai đó và các chương trình có thể tạo các tệp theo rootngười dùng, do đó được sở hữu bởi root. Điều này cũng trả lời câu hỏi cuối cùng, vì thường các chương trình chỉ có thể được cài đặt bằng root (tức là sử dụng sudo), và do đó, tạo tập tin cấu hình và không có gì được tạo trong khi vẫn ở "sudo"
Sylvester the Cat

Câu trả lời:


5

Root thường không cần phải sở hữu các tập tin trong thư mục nhà của bạn. Đó là một khái quát của khóa học. Như đã được đề cập trong các câu trả lời và nhận xét khác, các tệp có thể được sở hữu bởi root nếu chúng được tạo hoặc sửa đổi bởi các chương trình chạy dưới sudo.

Để liệt kê các tệp được sở hữu bởi root hoặc thuộc nhóm gốc, hãy thử chạy liệt kê tất cả các tệp có thông tin chủ sở hữu của chúng trong một thiết bị đầu cuối và lấy các dòng có chứa "root" : ls -al | grep root.

Trên máy của tôi, trong tài khoản người dùng thông thường của tôi, tôi đã có một vài tệp và thậm chí một thư mục (.compiz-1 /) hiển thị là sở hữu của root, vì vậy nó khá phổ biến. Nhìn vào và bên trong các tệp đó - bạn có thể cần phải làm điều này với quyền root - tôi có thể đoán đúng về cách họ đến đó. Một số trong số chúng là các tệp nhật ký từ các chương trình tôi đã thực hiện bằng cách sử dụng sudo program. Hãy nhớ rằng, sử dụng sudo chạy chương trình với quyền root nhưng tiếp tục $HOMEtrỏ đến thư mục chính của bạn. Việc sử dụng gksuhoặc kdesucho các chương trình GUI cũng làm như vậy, nhưng cũng đảm bảo môi trường đồ họa sử dụng các cài đặt của bạn (đó là một phần lý do tại sao bạn không sử dụng sudo cho chúng).

Thư mục .compiz-l / dường như là bản sao lưu của .compiz /, thuộc sở hữu của người dùng của tôi. Tôi đoán là tại một số thời điểm tôi đã chạy một bản nâng cấp hoặc đã làm một cái gì đó khác để kích hoạt bản sao lưu các cài đặt Compiz là root và bây giờ tôi có thể xóa các tệp đó. Nếu nghi ngờ, chỉ cần di chuyển hoặc đổi tên tệp / thư mục và xem điều gì xảy ra sẽ giúp đăng xuất / đăng nhập hoặc chạy (các) chương trình mà bạn nghĩ sử dụng chúng.

Hãy xem các tệp bạn đã liệt kê và so sánh chúng với các tệp tương tự trên máy của tôi.

-rw-r--r-- 1 henrik henrik 211 apr  9  2011 .gitconfig

Tệp này rất có thể thuộc quyền sở hữu của người dùng, không có quyền truy cập ghi vào bất kỳ ai khác, vì rõ ràng đây là tệp cấu hình cho mỗi người dùng. Nếu root sở hữu tệp này và bạn không có quyền truy cập ghi, bạn sẽ phải chạy git với quyền root để có thể cập nhật cấu hình git toàn cầu của mình, điều này không thuận tiện. Tôi không bận tâm những người khác đã đọc quyền truy cập vào tệp này vì nó không chứa bất cứ điều gì bí mật, chỉ có tên, email của tôi và một vài tùy chọn.

-rw-r--r-- 1 root root 143 dec 17  2011 .pearrc

Tệp này cũng là một tệp cấu hình, nhưng không phải là thứ tôi thường sử dụng trực tiếp từ tài khoản người dùng của mình vì nó thuộc về dự án PEAR của PHP. Vì dù sao tôi cũng phải cài đặt các phần mở rộng PHP sudo, tệp này cũng có thể được sở hữu bởi root nên tôi không vô tình làm hỏng nó.

-rw-rw-r-- 1 henrik henrik 30709 nov  7 00:29 .viminfo

Đây là tệp lịch sử của Vim, chứa nhật ký của hầu hết mọi thứ bạn đã thực hiện trong Vim để có thể khôi phục trạng thái dễ dàng. Nếu nó không thuộc sở hữu hoặc ít nhất là có thể ghi được bởi bạn, tôi nghi ngờ Vim sẽ có thể cập nhật nó.

Nói chung, có, các tập tin sở hữu root trong thư mục chính của bạn là một sai lầm, nếu chúng được sử dụng bởi các chương trình bạn thường chạy mà không phải là root. Thậm chí có thể trở nên khó thực hiện sao lưu toàn bộ các tệp cấu hình trong thư mục chính của bạn nếu các tệp không thuộc sở hữu hoặc bạn có thể đọc được.


2

Bạn đã sử dụng sudo để sao chép các tập tin trước đó? Điều đó có thể giải thích tại sao những tập tin đó được sở hữu bởi root.

Thông thường, các tập tin / thư mục dưới / home / nên thuộc về người dùng.

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.