Git

From Kicksecure
Jump to navigation Jump to search

todo

git symlinks[edit]

git configuration file ~/.gitconfig  :

[core] symlinks = false

symlinks = false is more secure:

Use:

  • Developers: Are more likely to use symlinks = false in ~/.gitconfig.
  • Users that build from source code: Are more likely to not use any ~/.gitconfig file, therefore using git's default symlinks = true.

When not using symlinks = false:

  • find "." -type l -not -iwholename '*.git*' will not detect these files as symlinks.
  • These are detected as file without newline at the of file. Example:
    • file qubes/qubes-template-whonix/whonix-workstation
qubes/qubes-template-whonix/whonix-workstation: ASCII text, with no line terminators

When using symlinks = false:

  • find "." -type l -not -iwholename '*.git*' will detect these files as symlinks.
  • These are detected as symlink. Example:
    • file qubes/qubes-template-whonix/whonix-workstation
qubes/qubes-template-whonix/whonix-workstation: symbolic link to whonix-gateway

Potential issues:

  • A text file versus a symbolic link can cause different build results depending on git settings, leading to bugs and/or package reproducibility issues.
  • Git will translate symlink replacement text files back into symlinks when committing and pushing, meaning if you attempt to change a symlink to a real file, people who pull the repo will get a dangling symlink pointing to a very strange filename rather than getting a normal file with contents.

Footnotes[edit]

Notification image

We believe security software like Kicksecure needs to remain Open Source and independent. Would you help sustain and grow the project? Learn more about our 13 year success story and maybe DONATE!