linux rws权限导致的动态库无法加载

./xxx: error while loading shared libraries: libxxx.so: cannot open
shared object file: No such file or directory unknown signal exit,
core will not be generated for signal value 127 and pid

常见的解决方法常常关注于libxxx.so的状态、权限和所处的位置,忽略了 ./xxx可执行文件本身的状态、权限。
仅仅记录一下,因为这个问题查了很久才解决。
在这里插入图片描述
把权限改为 rwx 即可。

顺带涨姿势了,补充几种权限的解释。

1.SetUID权限(针对所属主设置s权限,数字表示为4)
  SetUID:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。前提是这个文件是可执行文件,可就是具有x权限(属组必须先设置相应的x权限)。chmod命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)

(1)设置权限的方法:

chmod u+s xxx
chmod 4777 xxx 

解释:我们利用umask知道权限的设置是四位数,后三位是ugo对应的属性,首位就是特殊位权限的表示,SetUID的权限位是4,因此可以用chmod 4777 xxx设置s权限。
(2)收回权限

chmod u-s xxx
chmod  0777   xxx

2.SetGID(针对所属组设置权限,数字表示为2)
  一个可执行文件具有SetGID权限表示运行这个程序的时候是以这个程序的所属组的身份运行,同样这个文件需要具有x权限(必须可以运行)

设置权限方法

chmod g+s xxx
chmod 2777 xxx

收回权限方法:

chmod g-s xxx
chmod 0777 xxx

3、黏着位 t 解读(针对others设置,可以实现文件夹共享)
t :设置粘着位,一般针对权限是777的文件夹设置权限。如果文件设置了t权限则只有属主和root有删除文件的权限(没有意义)

如果权限为777的目录设置t权限,索引用户可以在这个目录下面创建文件和删除自己创建的文件,删除其他人创建的文件权限不被允许(当然root可以删除所有人创建的权限)。(为了共享目录,例如临时文件夹)。
  
  通常/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

设置权限

chmod  o+t  xxx
chmod  1777 xxx

收回权限

chmod o-t  xxx  
chmod 0777 xxx

4、i与a权限
i:不可修改权限 例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。

a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值