كيفية تغيير أذونات الملف على الخادم SFTP باستخدام phpseclib؟

StackOverflow https://stackoverflow.com/questions/1809040

  •  05-07-2019
  •  | 
  •  

سؤال

وحاولت $sftp->chmod('0755', "file.zip"); و$sftp->chmod('0755', "file.zip");

ولكن في كلتا الحالتين تم تعيين إذن إلى 363 بدلا من ذلك.

هل كانت مفيدة؟

المحلول

0755 و "0755" ليست نفس الشيء كما هو موضح هكذا:

<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;

ولكل ذلك، حاول إزالة علامات الاقتباس المفردة حول 0755.

وتتوقع السبب phpseclib أذونات أن تكون ممثلة كقيمة ثماني ( '0755' ويلقي إلى قيمة عشرية - ليست وثماني واحد) لأن هذه هي الطريقة التي ftp_chmod يفعل ذلك وهذا ما غرار Net_SFTP::chmod() بعد. (في الواقع، الى حد كبير كل من API SFTP phpseclib وعلى غرار بعد تمديد API FTP PHP ل)

نصائح أخرى

وفي تخمين الأذونات 1363. وبعبارة أخرى ثماني (755). انها تخمين كاملة، ولكن أود أن أقترح أن وظيفة شمود تتخذ واسطة عشري، بدلا من واحد ثماني.

ويمكنك استخدام

$sftp->chmod(0755, $file);

وأنت لا ينبغي أن أذونات مساهمة في وظيفة phpseclib chmod() كسلسلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top