小编Jul*_*sLt的帖子

当底层文件已将“r”授予所有人时,是什么导致在符号链接上执行 ls 时权限被拒绝?

不确定这是否属于此处或在 superuser.com 上。

我正在努力使需要链接到 Oracle 动态库中的 C 进程正常工作。

它在 oracle 用户(安装 oracle 的用户)下编译并运行良好,但在另一个帐户下则不能。显而易见的原因是默认的 oracle 安装不会授予 /lib 中的任何共享库读取或执行权限

我已将 r+x 授予所有底层 dylib(相当于 .so 等)并在 oracle 用户下执行我得到以下结果

ls -lrt *odm* 
-rwxr-xr-x  1 oracle  dba  9000 Mar  3  2009 libodmd10.dylib
lrwxrwx---  1 oracle  dba    15 Jul 25 14:23 libodm10.dylib -> libodmd10.dylib
Run Code Online (Sandbox Code Playgroud)

在我的其他用户(我想在其下执行的那个)下做同样的事情,我得到以下信息

ls -lrt libodmd10.dylib
-rwxr-xr-x  1 oracle  dba  9000 Mar  3  2009 libodmd10.dylib

ls -lrt libodm10.dylib

ls: libodm10.dylib: Permission denied
lrwxrwx---  1 oracle  dba  15 Jul 25 14:23 libodm10.dylib
Run Code Online (Sandbox Code Playgroud)

我怀疑答案非常愚蠢和简单,但我的理解是符号链接从底层文件继承了权限。

unix permissions mac-osx symbolic-link osx-snow-leopard

3
推荐指数
1
解决办法
9551
查看次数