Azure devops 使用Azure DevOps在.tar.gz文件内的Shell脚本中设置权限

Azure devops 使用Azure DevOps在.tar.gz文件内的Shell脚本中设置权限,azure-devops,Azure Devops,我在一个文件夹中有一个.sh脚本,我正在使用Azure DevOps生成一个包含该shell脚本的tar.gz文件 示例文件夹结构 主文件夹/boot.sh 我正在使用ArchiveFiles@2在Azure DevOps中找到的创建该存档的任务,具有以下设置: -任务:ArchiveFiles@2 投入: rootFolderOrFile:“主文件夹” includeRootFolder:false 档案类型:“焦油” 焦油压缩:“gz” archiveFile:“$(Build.Stagin

我在一个文件夹中有一个.sh脚本,我正在使用Azure DevOps生成一个包含该shell脚本的tar.gz文件

示例文件夹结构

主文件夹/boot.sh

我正在使用
ArchiveFiles@2
在Azure DevOps中找到的创建该存档的任务,具有以下设置:

-任务:ArchiveFiles@2
投入:
rootFolderOrFile:“主文件夹”
includeRootFolder:false
档案类型:“焦油”
焦油压缩:“gz”
archiveFile:“$(Build.StagingDirectory)/update.tar.gz
replaceExistingArchive:true

但是,在我发布这个构建并在Linux系统上提取tar.gz之后,当我尝试运行
boot.sh
时,它会说权限被拒绝,我必须使用
chmod u=rwx boot.sh
添加“execute”“允许。是否有办法检查Azure DevOps在存档时如何确定添加/删除哪些权限?

任务存档文件在存档时不会更改文件权限。我在管道上测试了如何在linux系统上归档一个.sh文件并提取tar.gz。.sh文件的权限保持不变。因此,您在上面遇到的问题可能是因为origin boot.sh没有
execute
权限

- bash: |
      
   ls -l main_folder/boot.sh  
   chmod u=rwx main_folder/boot.sh

- task: ArchiveFiles@2
您可以运行命令
ls-l main_folder/boot.sh
,在获取之前检查文件的权限。如果没有
execute
权限,则添加该权限

- bash: |
      
   ls -l main_folder/boot.sh  
   chmod u=rwx main_folder/boot.sh

- task: ArchiveFiles@2

啊,谢谢你检查并让我知道如何添加该能力!