Oracle VirtualBox 7.1.4安装报错Invalid installation directory

新版本要求安装的目录必须是系统盘,但是我们不喜欢安装在C盘,

解决如下,我这里要安装在D:\developer\tools\VirtualBox,因此,打开cmd,分别执行下面代码,即可。

icacls D:\developer /reset /t /c
icacls D:\developer /inheritance:d /t /c
icacls D:\developer /grant *S-1-5-32-545:(OI)(CI)(RX)
icacls  D:\developer /grant *S-1-5-11:(OI)(CI)(RX)
icacls D:\developer /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA)
icacls D:\developer\tools /reset /t /c
icacls D:\developer\tools /inheritance:d /t /c
icacls D:\developer\tools /grant *S-1-5-32-545:(OI)(CI)(RX)
icacls  D:\developer\tools /grant *S-1-5-11:(OI)(CI)(RX)
icacls D:\developer\tools /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA)
icacls D:\developer\tools\VirtualBox /reset /t /c
icacls D:\developer\tools\VirtualBox /inheritance:d /t /c
icacls D:\developer\tools\VirtualBox /grant *S-1-5-32-545:(OI)(CI)(RX)
icacls  D:\developer\tools\VirtualBox /grant *S-1-5-11:(OI)(CI)(RX)
icacls D:\developer\tools\VirtualBox /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA)

命令注释说明:

icacls D:\developer /reset /t /c


这条命令用于重置(/reset)指定目录(D:\developer)及其所有子目录和文件(/t 表示递归处理子目录和文件,/c 表示即使遇到访问被拒绝等错误也继续处理其他文件和目录)的访问控制列表(ACL)。它会将权限恢复到默认状态,清除之前设置的所有自定义权限分配等情况,常用于想要重新规整权限设置或者解决因权限设置混乱导致的一些访问问题的场景。

icacls D:\developer /inheritance:d /t /c


此命令针对 D:\developer 目录及其子目录和文件(/t 和 /c 的含义同上),通过 /inheritance:d 参数来禁用(d 表示禁用)权限继承。意味着该目录及其下内容原本从父目录继承来的权限将会被阻断,后续可以单独为其设置明确的权限,这样能更精细地管控特定目录及其内部文件的访问权限,避免受到父级目录权限设置的干扰,常用于需要对某个特定范围的文件和目录进行独立权限配置的情况。

icacls D:\developer /grant *S-1-5-32-545:(OI)(CI)(RX)


命令的作用是向 D:\developer 目录及其所有子目录和文件(/t 表示递归处理,这里省略了 /c 但一般也是希望尽可能完整处理权限设置相关操作)授予(/grant)特定主体权限。主体由安全标识符 *S-1-5-32-545 表示,它对应的是 Windows 操作系统中的 “Users” 组。(OI)(CI)(RX) 这部分表明授予该组对目标目录及其子目录和文件的 “读取和执行”(RX)权限,其中 (OI) 表示对象继承(使得权限可以应用到文件对象),(CI) 表示容器继承(使得权限可以应用到目录容器),也就是保证该组在整个 D:\developer 目录结构下都有相应的读取和执行权限,便于该组中的用户能够查看和运行相关内容,比如查看代码文件、执行程序等。

icacls D:\developer /grant *S-1-5-11:(OI)(CI)(RX)


同样是授予权限的操作(/grant),针对 D:\developer 目录及其子目录和文件(/t 等相关处理机制同上)。这里的主体 *S-1-5-11 代表的是 “Authenticated Users”(经过身份验证的用户)组。(OI)(CI)(RX) 表示赋予这个组对相应目录及文件的 “读取和执行” 权限,并且通过对象继承和容器继承机制保证在整个目录层级下都生效,使得经过身份验证的用户都可以查看和运行 D:\developer 目录下的内容,比如在多人协作开发等场景下,让合法认证过的人员能访问和执行相关资源。

icacls D:\developer /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA)


该命令是针对 D:\developer 目录及其子目录和文件(默认会递归等处理)进行权限的拒绝(/deny)操作。主体依然是 *S-1-5-32-545(即 “Users” 组),后面的 (DE,WD,AD,WEA,WA) 具体指定了要拒绝的权限类型,分别代表 “删除”(DE)、“写入数据”(WD)、“追加数据”(AD)、“写入扩展属性”(WEA)、“写入属性”(WA)这些写相关的权限,也就是限制 “Users” 组中的用户对 D:\developer 目录及其内部文件进行上述写操作,常用于保护该目录下的内容不被随意修改,增强数据的安全性和完整性。

总体而言,这几条 icacls 命令组合起来,先是重置权限、禁用继承,然后分别对不同主体授予了读取执行权限以及对特定主体拒绝了写相关的权限,通过这样一系列操作来精细地管理 D:\developer 这个开发目录的访问权限,满足不同的安全和使用需求。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值