2 ds623089578 DS623089578 于 2017.09.05 15:52 提问

Java File类修改执行权限问题

环境:
java version :JDK 8
运行系统:由于windows底层文件系统不支持执行权限,所以选择Linux平台CentOS6.9)进行测试
问题描述:
linux中文件的执行权限修改后,却还可以执行;
过程解析:

首先:我在linux系统穿件了一个名为test.sh的shell脚本文件,为了方便测试执行权限是否被关闭我,在
脚本内加入了输出语句echo (后续图片中可见到内容) ,然后使用chmod 755 test.sh给予拥有者执行权限。
图片说明
其次,我在创建了一个FileDemo.java的文件,设置了test.sh的执行权限为false,其内容如下:
图片说明
再次,编译执行该类main方法,结果如下:
图片说明
然后,查看test.sh的执行权限;
图片说明
最后,执行./root/test.sh,结果如下:
图片说明

1个回答

morgerton
morgerton   2017.09.05 18:22

这并没有设置权限成功,最后三位才是当前用户的权限,也就是r-x,可读不可写可运行。你可以用代码调用chmod试试
http://blog.csdn.net/xdwyyan/article/details/46445981

morgerton
morgerton 回复DS623089578: 惭愧,惭愧,我好久没用Linux了。
2 个月之前 回复
DS623089578
DS623089578 谢谢回答!你可以重新复习一下linux的权限部分了,linux权限由十位构成,(由左向右)第一位表,表示文件类型,234位表示拥有者权限,567位表示所属组,最后8 9 10位表示其他人。现在我的拥有者权限经java修改过后X权限位已经显示消失,不过后面我想起了,所属组还X位权限,导致修改过后还能够执行!这个是最终的原因,至于为什么我修改拥有者执行权限却没有吧linux的所属组权限修改,这个是linux权限的实现问题
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片