【问题标题】:how to fix the weird error "Operation not permitted" [closed]如何解决奇怪的错误“不允许操作”[关闭]
【发布时间】:2020-05-08 05:54:24
【问题描述】:
[hadoop@worker-18 tmp]$ ./sysupdate
-bash: ./sysupdate: Operation not permitted
[hadoop@worker-18 tmp]$ chmod +x ./sysupdate
[hadoop@worker-18 tmp]$ ./sysupdate
-bash: ./sysupdate: Operation not permitted
[hadoop@worker-18 tmp]$ sudo ./sysupdate
sudo: unable to execute ./sysupdate: Operation not permitted
[hadoop@worker-18 tmp]$ ls -l ./sysupdate
-rwxrwxrwx 1 hadoop hadoop 1102480 Apr 28 07:48 ./sysupdate
[hadoop@worker-18 tmp]$ stat ./sysupdate
  File: ‘./sysupdate’
  Size: 1102480     Blocks: 2160       IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 402520      Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1001/  hadoop)   Gid: ( 1000/  hadoop)
Access: 2020-05-08 13:02:31.919594048 +0800
Modify: 2020-04-28 07:48:11.962969475 +0800
Change: 2020-05-08 13:02:29.883603300 +0800
 Birth: -
[hadoop@worker-18 tmp]$ cp /usr/bin/ls ./
[hadoop@worker-18 tmp]$ ./ls --version
ls (GNU coreutils) 8.22

Written by Richard M. Stallman and David MacKenzie.
[hadoop@worker-18 tmp]$ chmod --reference=./sysupdate ./ls
[hadoop@worker-18 tmp]$ ls -l ./ls
-rwxrwxrwx 1 hadoop hadoop 117656 May  8 13:02 ./ls
[hadoop@worker-18 tmp]$ ./ls --version
ls (GNU coreutils) 8.22

Written by Richard M. Stallman and David MacKenzie.

这很奇怪……

但是当我将它上传到我自己的服务器时,我可以执行它:

➜ ~ ./sysupdate --version
screen 2.8.5
 built on Mar  8 2020 with GCC 4.8.5
 features: 64-bit AES

libuv/1.34.0

那么为什么我不能在服务器worker-18 中执行sysupdate

操作系统是 CentOS Linux release 7.4.1708 (Core)

【问题讨论】:

  • 可能文件设置为不可变。试试sudo chattr -i ./sysupdate
  • 您可以使用lsattr ./sysupdate检查属性
  • @DigvijayS 结果是-------------e-- ./sysupdate
  • @DigvijayS 为什么是超级用户? unix.stackexchange.com 不是更合适吗?

标签: linux bash shell


【解决方案1】:

也许您在服务器上启用了 SElinux?

/usr/sbin/sestatus

【讨论】:

  • SELinux status: disabled
  • 我还发现了一些信息,有时它可能是已经以该名称运行的病毒。你可以看到这个命令的输出:ps aux | grep sysupdatels -la ../
  • 是的。确切地说,sysupdate 是一个挖矿程序。但我真正感兴趣的是为什么我可以执行它@Nigredon
【解决方案2】:

我也遇到了这个问题,走一圈后,/tmp 目录可能挂载为noexec。要检查这一点,请执行:

cat /proc/mounts | grep /tmp

如果挂载为noexec,尝试重新挂载为可执行文件:

sudo mount -o remount,exec /tmp

也许 SELinux 是另一个原因...

【讨论】:

    【解决方案3】:

    这发生在我的 RHEL 8 机器上。检查(几乎)所有内容,但最后我发现罪魁祸首是fapolicyd running,它根据文件格式、目录等限制执行策略。

    也许遇到此问题的其他人可能有fapolicyd

    【讨论】:

      【解决方案4】:

      这些天我遇到了这个奇怪的错误“不允许操作”,我找到了解决方案。 这发生在我的 rhel8 版本的新虚拟机上,它用于 Jenkins 在非 root 权限下构建作业。我已经运行了涉及构建的每个目录的“chown”,但仍然得到“不允许操作”。 最后我得到了解决方案herehere

      您可以使用 'fapolicyd-cli -f add /yourdirorfile' 让 fapolicyd 信任您的。

      我只是粗鲁地删除了 'yum remove fapolicyd' 的 fapolicyd。 (只是本地机器,不需要这个lol)

      【讨论】:

        猜你喜欢
        • 2015-01-19
        • 2012-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-12
        • 1970-01-01
        • 2014-06-21
        • 1970-01-01
        相关资源
        最近更新 更多