Bug #5194
closedBug #5172: ncf-api does not run as root and cannot use command to read/write promises
correct permission on /var/rudder/configuration-repository so ncf-builder can write/delete techniques
Description
We apply permission 2775 on /var/Rudder/configuration-repository at package installation.
However on first install the .git is not present and permissions are not set to make it usable.
We should initialise the git with the good permission (git init --share=2775) so it would be ok
Updated by Vincent MEMBRÉ over 10 years ago
- Assignee changed from Vincent MEMBRÉ to Jonathan CLARKE
Three solutions I see:
- initialize the repo before setting permissions
- Modify system techniques so cfengine ensure that the repo si OK
- set acl on /var/rudder/configuration-repo so the perms should always be OK
I don't know which one is better ... I would go for the first (easier) or the third ( would assure that it works over time )
Jon, Matthieu, what do you think of this ?
Updated by Matthieu CERDA over 10 years ago
- Status changed from New to Discussion
- git init --share=2775 looks good to me.
- The system Techniques are bloated enough, and using them to manage git is dangerous are they are themselves stored in it. Chicken and egg problem :) break the system promises, break git, break rudder, no more system promises deployed :)
- I'd rather not rely on ACLs, we just can't ask every person deploying rudder to remount his/her / or /var partition with the acl option :/ and it would reduce the portability potential to other OSes, even it is not the same level of concern.
For all those reasons, I'd stick to the first option, and if it does not work maybe try something else :)
Updated by Jonathan CLARKE over 10 years ago
- Assignee changed from Jonathan CLARKE to Matthieu CERDA
I agree, the git config option seems best.
However, caution: it is called "--shared" not "--share". Also, from the man page:
--shared[=(false|true|umask|group|all|world|everybody|0xxx)] Specify that the git repository is to be shared amongst several users. This allows users belonging to the same group to push into that repository. When specified, the config variable "core.sharedRepository" is set so that files and directories under $GIT_DIR are created with the requested permissions. When not specified, git will use permissions reported by umask(2). The option can have the following values, defaulting to group if no value is given: · umask (or false): Use permissions reported by umask(2). The default, when --shared is not specified. · group (or true): Make the repository group-writable, (and g+sx, since the git group may be not the primary group of all users). This is used to loosen the permissions of an otherwise safe umask(2) value. Note that the umask still applies to the other permission bits (e.g. if umask is 0022, using group will not remove read privileges from other (non-group) users). See 0xxx for how to exactly specify the repository permissions. · all (or world or everybody): Same as group, but make the repository readable by all users. · 0xxx: 0xxx is an octal number and each file will have mode 0xxx. 0xxx will override users' umask(2) value (and not only loosen permissions as group and all does). 0640 will create a repository which is group-readable, but not group-writable or accessible to others. 0660 will create a repo that is readable and writable to the current user and group, but inaccessible to others.
Therefore, it does not seem that "2775" is an applicable mode. I suggest we simply use "--shared=group", since that is our intent (it will always be clearer to write an intent with a word than using obscure octal modes).
Updated by Vincent MEMBRÉ over 10 years ago
- Status changed from Discussion to Pending technical review
- Assignee changed from Matthieu CERDA to Jonathan CLARKE
- Pull Request set to https://github.com/Normation/rudder-packages/pull/429
Updated by Vincent MEMBRÉ over 10 years ago
- Status changed from Pending technical review to Pending release
- % Done changed from 0 to 100
Applied in changeset packages:commit:d1f710e27cf5bbc15d698b5145aa0ec67653c333.
Updated by Jonathan CLARKE over 10 years ago
Applied in changeset packages:commit:63a75a119a35b10e0a3aa0cf56b218f041efaa27.
Updated by Vincent MEMBRÉ over 10 years ago
- Subject changed from ncf-api_virtual has no rights on git if it was initiated after the package installation to correct permission on /var/rudder/configuration-repository so ncf-builder can write/delete techniques
Updated by Vincent MEMBRÉ over 10 years ago
- Status changed from Pending release to Released
This bug has been fixed in Rudder 2.11.0~rc1 (announcement , changelog), which was released today.
- Download information: https://www.rudder-project.org/site/get-rudder/downloads/