解决NTFS分区上的代码在linux上编译后没有权限执行
win7下的cpp代码,在ubuntu下编译后,可执行文件不能执行,root也不行。
将代码拷贝到ubuntu上,再编译生成的可执行文件则可以执行。或者将win7分区上的可执行文件拷贝出来,然后chmod 777 hello改变权限,似乎也能执行了。但是这样很麻烦,我就想在原目录下执行。
ubuntu 12.04已经可以自动挂载NTFS分区,打开主文件夹后,在“设备”里边选择所在分区,即实现挂载。但这样挂载的分区,进去之后,就会出现上述的情况——编译之后的可执行文件没有权限执行。所以,可以在终端以sudo手动挂载:
$ sudo mount -t ntfs-3g /dev/sda6 /meida/E
(关于查看分区的sdaX可以sudo fdisk -l,或者用ubuntu自带的图形界面的“磁盘实用工具”查看更清楚)
完成以上的命令之后,进到挂载的E盘,所有的文件夹和文件都是绿色的,不好区分。在ubuntu下,绿色的一般表示具有“可执行权限”。因此,我们用dmask加以限制。(man mount了解更多)
$ sudo mount -t ntfs-3g -o dmask=022 /dev/sda6 /media/E
这样,文件夹就变成蓝色的,文件是绿色的。
推荐文章: