Không thể xóa tệp, ngay cả khi chạy bằng root


48

Tôi đang trong quá trình di chuyển một máy từ RHEL 4 sang 5. Thay vì thực sự nâng cấp, chúng tôi đã tạo một VM mới (cả hai máy đều ở trên đám mây) và tôi đang trong quá trình sao chép dữ liệu giữa hai máy.

Tôi đã xem qua tệp sau đây mà tôi cần xóa khỏi máy mới nhưng không thể, ngay cả khi chạy bằng root:

-rw-------  1 2003 2003  219 jan 11 14:22 .bash_history

Tập tin này nằm trong / home / USER /, trong đó USER là tài khoản của anh chàng đã chế tạo máy. Anh ta không có tài khoản trên máy cũ, vì vậy tôi đang cố xóa thư mục nhà của anh ta để máy mới kiểm tra lại máy cũ, nhưng tôi gặp phải lỗi sau:

rm: ne peut enlever `.bash_history': Opération non permise

(dịch từ tiếng Pháp: không thể xóa XXX, không được phép hoạt động)

Tôi đã thử sử dụng lệnh sau nhưng điều này không có gì khác biệt:

chattr -i .bash_history

Là lựa chọn duy nhất để tạo người dùng với ID 2003, hay có cách nào khác xung quanh nó không?


Biên tập

Tôi đã thử sử dụng rm -f, và tôi nhận được cùng một lỗi. Tôi nhận được cùng một loại lỗi sử dụng chmod 777đầu tiên.

Tôi đã có thể vào chownthư mục chứa tệp tôi đang cố xóa, vì vậy đó là:

drwx------ 2 root root 1024 jan 24 15:58 USER

Chỉnh sửa2

Chạy lsattrlệnh theo đề xuất của Angus đã cho đầu ra sau:

-----a------- USER/.bash_history
------------- USER/..
------------- USER/.

Tệp được gắn cờ là chỉ phụ lục - khi thay đổi cờ này bằng cách chattr -a .bash_historytôi có thể xóa tệp.

Câu trả lời:


54

Kiểm tra các quyền của thư mục . Để xóa một tập tin bên trong nó, bạn nên ghi nó

chmod ugo+w .

và không bất biến hoặc chỉ bổ sung:

chattr -i -a .

Kiểm tra với ls -lalsattr -a.


nhờ .. Tôi đã phải chạy trên các tập tin * tên mà didnt lên không sạch sau khi yum erase ràng buộc trong Centos 7 tối thiểu
onxx

Thật không may, vì /vendor/laracasts/generators/.git/objects/pack/khi tôi chạy chattr -i -a ., tôi nhận được chattr: Inappropriate ioctl for device while reading flags on .và tôi không thể rm.idxtập tin phiền phức mà Nhà soạn nhạc để lại (vì "Hoạt động không được phép").
Ryan

Ahhh, một cách giải quyết đối với tôi là thoát ra khỏi VirtualBox Vagrant VirtualBox trở lại Windows 10 (vẫn sử dụng Git Bash) và rmcác tệp từ đó. Sau đó composer updateđã có thể hoàn thành.
Ryan

chattr -i -ađã làm việc.
xji

9

Tôi đã có một vấn đề tương tự nhưng đã thử cả hai quyền và chattr trước đây nhưng không có kết quả. Root trong Terminal. CD vào thư mục.

Tuy nhiên, điều làm việc cho tôi là kiểm tra quyền của thư mục nơi chứa tệp rắc rối - nếu ok tiến hành:

chmod ugo+w filename

Điều này thất bại - sau đó:

chattr -i -a filename 

đã được chấp nhận - sau đó

chmod ugo+w 

đã được chấp nhận

rm filename

và nó đã biến mất

Fedora 25 trên máy trạm hp.


'chmod ugo + w filename "hoàn toàn làm được điều đó cho tôi
Alfishe

1

'sudo' có thể chạy lệnh 'rm' bằng cách sử dụng cùng một user.group

LƯU Ý : không chắc chắn nếu điều này cũng sẽ làm việc cho các id như bạn có.

Thí dụ:

ls /path/to/dir_being_deleted
  drwxrwxrwx 2 nfsnobody nfsnobody   4096 Mar  8 06:55 .
  drwxrwxrwx 7 nfsnobody nfsnobody   4096 Mar  8 06:57 ..
  -rwxrwxrwx 1 nfsnobody nfsnobody      0 Mar  8 06:55 filename.txt

sudo -u nfsnobody -g nfsnobody rm -rf /path/to/dir_being_deleted
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.