ProFTPD ไม่ทำงานอย่างถูกต้องอีกต่อไปหลังจากเกิดอุบัติเหตุ chmod


2

พื้นหลัง

เมื่อเช้าวานนี้ฉันกำลังกำหนดค่าการติดตั้ง WordPress บน vserver ของฉันผ่านSSHและทำให้เมาเหมือน DAU ที่เหมาะสม (ถูกลงชื่อเข้าใช้rootแน่นอน) :(

ฉันต้องการตั้งค่าpluginsไดเรกทอรีเป็น755และลืม.เส้นทาง ดังนั้นผมจึงจบลงด้วยการดำเนินการแทนchmod -R 755 /*chmod -R 755 ./*

เมื่อฉันตระหนักผิดพลาดของฉันสคริปต์แล้ววิ่งไปหาเหมือน 2-3 Ctrl+Cวินาทีก่อนที่ผมจะใช้ค้อนทุบ

ตามที่คาดไว้สิ่งนี้ทำให้ระบบของฉันยุ่งมาก อย่างไรก็ตามฉันได้รับการแก้ไขส่วนใหญ่ด้วยความช่วยเหลือจากเพื่อน โชคดีที่เขามี vserver เดียวกันกับผู้ให้บริการรายเดียวกัน

ฉัน "คัดลอก" การอนุญาตไฟล์จากการติดตั้งของเขาโดยใช้find /* -exec stat -c "chmod %a \"%n\"" {} + >~/default_permissions.และเรียกใช้สคริปต์บน vserver ของฉัน

ปัญหา

ระบบส่วนใหญ่ดูเหมือนว่าจะทำงานอีกครั้ง Plesk, HTTPD, Mail, SSH แต่สิ่งเดียวที่ยังทำงานไม่ถูกต้องคือ ProFTPD และฉันไม่สามารถหาสาเหตุได้ ฉันไม่สามารถหาไฟล์บันทึกใด ๆ ที่เกี่ยวข้องนอกจากนี้และusr/local/psa/var/log/ftp_tls.log /usr/local/psa/var/log/xferlogแต่สิ่งเหล่านี้ไม่มีข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง

อาการ

เมื่อฉันเชื่อมต่อผ่าน FTP ปกติมันจะปิดการเชื่อมต่อทันทีในการเชื่อมต่อโดยไม่ต้องขอชื่อผู้ใช้ / รหัสผ่าน:

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

เมื่อฉันเชื่อมต่อผ่าน sftp จะใช้งานได้เฉพาะเมื่อฉันเข้าสู่ระบบrootแต่ไม่เหมือนกับผู้ใช้ ftp ปกติ

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:/#

ฉันเกือบ 100% แน่ใจว่านี่น่าจะเป็นเพราะไฟล์บางไฟล์ยังมีสิทธิ์ที่ไม่ถูกต้อง แต่ฉันหลงทางที่นี่เล็กน้อย ... ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!

แก้ไข

ฉันลองติดตั้ง ProFTPD ใหม่ตามคำแนะนำของ MariusMatutiae น่าเสียดายที่มันไม่ทำงาน

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)

ฉันลองติดตั้ง psa-proftpd ใหม่ แต่ก็ไม่ได้ผลเหมือนกัน

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.

แก้ไข 2

แก้ไขปัญหา

ฉันค้นพบว่า/var/log/daemon.logไฟล์มีรายการเพิ่มทุกครั้งที่ฉันพยายามเชื่อมต่อ ftp:

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

หลังจาก Google'ing เล็กน้อยฉันพบโพสต์นี้: https://forums.proftpd.org/smf/index.php?topic=3516.0

ผู้ชายคนนี้มีปัญหาแบบเดียวกันกับฉัน หลังจากเปลี่ยนการอนุญาตแล้วมันก็หยุดทำงานให้เขา

ดังนั้นฉันจึงเปรียบเทียบสิทธิ์/var/และ/var/run/โฟลเดอร์ของทั้งสองเซิร์ฟเวอร์อีกครั้งและเปลี่ยนเป็นของฉันตามเซิร์ฟเวอร์อื่น ... และตอนนี้ฉันสามารถเชื่อมต่อกับ FTP ได้อีกครั้ง! Whee! : D


2
ทำไมคุณไม่เพียงแค่apt-get install --reinstallแพ็คเกจ proftpd ของคุณ? คุณสามารถตั้งค่าไฟล์การกำหนดค่าได้ง่าย ๆ จากนั้นการติดตั้งใหม่นั้นง่ายกว่าการค้นหาเข็มในกองหญ้า
MariusMatutiae

@MariusMatutiae ใช่คุณพูดถูก แต่ฉันไม่แน่ใจว่าสิ่งนี้จะไม่ทำให้เกิดความเสียหายใด ๆ ที่เกี่ยวข้องกับ Plesk
Mario Werner

@MariusMatutiae แก้ไขแล้ว
Mario Werner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.