Linux SSHPHP Tạo tập tin | SSH không thể xóa (cho phép từ chối)
tôi có thể tạo một tập tin trong php sử dụng
if (!is_dir(DIR_FILE))
mkdir(DIR_FILE, 0777);
$filename = DIR_FILE . $id . '.txt';
$handle_cf = fopen($filename, 'a');
fwrite($handle_cf, $data . "\n");
fclose($handle_cf);
chmod($filename, 0777);
chown($filename, "usr111"); // usr111 = username
chgrp($filename, "usr111"); // usr111 = group that is also attached to apache
Các tập tin được các điều khoản sau đây.
-rwxrwxrwx 1 apache apache 1447 Apr 4 12:48 D.txt
-rwxrwxrwx 1 apache apache 1447 Apr 4 12:48 E.txt
tuy nhiên khi tôi cố xóa tệp, trong tài khoản người dùng thông thường (usr111). Tôi nhận được lỗi sau đây
[[email protected] session]$ rm D.txt
rm: cannot remove `D.txt': Permission denied
LƯU Ý: Tôi có thể xóa tệp dưới gốc.
FIX FOUND! mặc dù tôi đã sử dụng cài đặt chế độ trên mkdir cho php. Đối với một số lý do này không được làm việc. Tôi đã thêm phần sau đây.
if (!is_dir($dir)) {
mkdir($dir, 0777);
chmod($dir, 0777);
}
các điều khoản trên thư mục tập tin này là trong là gì? –
Nếu bạn đăng nhập bằng tài khoản người dùng thông thường, PHP hoặc đúng hơn Apache là chủ sở hữu tệp và bạn sẽ không thể xóa nó trừ khi nó có quyền cho mọi người làm điều đó. Nếu không, nếu bạn đã đăng nhập bằng root, bạn sẽ không có vấn đề gì. – Francisc
+ MarcB drwxr-xr-x 2 apache apache 4096 Apr 4 12:48 phiên – RichardW11