linux CMake,用户运行“sudo install”,我现在如何将文件所有者更改为原始用户?

hjzp0vay  于 12个月前  发布在  Linux
关注(0)|答案(1)|浏览(123)

写了一个CMakeList.txt文件。在安装时,我将配置文件直接复制到用户的主页。应用程序隐藏文件夹中。

install(FILES etc/config.tsv DESTINATION ${USER_HIDDEN_DIR} PERMISSIONS OWNER_READ OWNER_WRITE)

字符串
现在,即使我可以复制文件,找到原始用户的主目录,文件所有者仍然是root:root,因为他使用sudo安装了它。
搜索我找到了更改文件的读写权限的方法,但没有更改文件所有者本身。
基本上我想运行后安装

chown user ~/.app/thefile.conf


注意我从这个cmake代码片段中找出了主人和他的家。

if($ENV{SUDO_USER})
    # If installed with sudo, use the home directory of the invoking user
    execute_process(
        COMMAND sh -c "eval echo ~$ENV{SUDO_USER}"
        OUTPUT_VARIABLE USER_HOME
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
else()
    # If not installed with sudo, use the current user's home directory
    execute_process(
        COMMAND sh -c "echo $HOME"
        OUTPUT_VARIABLE USER_HOME
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
endif()

i86rm4rw

i86rm4rw1#

下面的代码似乎对我有用。将其添加到CMakefile中:
第一个月
你只需要弄清楚USER和USER_HOME。

相关问题