ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [原创]]VirtualBox虚拟机中给从主机上共享过来的文件加执行权限

[原创]]VirtualBox虚拟机中给从主机上共享过来的文件加执行权限

原创 Linux操作系统 作者:osdba 时间:2008-09-30 19:34:00 0 删除 编辑
使用VirtualBox虚拟机时,从主服务器共享过来的文件的权限是0666,没有执行权限,这样很不方便,比如说想把oracle的安装文件解压在主服务器上时,无法通这共享主服务器上的安装文件来安装,原因是主服务器上的安装文件无执行权限。
通过下面的修改可以把共享过来的文件的默认的权限改为0777。
把附加工具mount到光盘中,/mnt/cdrom
建任意一个目录如vboxsetup
cd /vboxsetup
/mnt/cdrom/VBoxLinuxAdditions.run --tar xvf  #如果是VirtualBox2.02版本文件是VBoxLinuxAdditions-x86.run。
 
修改解压的目录下的module/vboxvfs目录中的文件utils.c,在其中加入如下代码:
 
/* set [inode] attributes based on [info], uid/gid based on [sf_g] */
static void
sf_init_inode (struct sf_glob_info *sf_g, struct inode *inode,
               RTFSOBJINFO *info)
{
        int is_dir;
        RTFSOBJATTR *attr;
        int mode;
 
        TRACE ();
 
        attr = &info->Attr;
        is_dir = RTFS_IS_DIRECTORY (attr->fMode);
 
#define mode_set(r) attr->fMode & (RTFS_UNIX_##r) ? (S_##r) : 0;
        mode = mode_set (ISUID);
        mode |= mode_set (ISGID);
 
        mode |= mode_set (IRUSR);
        mode |= mode_set (IWUSR);
        mode |= mode_set (IXUSR);
 
        mode |= mode_set (IRGRP);
        mode |= mode_set (IWGRP);
        mode |= mode_set (IXGRP);
 
        mode |= mode_set (IROTH);
        mode |= mode_set (IWOTH);
        mode |= mode_set (IXOTH);
#undef mode_set
//add by  2008-09-30 begin
        if(RTFS_DOS_MASK&attr->fMode)
        {
            mode |= S_IXUSR|S_IXGRP|S_IXOTH;
        }
//add by  2008-09-30 end
运行install.sh vfs-module安装后,重新启动机器后,再mount主服务器上的文件都加上了执行权限。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15145533/viewspace-466218/,如需转载,请注明出处,否则将追究法律责任。

全部评论

注册时间:2008-08-11

  • 博文量
    12
  • 访问量
    25825