Cấp quyền truy cập cho người dùng sftp vào thư mục / var / www


12

Tôi đã tạo một người dùng và tạo thư mục nhà của anh ấy /var/www/mysite/ftpdir

Tôi cũng đã thêm mục nhập người dùng phù hợp cho người dùng này sshd_configbằng ChrootDirectory trỏ đến/var/www/mysite

Tôi đã khởi động lại sshđể chọn cái này.

Khi tôi đăng nhập bằng sftp - người dùng vẫn truy cập vào thư mục cũ của người dùng tức là /home/user

Tôi đang thiếu gì?


Làm thế nào về bạn symlink /home/userđến mục tiêu?
ish

Câu trả lời:


17

Đây là quá trình:

  1. Thêm người dùng vào nhóm: sudo usermod -aG www blubnhư trong Whats cách đơn giản nhất để chỉnh sửa và thêm tệp vào "/ var / www"?

    hoặc chỉ sử dụng sudo adduser <username> www-data

  2. Cài đặt vsftpd sudo apt-get install vsftpd
  3. Cấu hình vsftpd để truy cập từ xa: sudo nano /etc/vsftpd.confvà bên trong tập tin

    chroot_local_user=YES
    

    và đảm bảo điều này được nhận xét:

    #chroot_list_enable=YES
    

    theo tài liệu .

  4. Khởi động lại nsftp: sudo service vsftpd restart
  5. Định cấu hình thư mục chính của người dùng vào thư mục web (không phải trong /home):

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Cấu hình ssh chroot

    sudo nano /etc/ssh/sshd_config
    

    thêm phần sau vào cuối:

    Subsystem  sftp  internal-sftp
    Match user <username>
        ChrootDirectory /var/www/site
        ForceCommand internal-sftp
    AllowTcpForwarding no
    

    và đảm bảo rằng tiếp tục trong tệp mà điều này được nhận xét (tức là trước khi bạn vừa thêm)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. Khởi động lại ssh

    sudo service ssh restart
    
  8. Thay đổi quyền cho apache:

    chown root:root /var/www
    chown root:root /var/www/site
    chmod 755 /var/www
    

    Như trong các tài liệu ở đây .

  9. Đảm bảo rằng thư mục của bạn có quyền truy cập dữ liệu www

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    

2
Tôi đã làm theo các hướng dẫn này, nhưng cuối cùng tôi đã bị từ chối khi tôi thêm các dòng này Hệ thống con sftp Internal-sftp Kết hợp người dùng <username> ChrootDirectory / var / www / site ForceCommand Internal-sftp AllowTcpForwarding no
Ata

1
Tôi cũng gặp vấn đề tương tự với Ubuntu 14.04
torayeff

Tôi có cùng một vấn đề quá!
maxisme 17/03/2015

4
Làm thế nào đến Bước 9 bạn chown root:root /var/www/sitechỉ có thể hoàn nguyên nó trở lại sudo chown -R www-data:www-data /var/www/siteBước 10 là điều này có chủ ý?
JohnnyQ

Điều này không hiệu quả với tôi
Linga

2

Nếu cuối cùng bạn nhận được lỗi từ chối kết nối thì hãy đảm bảo rằng "Hệ thống con sftp Internal-sftp" được đặt sau "UsePAM yes" . Nếu không thì cập nhật và khởi động lại ssh và nó đã hoạt động.


0

Tôi có một phương pháp đơn giản và nó hiệu quả với tôi cho apache.

sudo useradd -d /var/www demo_user -g www-data
sudo passwd demo_user
sudo service ssh restart

Đó là trong trường hợp bạn vẫn phải đối mặt với vấn đề sử dụng quyền chmodchowngiải quyết chúng theo nhu cầu của bạn.

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.