windows 文件授权解决跨平台权限问题
![](/skin/2018/images/text-message.png)
跨平台可执行权限介绍
在类 Unix 系统(如 Mac, Linux)中,执行权限是通过文件的权限位来控制的。而在 Windows 系统中,执行权限通常取决于文件扩展名和关联的执行程序,所以,当我们在跨平台的开发环境中,可能会遇到这样一个问题:在 Windows 系统上创建的脚本文件缺乏类 Unix 系统上的执行权限标志,导致当在类 Unix 系统获取代码时,缺少可执行权限。
由于在 Windows 操作系统下,文件的执行权限对于脚本和可执行文件的运行并不像在类 Unix 系统的要求那样严格,所以在 Windows 上文件的设置执行权限基本不会对文件的运行产生什么实际的影响。
但是为了满足跨平台开发的需求,我们可以使用 git update-index
命令在 Windows 上设置执行权限。这样可以确保在 Windows 系统上创建的脚本文件在提交到 Git 后,在类 Unix 系统上也能够获得执行权限。这种做法有助于保持跨平台的一致性,确保项目在不同操作系统上的可移植性。
解决 window 跨平台权限问题
首先我们现在 window 上创建一个文件,并观察他的文件权限。
#!/usr/bin/env sh echo test window shell
我们在这里发现,创建好的 shell 脚本是自带了可执行权限
在 mac 上拉取项目,观察文件权限,发现并没有可执行权限。
回到 windows 上通过 git update-index
进行授权,发现 git 检测到变更。
在 window 上提交并推送后,再回到 mac 上拉取项目,发现文件已经具有可执行权限。
git update-index 命令
git update-index
是一个 Git 底层命令,--chmod=+x
是通过 Git 为文件添加可执行权限。
在 Windows 系统上,由于文件系统不同,不能像在类Unix系统上那样直接设置文件的执行权限位。因此,为了在 Windows 上模拟文件的可执行权限,通过将文件添加到 Git 的暂存区并使用 git update-index
命令设置文件的执行权限。
git update-index --chmod=+x
是一种处理在 Windows 系统上设置文件执行权限的特殊情况的方法,以确保与类 Unix 系统上的行为一致,因为在类 Unix 系统上,可以直接使用 chmod
命令设置文件的执行权限,如下图在 Fedora 中,Git 可以直接检测到权限的变更:
通过使用 git update-index
命令来模拟文件的可执行权限是一种在 Windows 上通用的解决方案,因为 Git 可以跨平台运行,而且这种方式避免了对不同版本和配置的 Windows 操作系统进行特定的处理。
window chmod 失效问题
我们先创建一个脚本文件,发现文件不具有可执行权限
通过 chmod +x
执行后,发现文件依旧不具有可执行权限
这是因为在 windows 下并不需要通过 chomd 进行授权,只需要在文件头添加脚本解释器注释即可。
#!/usr/bin/env sh echo hello world!
再次查看文件权限,发现已经自动授权。
以上就是windows 文件授权解决跨平台权限问题的详细内容,更多关于windows 文件授权的资料请关注脚本之家其它相关文章!
相关文章
Windows软件授权管理工具 slmgr.vbs使用方法介绍
当我们打算激活Vista和windows 7或打算延长其试用期(rearm)的的时候,大家都会碰到到这个slmgr命令或slmgr.vbs。SLMGR是Software License Manger的简称,是WINDOWS的软件2020-02-01- 在Windows中,当mysql安装完成之后不需要创建数据目录和授权表;在Unix上安装MySQL后,需要初始化授权表、启动服务器,并确保服务器工作正常。并为授权表中的账户指定密码2012-11-15
- windows中命令提示符怎么输入命令获取管理员权限?windows系统中我们在运行程序的时候,需要最高管理员权限,为了方便想将最高管理员权限添加到命令提示符中,下面我们就来2017-07-02
- 删除个C盘的系统文件还要权限?别管那么多,把我的电脑还给我,下面小编就为大家介绍夺回Windows系统权限方法,对于不知道怎么操作的朋友可以参考本文2016-11-17
- 现在,谷歌又将炮口对准Windows,该公司提前公布了一个Windows的严重漏洞,此举让微软措手不及,报道称,谷歌在10月最后一天公布了Windows的一处安全漏洞,距离谷歌将该漏洞2016-11-02
- 经常看到技术博客或论坛上管理员权限,对于电脑老手来说并不复杂,但是小白并不知道什么是管理员权限?怎么知道自己有没有管理员权限,如果没有管理员权限应该如何获取呢?2015-10-14
- windows系统怎么修改hosts文件的权限?很多人只会修改hosts文件的内容,但是不会修改权限,下面我们一起来看看详细的设置过程吧2015-05-24
- 默认情况下,我们无法直接在登录对话框上以SYSTEM帐户的身份登录到Windows桌面环境,下面为大家介绍下获取SYSTEM权限设置的方法2014-01-30
windows下删除文件或文件夹被拒需要administrators权限
windows下删除文件或文件夹被拒,需要administrators提供权限才能修改解决,遇到此问题的朋友可以参考下本文2014-01-22- 在Windows操作系统中,权限和权利代表不同的内容。权限(Permission)代表一个用户对文件、文件夹、打印机等系统资源的访问能力;而权利(Right)代表用户对系统进行设置的能力2013-09-23
最新评论