Le problème
"Les sessions non anonymes doivent utiliser le chiffrement" se produit lors de l'exécution de la commande curl en tant qu'utilisateur root :
# curl -v -k --ftp-ssl --ftp-pasv ftp://192.168.X.X:990/ --user hcpa:XXX * About to connect() to 192.168.X.X port 990 (#0) * Trying 192.168.X.X... connected * Connected to 192.168.X.X (192.168.X.X) port 990 (#0) < 220 FTP SERVER INFOVALMER. > USER hcpa < 530 Non-anonymous sessions must use encryption. * Access denied: 530 * Closing connection #0 curl: (67) Access denied: 530
Cependant, cela fonctionne lors de l'exécution de la même commande curl en tant qu'utilisateur non root :
# exit logout
# su - testuser $ curl -v -k --ftp-ssl --ftp-pasv ftp://192.168.X.X:990/ --user hcpa:XXX * About to connect() to 192.168.10.1 port 990 (#0) * Trying 192.168.X.X... connected * Connected to 192.168.X.X (192.168.X.X) port 990 (#0) < 220 FTP SERVER INFOVALMER. > AUTH SSL < 234 Proceed with negotiation. * Initializing NSS with certpath: /etc/pki/nssdb * warning: ignoring value of ssl.verifyhost * skipping SSL peer certificate verification * NSS: client certificate not found (nickname not specified) * SSL connection using SSL_RSA_WITH_3DES_EDE_CBC_SHA * Server certificate: * subject: ,CN=ftp-infovalmer,OU=VALORADOR,O=INFOVALMER,L=BOGOTA,ST=CUNDINAMARCA,C=CO * start date: sep 10 22:11:55 2015 GMT * expire date: sep 09 22:11:55 2018 GMT * common name: ftp-infovalmer * issuer: @ ,CN=ftp-infovalmer,OU=VALORADOR,O=INFOVALMER,L=BOGOTA,ST=CUNDINAMARCA,C=CO > USER hcpa < 331 Please specify the password. > PASS XXX < 230 Login successful.
La solution
Ajouter $LD_LIBRARY_PATH variable d'environnement dans /root/.bash_profile .
/usr/bin/curl recherche le répertoire /apps/MATLAB/v81/bin/glnxa64/ lors de la recherche de la bibliothèque libcurl.so.4 :
# ldd /usr/bin/curl linux-vdso.so.1 => (0x00007fffc9f7d000) libcurl.so.4 => /apps/MATLAB/v81/bin/glnxa64/libcurl.so.4 (0x00007f291de7b000) <----- libidn.so.11 => /lib64/libidn.so.11 (0x0000003201600000) libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00000033afc00000) librt.so.1 => /lib64/librt.so.1 (0x00000033ab400000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00000032bba00000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00000032bc200000)
Dans des circonstances normales, /usr/bin/curl est censé rechercher le répertoire /usr/lib64/ lors de la recherche de la bibliothèque libcurl.so.4 :
# ldd /usr/bin/curl linux-vdso.so.1 => (0x00007fff8dbe1000) libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00000033ac400000) <----- libidn.so.11 => /lib64/libidn.so.11 (0x0000003201600000) libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00000033afc00000) librt.so.1 => /lib64/librt.so.1 (0x00000033ab400000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00000032bba00000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00000032bc200000)
1. L'ajout de la variable d'environnement $LD_LIBRARY_PATH dans /root/.bash_profile aura un impact sur toutes les applications exécutées en tant qu'utilisateur root, donc supprimez d'abord LD_LIBRARY_PATH dans /root/.bash_profile ;
2. Ensuite, spécifiez le chemin de recherche d'exécution lors de la compilation de l'application matlab, veuillez consulter le fournisseur de l'application matlab et vérifiez s'il existe un moyen d'y parvenir.
Ou
Définissez LD_LIBRARY_PATH lors de l'exécution du programme, par exemple :
# LD_LIBRARY_PATH=./app_test
"LD_LIBRARY_PATH=[PATH]b" ne prend effet que lors de l'exécution de la commande ci-dessus, cela n'aura pas d'impact sur les autres applications.