# safe.directory and ACLs

5 messages from 2022-11-02 to 2022-11-03. Participants: John Soo, brian m. carlson, Taylor Blau.
Thread: https://gitlist.dev/t/58736

## John Soo, 2022-11-02 15:18

Subject: safe.directory and ACLs
Message-ID: <CAJyRyRo7oVAfLx8MONO=Y8KhLvL+tJgDTbCUezR1AFa73R5pbw@mail.gmail.com>
URL: https://gitlist.dev/e/CAJyRyRo7oVAfLx8MONO%3DY8KhLvL%2BtJgDTbCUezR1AFa73R5pbw%40mail.gmail.com

```
Hello git!

We have some build processes that would like access to repos in /home
directories that are 0700. We had done this already:

$ setfacl --recursive --modify group:<build users
group>:r-X,default:group:<build users group>:r-X /home

Should this ACL be enough to consider the repos "owned" by the build
users? Should *any* ACL be enough to consider the repos "owned" by the
build users?

Currently:
$ sudo -u <build user> git config --get safe.directory
$ sudo -u <build user> git -C /home/<non build user>/repo rev-parse HEAD
fatal: unsafe repository ('/home/<non build user>/repo' is owned by
someone else)
To add an exception for this directory, call:

        git config --global --add safe.directory /home/<non build user>

Kindly,

John Soo

```

## brian m. carlson, 2022-11-02 21:27

Subject: Re: safe.directory and ACLs
Message-ID: <Y2LgzmTvElmRTsoe@tapette.crustytoothpaste.net>
URL: https://gitlist.dev/e/Y2LgzmTvElmRTsoe%40tapette.crustytoothpaste.net
In-Reply-To: <CAJyRyRo7oVAfLx8MONO=Y8KhLvL+tJgDTbCUezR1AFa73R5pbw@mail.gmail.com>

```
On 2022-11-02 at 15:18:25, John Soo wrote:
> Hello git!
> 
> We have some build processes that would like access to repos in /home
> directories that are 0700. We had done this already:
> 
> $ setfacl --recursive --modify group:<build users
> group>:r-X,default:group:<build users group>:r-X /home
> 
> Should this ACL be enough to consider the repos "owned" by the build
> users? Should *any* ACL be enough to consider the repos "owned" by the
> build users?
> 
> Currently:
> $ sudo -u <build user> git config --get safe.directory
> $ sudo -u <build user> git -C /home/<non build user>/repo rev-parse HEAD
> fatal: unsafe repository ('/home/<non build user>/repo' is owned by
> someone else)
> To add an exception for this directory, call:
> 
>         git config --global --add safe.directory /home/<non build user>

No, the permissions of a repository, whether standard Unix permissions
or ACLs, are not relevant to ownership.  The question here is whether
the owner of the .git directory (that is, the value of the `st_uid`
field when calling lstat(2) on it) is equal to the effective user ID.

When you the path in `ls`, you can see the owner and group of the file
specified, and that owner is what matters here.
-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

```

## John Soo, 2022-11-02 23:41

Subject: Re: safe.directory and ACLs
Message-ID: <CAJyRyRqMPX93-Oa5XMvZtDTRxh0SisUhOFAWhv-6hXR5sEkQpA@mail.gmail.com>
URL: https://gitlist.dev/e/CAJyRyRqMPX93-Oa5XMvZtDTRxh0SisUhOFAWhv-6hXR5sEkQpA%40mail.gmail.com
In-Reply-To: <Y2LgzmTvElmRTsoe@tapette.crustytoothpaste.net>

```
Hi brian!

> No, the permissions of a repository, whether standard Unix permissions
> or ACLs, are not relevant to ownership.  The question here is whether
> the owner of the .git directory (that is, the value of the `st_uid`
> field when calling lstat(2) on it) is equal to the effective user ID.
>
> When you the path in `ls`, you can see the owner and group of the file
> specified, and that owner is what matters here.

I see. Is that by design or an implementation detail?

Kindly,

John

```

## Taylor Blau, 2022-11-03 00:11

Subject: Re: safe.directory and ACLs
Message-ID: <Y2MHNeSrhxfH1Ayf@nand.local>
URL: https://gitlist.dev/e/Y2MHNeSrhxfH1Ayf%40nand.local
In-Reply-To: <CAJyRyRqMPX93-Oa5XMvZtDTRxh0SisUhOFAWhv-6hXR5sEkQpA@mail.gmail.com>

```
On Wed, Nov 02, 2022 at 04:41:15PM -0700, John Soo wrote:
> Hi brian!
>
> > No, the permissions of a repository, whether standard Unix permissions
> > or ACLs, are not relevant to ownership.  The question here is whether
> > the owner of the .git directory (that is, the value of the `st_uid`
> > field when calling lstat(2) on it) is equal to the effective user ID.
> >
> > When you the path in `ls`, you can see the owner and group of the file
> > specified, and that owner is what matters here.
>
> I see. Is that by design or an implementation detail?

It is by design. See 8959555cee7 (setup_git_directory(): add an owner
check for the top-level directory, 2022-03-02) for details.

Thanks,
Taylor

```

## John Soo, 2022-11-03 00:39

Subject: Re: safe.directory and ACLs
Message-ID: <CAJyRyRphLTHZ6pUqsq0F+X_9=ejcTByr5KvRSuMBn2DA5d2EMw@mail.gmail.com>
URL: https://gitlist.dev/e/CAJyRyRphLTHZ6pUqsq0F%2BX_9%3DejcTByr5KvRSuMBn2DA5d2EMw%40mail.gmail.com
In-Reply-To: <Y2MHNeSrhxfH1Ayf@nand.local>

```
Thank you!

Got it!

Kindly,

John

```
