Tệp đầu ra được tạo bởi quá trình mysqld, không phải bởi quy trình khách hàng của bạn. Do đó tệp đầu ra phải được sở hữu bởi uid và gid của quá trình mysqld.
Bạn có thể tránh phải sudo truy cập tệp nếu bạn truy cập tệp từ quá trình dưới dạng uid hoặc gid có thể truy cập tệp. Nói cách khác, nếu mysqld tạo các tệp thuộc sở hữu của uid và gid "mysql"/"mysql", sau đó thêm tài khoản của riêng bạn vào nhóm "mysql". Sau đó, bạn sẽ có thể truy cập tệp, miễn là chế độ cho phép của tệp bao gồm quyền truy cập nhóm.
Edit:
Bạn đang xóa một tập tin trong/tmp, với một chế độ cho phép thư mục của rwxrwxrwt. Bit dính ('t') có nghĩa là bạn chỉ có thể xóa tệp nếu uid của bạn giống với chủ sở hữu của tệp, bất kể quyền trên tệp hoặc thư mục.
Nếu bạn lưu tệp đầu ra của mình vào thư mục khác không có bộ bit dính, bạn có thể xóa tệp bình thường.
đọc đoạn trích này từ trang người đàn ông cho dính (8):
thư mục STICKY
Một thư mục có 'dính 'bit được thiết lập trở thành một thư mục append-chỉ, hay chính xác hơn, một thư mục trong đó việc xóa các tệp bị hạn chế. Một tệp trong thư mục dính chỉ có thể bị người dùng loại bỏ hoặc đổi tên nếu người dùng có quyền ghi cho thư mục và người dùng là chủ sở hữu của tệp, chủ sở hữu của thư mục hoặc siêu người dùng. Tính năng này được áp dụng hữu ích cho các thư mục như/tmp phải được ghi công khai nhưng nên từ chối người dùng giấy phép để tự ý xóa hoặc đổi tên các tệp của nhau.
Nguồn
2008-10-23 23:55:35
Các tập tin được sở hữu tại "mysql"/"mysql" và modded 666. Tôi đã thêm ed bản thân mình vào nhóm mysql và tôi vẫn không thể xóa nó. –
Các quyền sở hữu và quyền trên thư mục chứa tệp là gì? –
Tôi nghĩ * những gì Bill đang nhận được là bạn phải có quyền ghi trên thư mục có chứa để có thể xóa một tập tin trong UNIX (b/c nó cập nhật danh sách dir). Vì vậy, "chgrp mysql" các thư mục và "chmod ug + rwX" nó để cung cấp cho người dùng nhóm mysql của bạn viết perms trên thư mục. – joelhardi