777 là một sự cho phép xấu nói chung và tôi sẽ cho bạn thấy lý do tại sao.
Mặc dù nó trông như thế nào trong Sòng bạc hoặc Las Vegas, 777 không có nghĩa là giải độc đắc cho bạn. Thay vào đó, jackpot cho bất cứ ai muốn sửa đổi các tập tin của bạn. 777 (và anh em họ xấu xí 666) cho phép các quyền Đọc và Viết (và trong trường hợp 777, Thực thi) cho người khác . Bạn có thể tìm hiểu thêm về cách hoạt động của quyền truy cập tệp , nhưng tóm lại, có ba nhóm quyền: chủ sở hữu, nhóm và nhóm khác . Bằng cách đặt quyền thành 6 hoặc 7 ( rw-
hoặc rwx
) cho người khác, bạn cung cấp cho bất kỳ người dùng nào khả năng chỉnh sửa và thao tác với các tệp và thư mục đó. Thông thường, như bạn có thể tưởng tượng, điều này là xấu cho bảo mật.
Đây là ví dụ của tôi:
marco@desktop:~/Projects/AskUbuntu/20105$ cd ..
marco@desktop:~/Projects/AskUbuntu$ chmod 0777 20105
marco@desktop:~/Projects/AskUbuntu$ cd 20105/
marco@desktop:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
marco@desktop:~/Projects/AskUbuntu/20105$ touch test
marco@desktop:~/Projects/AskUbuntu/20105$ chmod 0666 test
Cho đến nay tôi đã tạo một thư mục và tạo một tệp có quyền "xấu" (777 và 666). Bây giờ tôi sẽ chuyển sang một người dùng khác và cố gắng thao tác các tệp đó.
marco@desktop:~/Projects/AskUbuntu/20105$ sudo su - malicious
malicious@desktop:~$ cd /home/marco/Projects/AskUbuntu/20105
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls
test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco 0 2011-01-04 20:33 test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ touch bad
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cat test
OVERWRITE
Là người dùng "độc hại" này, tôi có thể đặt các tệp vào thư mục và đưa văn bản vào các tệp đã tồn tại. Trong khi bên dưới, trong một thư mục có 755 và các tệp có 644, tôi có thể thấy các tệp và thư mục bên trong nhưng tôi không thể chỉnh sửa các tệp cũng như không tạo các tệp mới:
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied
Đối với quyền của Apache, bạn sẽ muốn bám vào 0755 và 0644 (AKA umask 022
) cho các thư mục và tệp tương ứng. Điều này cho phép bạn, với tư cách là chủ sở hữu của các tệp, chỉnh sửa và thao tác chúng trong khi cung cấp cho Apache mức truy cập tối thiểu cần thiết để vận hành.