Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Gặp vấn đề về permission

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gặp vấn đề về permission

    Mình mới cài Apache/2.2.8
    Mình cài thêm PHP 5.2.6 và MySQL 5
    Trên centos 5
    Trong file httpd.conf mình chỉnh User + Group của apache = nobody (Default = apache)

    Mình add thêm 1 user : vd: test thuộc nhóm nobody
    Khi mình dùng ftp upload file thì file đó thuộc quyền của test và có group là nobody
    Nhưng khi mình dùng code PHP tạo một trang upload thì khi upload file , file đó lại thuộc quyền của nobody, group cũng là nobody , nếu đặt User + Group của apache nhưng thế nào thì file upload lên có permission như thế.
    Nhưng mình xem một sô server hosting khác thì không xảy ra việc này. dùng ftp và script để upload thì file có permission như nhau.

    Ai có thể giúp mình làm như các dịch vụ hosting không ?

    Cảm ơn trước nhé

  • #2
    Originally posted by longvnit View Post
    Mình mới cài Apache/2.2.8
    Mình cài thêm PHP 5.2.6 và MySQL 5
    Trên centos 5
    Trong file httpd.conf mình chỉnh User + Group của apache = nobody (Default = apache)

    Mình add thêm 1 user : vd: test thuộc nhóm nobody
    Khi mình dùng ftp upload file thì file đó thuộc quyền của test và có group là nobody
    Nhưng khi mình dùng code PHP tạo một trang upload thì khi upload file , file đó lại thuộc quyền của nobody, group cũng là nobody , nếu đặt User + Group của apache nhưng thế nào thì file upload lên có permission như thế.
    Nhưng mình xem một sô server hosting khác thì không xảy ra việc này. dùng ftp và script để upload thì file có permission như nhau.

    Ai có thể giúp mình làm như các dịch vụ hosting không ?

    Cảm ơn trước nhé
    Khi dùng FTP thì quyền của file upload gán vào user upload (test).
    Khi dùng qua PHP shell thì quyền file upload gán theo quyền của Apache nên nó thành nobody.

    Thử cái này xem nhé.
    [PHP]
    <?php chmod( $uploaded_file , 0644 );?>
    [/PHP
    Never Gone - Never Far

    Comment


    • #3
      không phải server nào cũng cho mình chmod đâu vì thường 1 trong 2 account (ftp hoặc apache) là owner của file đó, vã lại cho change-mode lung tung làm sao admin quản nỗi. những hàm hệ thống chắc chắn server sẽ cấm.

      Tui thấy thông thường các server mần như thế này:
      1. Cấp 1 account ftp cho site-admin, gán owner của cả cái host (thường là virtual host) cho chú đó, gán group là apache. Set quyền x44 cho thư mục host. Tài khoản ftp này phải có home là thư mục host (để cho ftp bị limit trong đó)
      2. Vì ftp-account là owner nên họ có thể dùng ftp-client đề changemode các file theo nhu cầu, ví dụ như các thư mục cho phép thêm/xoá/sửa thì change thành x7x.

      Vì thế, họ start apache bằng tài khoản apache thuộc group apache (chức không phải là nobody).

      Nhưng làm như vậy có cái nguy hiểm là khi ai đó up một file (shell chẳng hạn) có thể ../../../ đi tùm lum. Như vậy cần phải cấu hình thêm open_base_dir trong httpd.conf của virtual-host đó, cho limit ở thư mục host và thư mục /tmp. Nhưng nếu gặp ai cao tay một tí cũng vẫn vượt qua được như thường. Tui thấy có mấy tay kết hợp giữa chroot và hash thư mục host của tất cả các khách hàng ra thành một chuỗi tào lao nào đó, thế là chẳng đoán được.

      Bạn nên xem thêm các forum về security, chú ý các chổ local-hack. Nếu bạn cung cấp dịch vụ hosting, cần xem thêm security của php.

      Comment

      Working...
      X