http://blog.csdn.net/pipisorry/article/details/39649699

问题:

我想运行media目录下自己写的某个程序,但无法运行?

1. 于是我以root的身份在终端以输入指令chmod a+x 1,回车后没反应,查询该目录的属性,也没有改变,即改动权限无效。

2. 直接图形界面进入目录,打开文件属性,属性权限设置里面 运行权限都不可选(勾选后自己主动消失,即使使用ROOT权限相同)

3. 而复制到linux分区(比方/tmp目录下)才干够正常运行

pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#g++ -o div divide.cpp
pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#./div
bash: ./div: 权限不够
pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#ll div
-rw------- 1 pipi pipi 8522 Oct 2 00:43 div
pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#chmod u+x div
pipi@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#ll div
-rw------- 1 pipi pipi 8522 Oct 2 00:43 div =>权限居然没变,依然没法运行!!!

media这个目录的全部者是root

root@ubuntu:/#ls -ld /media
drwxr-xr-x 5 root root 1024 Sep 29 00:08 /media

即当插入一个windows分区格式的硬盘或者U盘时,linux系统自己主动挂载该移动硬盘到/media文件夹下,通过ls -al查看其权限,显示为:drwx------,证明我们能够进入到该盘符文件夹,当进一步查看该盘符下的某可运行文件的权限时,就如上所说发现其为-rw-------,即能够对该文件进行读写操作,但不能运行该文件,通过chmod更改权限也无济于事.

此时怎样获得运行权限?(再比方在移动硬盘上有一源代码,通过编译产生了目标程序,可是当通过./来运行时,却告知没有权限,同一时候sudo chmod +x也不起不论什么作用,在实际工作中遇到这种情况时,一般能够通过将源代码复制到linux系统磁盘中进行编译或者将编译好的目标程序复制到linux系统的磁盘中再使用chmod更改权限来解决,但假设能直接让linux系统挂载的移动硬盘具有运行权限就方便多了)



linux设备挂载

这一问题涉及到硬盘挂载,首先须要了解linux系统中与磁盘挂载相关的两个系统文件。

/etc/fstab是系统分区信息以及系统启动时磁盘的挂载參数,该文件是一个静态文件(系统启动后不再改变,如人为改变,须要重新启动系统);

/etc/mtab是当前系统中已经挂载的磁盘列表,该文件是一个动态文件,即随系统mount和umount文件系统而随时发生改变,比如当插入U盘时,系统在mtab文件里写入该磁盘的相关信息,当拔下U盘时,系统随之删除mtab文件里有关该磁盘的信息。

fstab文件内容的格式例如以下:

# /etc/fstab: static file system information.

# <file system> <mount point>   <type>          <options>                   <dump>  <pass>

……

proc                       /proc                   proc    nodev,noexec,nosuid              0                 0

……

mtab文件内容的格式例如以下:

……

proc                       /proc                    proc   rw,noexec,nosuid,nodev          0                 0

……

root@ubuntu:~#cat /etc/mtab
/dev/loop0 / ext3 rw 0 0
...
/dev/sda1 /host fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
gvfs-fuse-daemon /home/pipi/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,user=pipi 0 0
/dev/sda6 /media/000B089D0000696F fuseblk rw,nosuid,nodev,allow_other,default_permissions,blksize=4096 0 0 #小编windows分区下的c盘

fstab和mtab文件里的格式都是依照“设备名称—挂载点—分区类型—挂载选项—dump选项—pass选项”的格式组织列表。[鸟哥的linux私房菜]

让linux挂载的移动硬盘具有运行权限

1、设备名称是指系统中设备的名称,比方/dev/sda1或/etc/sdb1或/etc/sdc1等,这些设备名称能够通过sudo fdisk -l命令来查看。

2、挂载点实际上就是为挂载磁盘创建的目录,比方./,./usr,和./swap这种系统默认挂载点,当然我们能够自己使用mkdir创建一个目录作为挂载点。

3、分区类型在linux以下有ext2,ext3,ext4,jfs,jfs2,reiserfs,reiser4,swap等(在windows以下有FAT和NTFS等)。

4、经常使用的挂载选项包含:

(1)auto和noauto: auto同意系统自己主动挂载或使用mount -a就能挂载,fstab默认就是这个选项 ;noauto使系统开机不自己主动挂载 或使用mount -a时不挂载;

(2)rw和ro:rw表示以读写权限挂载该设备,ro表示以仅仅读权限挂载该设备;

(3)suid和nosuid:suid表示同意对该设备进行uid和gid的设置操作,nosuid就是不同意设置uid和gid;

(4)dev和nodev:dev表示同一时候挂载文件系统上的特殊设备,nodev表示不挂载这些特殊设备;

(5)exc和noexc:exec表示同意运行该文件系统下的二进制文件,noexc当然表示不同意运行二进制文件;

(6)user、nouser、users和owner:user同意指定的普通用户挂载该设备,nouser表示禁止普通用户挂载该设备(仅root能够挂载该设备),users表示同意全部普通用户挂载该设备,owner表示仅设备全部者能够挂载。user和users选项同一时候隐含noexec,nosuid,nodev选项;

(7)sync和asnyc:sync表示对该设备的I/O操作同步进行,不进行缓冲处理,而async表示不同步,进行缓冲处理;

(8)defaults: 该选项是rw, suid, dev, exec, auto, nouser, and async这些选项的组合。

linux系统针对不同的文件系统还能够设定其它特别选项:

对Windows下的NTFS文件系统,能够设置utf8(表示採用UTF-8转换文件名)、uid=****(挂载设备的指定用户id,能够通过id命令或者查看/etc/passwd文件方式获得)、gid=****(挂载设备的指定用户群组id)和umask=***(挂载设备的权限屏蔽,八进制数值)等。

对Windows下的FAT(包含msdos,umsdos,vfat等)文件系统,能够设置uid=****,gid=****,umask=***,dmask=***(挂载设备时应用于文件夹的权限屏蔽,八进制数值)和fmask=***(挂载设备时应用于普通文件的权限屏蔽,八进制数值)。很多其它挂载选项能够參见man mount。

5、dump选项用来设置是否让备份程序dump备份文件系统,0为不备份,1为备份,假设上次用dump备份,将显示备份至今的天数。

6、pass选项,告诉fsck程序在开机时以什么顺序检查文件系统,为0就表示不检查,(./)分区仅仅能是1,其他的分区仅仅能是2,当数字同样就同一时候检查。



linux用户和群组以及权限

在linux以下挂载windows分区格式的移动硬盘了,关键就是设置挂载选项从而获得对应权限。

当挂载Windows分区格式的文件系统时,我们能够通过uid=****,gid=****和umask=***/dmask=***/fmask=***来设置权限,uid和gid直接设置为自己的uid和gid就能够;

关于权限mask的设置採用数字式的,相同第一个数字表示全部者的权限mask,第二个数字表示群组的权限mask,第三个数字表示其它用户的权限mask,假设umask=000,就表示不屏蔽不论什么用户的不论什么权限,即全部用户具有读、写和运行权限,再比如fmask=033,就表示文档全部者具有读、写和运行权限,而群组和其它用户仅仅具有读取的权限。

http://blog.csdn.net/pipisorry/article/details/39649699

问题解决方式

1.改动/etc/fstab(推荐)

能够在/etc/fstab中加入像以下这种挂载配置,并重新启动系统让系统挂载硬盘,从而获得运行权限。

# <file system> <mount point>                               <type>                <options>                                             <dump>  <pass>

/dev/sdb6         /media/sdb6                                      ntfs       utf8,uid=1000,gid=1000, umask=000                  0             0

/dev/sda6         /media/E        ntfs       utf8,uid=1000,gid=1000,fmask=033                   
0             0        (小编的系统这么改动的,可先挂载windows分区,再通过df -h查询windows分区的挂载详细情况)

万一在fstab中改动有误,导致开机失败,能够按屏幕提示按s键就能够了,进入系统后改动好fstab

或者按m键进入单用户维护模式,改动fstab,输入restart重新启动就能够进入系统了

解决之后的情况(具有运行权限了,而且能够运行):

root@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#ls -l div
-rwxr--r-- 1 pipi pipi 8522 Oct 2 00:43 div
root@ubuntu:/media/000B089D0000696F/mine/C++/POJ/POJ/BOP#./div
2 13 5 6 4 9 0 98 0 0 1 6 2 3 2 4 0 49 0 0

2.使用mount解决

umount /media/...

mount -o rw /dev/sda7 /media

3.专用分区

双系统中能够先装windows。在里边分好区,然后专门给linux留一个32G的fat32分区,免得和ntfs打交道。

把经经常使用的东西放fat32,这样保证你什么时候都能用。

把windows下经常使用但linux不用的放ntfs。把linux经常使用但windows不用的放到linux自己的分区。

4.图形界面以root登陆(ubuntu 12.04下亲測无效)

登录方式见【linux下加入删除改动用户

ps:

media目录下非常多文件仅仅读的原因:

仅仅读的原因是win8的高速重新启动技术开启后进入其他系统对该分区进行写操作会导致数据丢失 所以ntfs-3g(linux上的ntfs支持模块)默认禁止对ntfs写操作。假设ntfs系统中不能读写,没法儿更改里边的文件属性。

另外/下的目录切忌改动权限

因为挂载的分区是ntfs的所以不能依照linux的权限方式改动,眼下看到的权限是mount时赋予的。

mount 简单使用方法:

须要root权限

mount 分区 挂载点

分区:类似/dev/sda1之类

挂载点:目的目录,最好是空的

例:把第一分区(sda1)挂载到/home/xxx/a

mount /dev/sda1 /home/xxx/a

卸载仅仅需 umount 挂载点

from:http://blog.csdn.net/pipisorry/article/details/39649699

ref:关于改动目录权限的命令求解

让linux挂载的移动硬盘具有运行权限

解决mount挂载u盘后chmod无法改动挂载点权限

root运行/media可运行文件权限不够,chmod改动权限无效的更多相关文章

  1. Ubuntu 15.04 双击运行 *.sh、*.py文件

    源 起 之前一直在Windows下用AndoridStudio,今天试了一下在Linux系统Ubuntu 15.04中配置Android Studio: 过程和Windws下差不多,但是最后没有生成桌 ...

  2. C#以管理员权限运行源码,C#软件获取管理员权限,c#获取管理员权限

    C#以管理员权限运行源码,C#软件获取管理员权限,c#获取管理员权限 发布时间:2014-10-19 21:40内容来源:未知 点击: 次 windows 7和vista提高的系统的安全性,同时需要明 ...

  3. 批处理判断是否存在文件,存在则运行另外一个bat文件

    现在需求如下: 使用bat文件判断是否存在ktr文件,存在则运行pan.bat,执行kettle脚本. 代码如下: @echo off @title 批处理判断文件夹是否存在 cd /d F: rem ...

  4. 网站卡死,照惯例运行.bat批量处理文件进行重启不起作用

    网站卡死,照惯例运行.bat批量处理文件进行重启不起作用,进入虚拟机控制台进行虚拟机重启仍然不起作用,通过ping分析物理服务器能ping通,各个虚拟机之前也能ping通,但是不能ping通外部,分析 ...

  5. NSIS:静默释放文件并运行 制作绿色单文件软件

    原文 NSIS:静默释放文件并运行 制作绿色单文件软件 现在所谓的绿色单文件软件,大多与以下代码原理相似:把软件运行需要的文件封装为一个EXE文件,双击时释放到某个目录(大多是TEMP)并运行主程序文 ...

  6. 将ZIP文件添加到程序集资源文件然后在运行时解压文件

    今天做安装打包程序研究,之前同事将很多零散的文件发布成一个安装文件夹给用户,这样体验不好,我希望将所有文件打包成一个.net程序,运行此程序的时候自解压然后执行后续的安装步骤. 解决过程: 1,将所有 ...

  7. eclipse 使用tomcat运行JavaWeb项目,文件修改后为何不用重启tomcat? (运行web项目的4种方式)探究

                    1.情景说明 在eclipse中,为什么Java文件修改后,重启tomcat class文件才能生效? 为什么jsp修改后,不需重启tomcat就能立即生效? 为什么静 ...

  8. jenkins+pytest+ allure运行多个py文件测试用例

    jenkins的pytest运行多个py文件,导出allure报告方法,只需改下job的配置中的构建即可(pytest会运行指定文件下的所有test开头的py文件),如下:              ...

  9. 安装时后的idea,项目不能运行,pom.xml文件不能下载到本地仓库,maven配置是正确的

    安装时后的idea,项目不能运行,pom.xml文件不能下载到本地仓库,maven配置是正确的 项目上传到svn后,同事下载项目后,没有识别出来mavn中的pom.xml文件,导致idea不能自动下载 ...

随机推荐

  1. BZOJ 2431 HAOI2009 在列的数目的顺序相反 递归

    标题效果:乞讨1~n有都布置在物种的数目相反的顺序k计划数 订购f[i][j]对于前者i原子的反向排列的数j计划数 因此,我们将第一i插入的数1~i-1该装置 能生产0~i-1反向对 再就是 f[i] ...

  2. ef添加字段

    先在实体类里添加字段 ,然后执行 Add-Migration updateNumberOfLikes Update-Database -Verbose

  3. MapReduce源代码分析MapTask分析

    前言 MapReduce该分析是基于源代码Hadoop1.2.1代码分析进行的基础上. 该章节会分析在MapTask端的详细处理流程以及MapOutputCollector是怎样处理map之后的col ...

  4. sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别

    原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表 ...

  5. S性能 Sigmoid Function or Logistic Function

    S性能 Sigmoid Function or Logistic Function octave码 x = -10:0.1:10; y = zeros(length(x), 1); for i = 1 ...

  6. 建立ORACLE10G DATA GUARD---&gt;Physical Standby

    下面是我自己建Physical Standby,按照下面的步骤一步我一步,当然,打造成功,以下步骤可以作为建筑物Data Guard结构操作手册. HA和DG差额:HA:可以做IP切换自己主动  DG ...

  7. P/Invoke与逆向P/Invoke

    1.在在 C# 中通过 P/Invoke 调用Win32 DLL这篇文中,详细介绍了P/Invoke的基本知识以及使用. 2.InAttribute和OutAttribute特性与C#中ref和out ...

  8. 跑Java -jar somefile.jar时会发生什么(一个)

    最近阅读JVM源代码.一些想法写Blog分享.于是,他开了这么一个新课题. 第一篇文章取名字的时候让我很困惑,我代码的阅读是从Launcher開始入手的,也就是Java.exe(假设是windows平 ...

  9. Lichee(三) Android4.0该产品的目标文件夹,Lichee链接---extract-bsp

    由<Lichee() 在sun4i_crane平台下的编译>介绍了编译lichee的基本情况,我们终于得到了编译后的结果例如以下: out/ ├── android │   ├── bIm ...

  10. onethink和phpwind共享

    将onethink和phpwind数据库安装在一起.使用公用表前缀. 将onethink的member表点phpwind有user表 这是onethink在根文件夹的安装,phpwind安装在bbs的 ...