quyền sở hữu hoặc chế độ xấu cho thành phần thư mục chroot


57

Tôi đã tạo người dùng MY_USER. Đặt thư mục nhà của anh ấy thành / var / www / RESTRICTED_DIR, đây là đường dẫn anh ấy nên được giới hạn. Sau đó, tôi chỉnh sửa sshd_config và đặt:

Match user MY_USER
  ChrootDirectory /var/www/RESTRICTED_DIR

Sau đó tôi khởi động lại ssh. Đã tạo chủ sở hữu MY_USER (và chủ sở hữu nhóm) của RESTRICTED_DIR và sửa đổi nó thành 755. Tôi nhận được

Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER

Nếu tôi xóa 2 dòng khỏi sshd_config, người dùng có thể đăng nhập thành công. Tất nhiên nó có thể truy cập tất cả các máy chủ mặc dù. Có vấn đề gì vậy? Tôi thậm chí đã cố gắng điều khiển RESTRICTED_DIR để root (khi tôi đọc ở đâu đó rằng ai đó đã giải quyết vấn đề tương tự khi thực hiện nó). Không may mắn..

Câu trả lời:


73

Từ các mantrang :

ChrootDirectory
Chỉ định tên đường dẫn của thư mục để chroot (2) đến sau khi xác thực. Tất cả các thành phần của tên đường dẫn phải là các thư mục thuộc sở hữu gốc không thể ghi được bởi bất kỳ người dùng hoặc nhóm nào khác . Sau chroot, sshd (8) thay đổi thư mục làm việc thành thư mục chính của người dùng.

Tôi đoán là một hoặc nhiều thư mục trên đường dẫn không đáp ứng các yêu cầu đó (sự nghi ngờ của tôi là wwwdo người dùng web của bạn sở hữu hoặc có thể ghi, không phải root).
Quay trở lại và làm theo hướng dẫn, đảm bảo rằng các yêu cầu ở trên in nghiêng được đáp ứng.


Điều này đang khiến tôi phát điên. Tôi đã "chown root: root -R / var / www"; "Chmod 775 -R / var / www /"; "usermod -a -G root www-data". Nhưng tôi vẫn không thể đăng nhập bằng MY_USER
MultiformeIngegno

1
Yêu cầu là trên Components Path ( /, /var, /var/www, và /var/www/RESTRICTED_DIRtất cả phải đáp ứng các yêu cầu bảo mật ở trên). Đó là một chroot thực sự (xem lại trang man) - thư mục chính của người dùng của bạn cần tồn tại trong chroot , vì phải /bin& tất cả những thứ khác mà người dùng của bạn sẽ cần ...
voretaq7 28/03 '

2
Đồng ý! Giải quyết. Tôi đặt thư mục chroot lên một cấp. Sau đó, tôi đã cho 777 perms vào chroote_dir ban đầu. Nó hoạt động :)
MultiformeIngegno

1
Mặc dù trang này nói gì và ngay cả khi nhóm được đặt thành 'root', tôi đã phải đặt quyền gw trước khi nó hoạt động (Ubuntu 14.04). Trang chủ phải nói Tất cả các thành phần của tên đường dẫn phải là các thư mục thuộc sở hữu gốc không thể ghi được bởi bất kỳ người dùng nào khác hoặc bất kỳ nhóm nào sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
mmell

3
Tôi biết điều này khá cũ, nhưng thay vì /var/wwwtrực tiếp sửa đổi các quyền cho đường dẫn, điều này có thể phá vỡ apache, bạn nên đặt thư mục sftp của mình vào một đường dẫn khác, sau đó sử dụng ánh xạ URL trong Apache để trỏ đến thư mục khác . Kiểm tra tài liệu ở đây httpd.apache.org/docs/2.4/urlmapping.html bên dướiFiles Outside DocumentRoot
Daniel

32

Thư mục ChrootDirectory phải được sở hữu bởi root và có chế độ 755:

sudo chown root:root /var/www/RESTRICTED_DIR
sudo chmod 755 /var/www/RESTRICTED_DIR

Ok, bây giờ tất cả các tệp vào /var/www/RESTRICTED_DIRphải thuộc sở hữu MY_USER, phải thuộc về www-datanhóm và có chế độ 775 để cho phép quyền của nhóm, như thế này:

sudo usermod -a -G www-data MY_USER
sudo chown MY_USER:www-data /var/www/RESTRICTED_DIR/*
sudo chmod 775 -R /var/www/RESTRICTED_DIR/*

LƯU Ý: Ghi nhớ là một cách thực hành tốt chỉ cho phép truy cập vào thư mục htdocs nếu bạn đang định cấu hình apache.


3
Khá chắc chắn rằng nó sẽ sudo usermod -a -G www-data MY_USERlà nhóm nên đến sau-G
sMstyle

Điều này hoạt động nhưng tôi không thể tải các tệp mới vào thư mục, tôi chỉ có thể sửa đổi các tệp được tạo trước đó với tài khoản root và quyền sở hữu của người dùng.
dlopezgonzalez

3

Sau một số khắc phục sự cố ngày hôm nay, tôi nhận ra rằng root cũng phải có khả năng ghi vào các thư mục.

Những điều sau đây không hoạt động:

$ ls -ld /mnt/synology03/files/
dr-xr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
$ ls -ld /mnt/synology03
drwxr-xr-x 7 root root 4096 Oct  1 21:26 /mnt/synology03
$ ls -ld /mnt
drwxr-xr-x 6 root root 4096 Feb  8 10:01 /mnt
$ ls -ld /
drwxr-xr-x 24 root root 4096 Jan 14 09:22 /

Ngay sau khi tôi sửa cái này, chiếc chroot của tôi bắt đầu hoạt động.

$ sudo chmod 755 /mnt/synology03/files/
$ ls -ld /mnt/synology03/files/
drwxr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
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.