Truy cập không chroot
Nếu bạn không thiết lập máy chủ FTP và bạn tin tưởng người dùng sẽ đăng nhập, không nên chọc vào máy chủ của bạn quá nhiều, tôi sẽ có xu hướng cung cấp cho họ một tài khoản cho SFTP vào hệ thống.
Wiki CentOS duy trì một hướng dẫn đơn giản có tiêu đề: Thiết lập SFTP đơn giản giúp việc này không gây đau đớn.
Tôi nói rằng nó không đau vì bạn thực sự chỉ cần tạo tài khoản và đảm bảo rằng tường lửa cho phép lưu lượng SSH, đảm bảo SSH dịch vụ đang chạy và bạn đã hoàn thành khá nhiều việc.
Nếu sshd
chưa chạy:
$ /etc/init.d/sshd start
Để thêm người dùng:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
Khi bạn hoàn thành với tài khoản:
$ sudo userdel -r userX
Chroot truy cập
Mặt khác, nếu bạn muốn giới hạn người dùng này vào một thư mục được chỉ định, máy chủ SFTP đi kèm với SSH (openssh) cung cấp một cấu hình giúp điều này cũng dễ dàng kích hoạt. Đó là một công việc nhiều hơn một chút nhưng không quá nhiều. Các bước được trình bày ở đây trong hướng dẫn này có tiêu đề: Cách thiết lập Chroot SFTP trong Linux (Chỉ cho phép SFTP, không phải SSH) .
Thực hiện những thay đổi cho /etc/ssh/sshd_config
tập tin của bạn .
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Bây giờ bạn sẽ cần tạo cây thư mục chroot nơi người dùng này sẽ bị khóa.
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
Quyền sẽ giống như sau:
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
Các thư mục cấp cao nhất như thế này:
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
Đừng quên khởi động lại sshd
máy chủ:
$ sudo service sshd restart
Bây giờ tạo tài khoản userX:
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
Bạn có thể kiểm tra xem tài khoản đã được tạo chính xác chưa:
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
Khi bạn hoàn thành với tài khoản, hãy xóa nó theo cùng một cách ở trên:
$ sudo userdel -r userX
... và đừng quên xóa các thay đổi tệp cấu hình mà chúng tôi đã thực hiện ở trên, sau đó khởi động lại sshd
để kích hoạt chúng một lần nữa.