ProFTPD không hoạt động bình thường nữa sau tai nạn chmod


2

Lý lịch

Sáng hôm qua tôi đã định cấu hình cài đặt WordPress trên vserver của mình thông qua SSHvà vặn vẹo như một DAU thích hợp (tất nhiên là đã đăng nhập root). :

Tôi muốn đặt pluginsthư mục 755và quên .đường dẫn. Vì vậy, tôi đã kết thúc thực hiện chmod -R 755 /*thay vì chmod -R 755 ./*.

Khi tôi nhận ra lỗi của mình, kịch bản đã chạy trong khoảng 2-3 giây, trước khi tôi đập Ctrl+C.

Như dự đoán, điều này thực sự làm rối hệ thống của tôi. Tuy nhiên, tôi đã sửa hầu hết nó với sự giúp đỡ của bạn bè. Anh may mắn có cùng vserver tại cùng một nhà cung cấp.

Tôi đã "sao chép" các quyền của tệp từ cài đặt của anh ấy bằng cách sử dụng find /* -exec stat -c "chmod %a \"%n\"" {} + >~/default_permissions.và chạy tập lệnh trên vserver của tôi.

Vấn đề

Hầu hết các hệ thống dường như hoạt động trở lại. Plesk, HTTPD, Mail, SSH. Nhưng điều duy nhất vẫn không hoạt động đúng là ProFTPD. Và tôi không thể hiểu tại sao. Tôi không thể tìm thấy bất kỳ tệp nhật ký liên quan, ngoài usr/local/psa/var/log/ftp_tls.log/usr/local/psa/var/log/xferlog. Nhưng chúng không chứa bất kỳ thông báo lỗi liên quan.

Triệu chứng

Khi tôi kết nối qua FTP thông thường, nó sẽ đóng kết nối ngay lập tức khi kết nối mà không yêu cầu tên người dùng / mật khẩu:

root@hostname:/# ftp hostname.tld
Connected to hostname.tld.
421 Service not available, remote server has closed connection

Khi tôi kết nối qua sftp, nó chỉ hoạt động khi tôi đăng nhập root, nhưng không phải là người dùng ftp bình thường.

root@hostname:/# sftp -v user@hostname.tld
Connecting to hostname.tld...
OpenSSH_5.3p1 Debian-3ubuntu7.1, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to hostname.tld [x.x.x.x] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7.1
debug1: match: OpenSSH_5.3p1 Debian-3ubuntu7.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7.1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'hostname.tld' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Next authentication method: password
user@hostname.tld's password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Transferred: sent 1424, received 1960 bytes, in 0.0 seconds
Bytes per second: sent 31175.5, received 42910.0
debug1: Exit status 1
Connection closed
root@hostname:/#

Tôi gần như chắc chắn 100% rằng điều này rất có thể là do một số tệp vẫn có quyền sai. Nhưng tôi hơi lạc lõng ở đây ... Bất kỳ trợ giúp sẽ được đánh giá cao!

Biên tập

Tôi đã thử cài đặt lại ProFTPD theo đề xuất của MariusMatutiae. Thật không may, nó đã không làm việc.

root@hostname:~# sudo apt-get install --reinstall proftpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting proftpd-basic instead of proftpd
The following packages were automatically installed and are no longer required:
  libcrypt-rijndael-perl psa11-php-fakepackage libcrypt-cbc-perl
Use 'apt-get autoremove' to remove them.
Suggested packages:
  proftpd-doc proftpd-mod-mysql proftpd-mod-pgsql proftpd-mod-ldap proftpd-mod-odbc proftpd-mod-sqlite
The following NEW packages will be installed:
  proftpd-basic
0 upgraded, 1 newly installed, 0 to remove and 90 not upgraded.
Need to get 929kB of archives.
After this operation, 2294kB of additional disk space will be used.
Get:1 ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com/ lucid-security/universe proftpd-basic 1.3.2c-1ubuntu0.1 [929kB]
Fetched 929kB in 0s (6206kB/s)
Preconfiguring packages ...
Selecting previously deselected package proftpd-basic.
(Reading database ... 99546 files and directories currently installed.)
Unpacking proftpd-basic (from .../proftpd-basic_1.3.2c-1ubuntu0.1_amd64.deb) ...
dpkg: error processing /var/cache/apt/archives/proftpd-basic_1.3.2c-1ubuntu0.1_amd64.deb (--unpack):
 trying to overwrite '/etc/pam.d/proftpd', which is also in package psa-proftpd 0:1.3.4c-ubuntu10.04.build115130528.15
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/proftpd-basic_1.3.2c-1ubuntu0.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Sau đó tôi đã thử cài đặt lại psa-proftpd, nhưng nó cũng không hoạt động.

root@hostname:~# sudo apt-get install --reinstall psa-proftpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reinstallation of psa-proftpd is not possible, it cannot be downloaded.
The following packages were automatically installed and are no longer required:
  libcrypt-rijndael-perl psa11-php-fakepackage libcrypt-cbc-perl
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 90 not upgraded.

Chỉnh sửa 2

Vấn đề được giải quyết

Tôi phát hiện ra rằng /var/log/daemon.logtệp có một mục được thêm vào mỗi lần tôi thử kết nối ftp:

proftpd[17762]: Fatal: ScoreboardFile: : unable to use '/var/run/proftpd_scoreboard': Operation not permitted on line 72 of '/etc/proftpd.conf'

Sau một chút Google'ing tôi đã tìm thấy bài đăng này: https://forums.proftpd.org/smf/index.php?topic=3516.0

Anh chàng này có cùng vấn đề như tôi. Sau khi thay đổi quyền, nó ngừng hoạt động cho anh ta.

Vì vậy, tôi lại so sánh quyền của các thư mục /var//var/run/thư mục của cả hai máy chủ và thay đổi nó trên máy chủ của tôi theo máy chủ khác ... Và bây giờ tôi có thể kết nối lại với FTP! TRẮNG! :CƯỜI MỞ MIỆNG


2
Tại sao bạn không chỉ đơn giản là apt-get install --reinstallgói proftpd của bạn? Bạn có thể đặt các tệp cấu hình sang một bên khá dễ dàng, sau đó cài đặt lại đơn giản hơn nhiều so với tìm kiếm kim trong đống cỏ khô.
MariusMatutiae

@MariusMatutiae Vâng, bạn đã đúng. Nhưng tôi không chắc nếu điều này không làm xáo trộn bất cứ điều gì liên quan đến Plesk.
Mario Werner

@MariusMatutiae Đã giải quyết xong.
Mario Werner
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.