Ubuntu Kylin技术论坛

 找回密码
查看: 2829|回复: 1

求助:银河麒麟社区服务版可执行文件执行问题

[复制链接]

该用户从未签到

发表于 2018-5-30 09:41:44 | 显示全部楼层 |阅读模式
  我在vmware上安装了银河麒麟社区服务版(Kylin-4.0.2-server-sp1-Community-20170412-x86_64.iso),发现执行shell脚本时,都会报权限不足的错误,必须在可执行文件前添加sh 才行。   例如我写了个test.sh用于查看maven的版本号,test.sh的内容为 echo `mvn -v`,用root用户编写后执行chmod a+x test.sh赋权,在PATH中添加当前路径 export PATH=.PATH,生效后执行./test.sh报错,执行sh ./test.sh后,test.sh可执行,但里面的mvn -v命令报错,报错皆为:permission denied。见图:


一直不知为何如此。
不止shell,同样的curl、perl、python脚本也如此,包括c文件通过gcc编译出来的可执行文件也无法执行,皆报相同的错误。
请各位解惑,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2018-5-30 11:09:36 | 显示全部楼层
问题已解决。
原因如下:
      我在安装时计划将所有文件存放在单独分区,所以划分了个基本分区/dev/sda3挂载到/data上,银河麒麟系统默认的文件系统选项为:rw,user,x-gvfs-show,nosuid,nofail,将/etc/fstab中/data的选项user选项去除即可。
       为什么去掉user即可,因为这个选项自动包含了noexec选项,noexec选项表示此文件系统上不允许执行二进制。网上搜到的ubuntu有关/etc/fstab中options的解释如下:
       user - Permit any user to mount the filesystem. This automatically implies noexec, nosuid,nodev unless overridden.
      exec / noexec - Permit/Prevent the execution of binaries from the filesystem.
这个纠结了我几天的问题已解决,但不知银河麒麟系统为啥默认要给所有用户添加mount权限啊,应该只留root的mount权限才对,实际上,很多企业应用场景应该是会划分独立的数据分区的,那会不会导致所有的数据分区都有这类问题呢。
      
     
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    昨天 09:56
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2020-2-13 16:00:46 | 显示全部楼层
    楼主,我也遇到了这个问题。但是我看了我的fstab,fstab是正常的。但是仍然会报 permission denied 的问题。而且,除了系统自带的命令,其他的都会报这个错误。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|Ubuntu Kylin    

    GMT+8, 2020-2-28 11:49 , Processed in 0.013828 second(s), 9 queries , File On.

    Copyright ©2013-2020 Ubuntu Kylin. All Rights Reserved .

    ICP No. 15002470-2 Tianjin

    快速回复 返回顶部 返回列表