无效的原因是:chmod改变文件权限是有限制的,它只能在linux分区下生效,否则权限改不了。(因为FAT或NTFS文件系统中根本没有Linux系统中的那些权限的概念)
我的电脑是win+ubuntu的双系统(有共享分区),在ubuntu下设置环境的时候遇见这个问题,发现以下说法:
当插入一个windows分区格式的硬盘或者U盘时,linux系统自动挂载该移动硬盘到/media目录下,通过ls -al查看其权限,显示为:drwx------,证明我们可以进入到该盘符目录,当进一步查看该盘符下的某可执行文件的权限时,就如上所说发现其为-rw-------,即可以对该文件进行读写操作,但不能执行该文件,通过chmod更改权限也无济于事.
此时如何获得执行权限?(再比如在移动硬盘上有一源代码,通过编译产生了目标程序,但是当通过./来执行时,却告知没有权限,同时sudo chmod +x也不起任何作用,在实际工作中遇到这样的情况时,一般可以通过将源码拷贝到linux系统磁盘中进行编译或者将编译好的目标程序拷贝到linux系统的磁盘中再使用chmod更改权限来解决,但如果能直接让linux系统挂载的移动硬盘具有执行权限就方便多了)
解决方案:使用sh *.sh替代 ./*.sh来执行
参考资料:
http://www.cnblogs.com/linjiqin/p/3615477.html
http://demo.netfoucs.com/pipisorry/article/details/39649699
http://forum.ubuntu.org.cn/viewtopic.php?t=395668