diff options
author | James Lopez <james@jameslopez.es> | 2018-12-05 11:52:56 +0300 |
---|---|---|
committer | John Jarvis <jarv@gitlab.com> | 2018-12-19 17:45:14 +0300 |
commit | 23c158baa72747ea747cf3e7ff3cff4d8e968dd0 (patch) | |
tree | b5a6e29cc8b72e691ab417cd3d39776485aa4b87 /lib | |
parent | 0b82735090d296b6bb4c2c6c76074df740ca3b2f (diff) |
Fix persistent symlink in project import
- Fix permissions after untar is done
- Refactor command line util
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/import_export/command_line_util.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/gitlab/import_export/command_line_util.rb b/lib/gitlab/import_export/command_line_util.rb index c9e2a6a78d9..bdecff0931c 100644 --- a/lib/gitlab/import_export/command_line_util.rb +++ b/lib/gitlab/import_export/command_line_util.rb @@ -3,7 +3,8 @@ module Gitlab module ImportExport module CommandLineUtil - DEFAULT_MODE = 0700 + UNTAR_MASK = 'u+rwX,go+rX,go-w' + DEFAULT_DIR_MODE = 0700 def tar_czf(archive:, dir:) tar_with_options(archive: archive, dir: dir, options: 'czf') @@ -14,8 +15,8 @@ module Gitlab end def mkdir_p(path) - FileUtils.mkdir_p(path, mode: DEFAULT_MODE) - FileUtils.chmod(DEFAULT_MODE, path) + FileUtils.mkdir_p(path, mode: DEFAULT_DIR_MODE) + FileUtils.chmod(DEFAULT_DIR_MODE, path) end private @@ -41,6 +42,7 @@ module Gitlab def untar_with_options(archive:, dir:, options:) execute(%W(tar -#{options} #{archive} -C #{dir})) + execute(%W(chmod -R #{UNTAR_MASK} #{dir})) end def execute(cmd) |