cmake:安装时如何更改文件权限?

Posted

技术标签:

【中文标题】cmake:安装时如何更改文件权限?【英文标题】:cmake : How to change file permissions when installing? 【发布时间】:2013-10-24 08:21:43 【问题描述】:

我有一个设置了660 标志的文件,但我想安装它并设置700 标志。

我该怎么做?如何在不改变源文件权限的情况下改变文件权限?


我的安装命令是这样的:

install(
    FILES common.sh
    DESTINATION /rootfs/usr/bin
)

这是我尝试过的(但它不起作用):

install(
    FILES common.sh
    FILE_PERMISSIONS "600"
    DESTINATION /rootfs/usr/bin
)

【问题讨论】:

看看umask @fedorqui 你是什么意思? 例如superuser.com/questions/264383/… @fedorqui 我知道如何设置权限,但是使用 cmake 安装时如何设置? 不熟悉,只是根据问题的第一个修订评论。我建议保存当前的 umask,但让我们看看其他人的建议。 【参考方案1】:

install(FILES ...) 中没有 FILE_PERMISSIONS 参数。请改用PERMISSIONS

install(
    FILES common.sh
    PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
    DESTINATION /rootfs/usr/bin
)

【讨论】:

谢谢,它有效。但是您链接的页面谈到了 FILE_PERMISSIONS。我刚刚注意到它不是用于 install(),而是用于 file() 命令。是否可以使用 file() 命令设置权限,因为它似乎提供了更好的控制? 嗯,他们做不同的事情。 install(FILES ...) 中添加的文件在执行make install 时安装,并添加到您制作的任何安装包中。 file(INSTALL ...) 中添加的文件在 CMake 运行时安装,甚至在构建开始之前。 此解决方案是否交叉兼容?我在 linux 上尝试过,它可以工作,但我希望在所有三个主要的 pc 操作系统中都具有同等功能

以上是关于cmake:安装时如何更改文件权限?的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 2linux 如何修改只读文件 3ubuntu安装

Vagrant 共享/同步文件夹权限

如何使用node.js更改同一文件夹中的所有文件和文件夹权限

使用git签出文件时如何找出导致文件权限更改的原因?

ubuntu 更改文件夹拥有者和权限

C# 存储文件夹权限