chown thay đổi đệ quy quyền


34

Tôi đã chạy lệnh chown trong một thư mục:

chown -R user:user {.,}*

Các {.,}*được sử dụng với mvcpbao gồm cả các tập tin ẩn và được liệt kê. Bây giờ lệnh này đã đi qua và thay đổi hai tệp đó trong thư mục của tôi, nhưng tôi phải ngắt nó để dừng lại kể từ khi nó tiếp tục. Bây giờ tôi sợ nó đã biến mất và thay đổi quyền trên các tệp và thư mục khác, vì nó không chấm dứt.


Câu trả lời:


46

Bằng cách sử dụng {.,}*, bạn bao gồm cả ./../. Cùng với -Rtùy chọn, chowncuộc gọi của bạn sắp duyệt toàn bộ hệ thống tập tin của bạn (và những người khác, có thể được gắn kết), sẽ đi qua ../. Với các lệnh khác, lỗi nhỏ này có thể khá nguy hiểm, nhưng tin tôi đi, bạn không phải là người đầu tiên và bạn sẽ không phải là người cuối cùng ...

Vì thao tác này khá nặng, chowncuộc gọi của bạn bị treo một lúc, vì nó có rất nhiều tệp để xử lý. Tôi khuyên bạn nên quay lại thư mục nơi bạn đã thực hiện cuộc gọi và quay lại liên tục /để xem những thay đổi đã được thực hiện. Bạn có thể áp dụng cách khắc phục nhanh:

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

Trên Ubuntu, /homethư mục được trao cho người dùng (admin / sudo) đầu tiên được đăng ký trên hệ thống. Nếu bạn là người dùng duy nhất, bạn có thể muốn làm:

chown you:yourgroup /home -R

Tuy nhiên, một đơn giản chmod 755trên /homelà đủ, ngay cả khi nó thuộc về root.

Có một cái nhìn nhanh trực tiếp /(bao gồm cả các quyền gốc, ls -ld /) cũng sẽ là một nơi tốt đẹp để bắt đầu. Tôi đề nghị bạn đảm bảo rằng nó /thuộc về root, với bộ quyền 755.

Nếu bạn đã từng chownđặt quyền sở hữu rất cụ thể (người dùng không phải là bạn hoặc root, một nhóm hiếm, ...), bạn có thể muốn sử dụng findđể tìm chowncác tệp -ed.

find / -user {username}
find / -group {groupname}

Thật không may, không có những thứ như undonhững gì bạn đã làm. Linux không tự nhiên theo dõi các hoạt động "thông thường" này.

Để biết thêm thông tin về những gì bạn đang cố gắng đạt được, hãy xem câu hỏi SuperUser này .


Thư mục gốc của tôi có vẻ là tốt. Nó thuộc sở hữu của root.
nicoX

Bạn phải giết chownđúng giờ, nhưng tiếp tục kiểm tra, đi từ thư mục bạn đã thực hiện chown, đến thư mục gốc.
John WH Smith

Có phải vấn đề ở đây là tôi đã sử dụng cờ -R? Và làm thế nào bạn có thể thay đổi chủ sở hữu trong một lệnh cho cả các tệp bị ẩn và được liệt kê.
nicoX

2
Xem liên kết tôi đã thêm vào cuối câu trả lời của tôi. Các -Rlà vấn đề, kể từ khi bạn đi một cách đệ quy qua ..là tốt, mà cuối cùng dẫn bạn thay đổi toàn bộ cây tập tin từ /deep/directory/where/you/chownedđến /.
John WH Smith
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.