私が作業していないサーバーでntpdがクラッシュしました。
# /etc/init.d/ntpd start
ntpd: error while loading shared libraries:
libz.so.1: cannot open shared object file: Permission denied
しかし、権限は正しいようです。
# locate libz.so.1 | xargs ls -l
lrwxrwxrwx root root /usr/lib64/libz.so.1 -> libz.so.1.2.3
-rwxr-xr-x root root /usr/lib64/libz.so.1.2.3
lrwxrwxrwx root root /usr/lib/libz.so.1 -> libz.so.1.2.3
-rwxr-xr-x root root /usr/lib/libz.so.1.2.3
-rw-r--r-- root root /usr/lib/vmware-tools/lib32/libz.so.1/libz.so.1
-rw-r--r-- root root /usr/lib/vmware-tools/lib64/libz.so.1/libz.so.1
-rw-r--r-- root root /usr/lib/vmware-tools/lib32/libz.so.1
-rw-r--r-- root root /usr/lib/vmware-tools/lib64/libz.so.1
LD_LIBRARY_PATH
空でサーバーは64ビットです。
# uname -a
Linux my.server 2.6.18-128.el5 #1 SMP [...] x86_64 x86_64 x86_64 GNU/Linux
修正する:
# ldd /usr/sbin/ntpd
libz.so.1 => /usr/lib64/libz.so.1
そして
# ls -l /usr/lib64/libz.so.1
lrwxrwxrwx root root /usr/lib64/libz.so.1 -> libz.so.1.2.3
# ls -l /usr/lib64/libz.so.1.2.3
-rwxr-xr-x root root /usr/lib64/libz.so.1.2.3
答え1
私のアプリケーションの1つで同様の問題が見つかりました。これはselinuxが強制的に実行されたためです。変更: /etc/selinux/config で SELINUX=enforcing ## または permissive を SELINUX=disabled に変更
問題は解決します。 http://sysadminupdates.com/blog/2015/05/11/so-cannot-open-shared-object-file-permission-denied/