Subversion & amp; Разрешения SVN + SSH

Я хочу настроить некоторые репозитории Subversion, к которым можно получить доступ через SVN + SSH, так что каждый репозиторий принадлежит другой группе и доступен только для чтения и записи членами группы. Это то, что я сделал до сих пор:

sudo addgroup myproject
sudo mkdir -p /svn/myproject
sudo svnadmin create /svn/myproject
sudo chown -R :myproject /svn/myproject
sudo chmod -R g+rws /svn/myproject

Однако что-то с моей настройкой работает неправильно ...

  1. Хотя userone не является членом группы myproject, userone может проверить весь репозиторий. (Это связано с тем, что userone является членом группы sudo?)
  2. usertwo является членом группы myproject, но не может зафиксировать репозиторий из-за ошибки: permission denied while accessing /svn/myproject/db/revprops/__something__/__something__ ]

Пункт 1) является проблемой, потому что это может означать, что каждый, у кого доступ к оболочке машины, может проверить код. Пункт 2) является проблематичным, потому что пользователь с (по-видимому) правому разрешению не может зафиксировать репозиторий.

Что я делаю неправильно в этой настройке?

3
задан 6 June 2012 в 22:01

8 ответов

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 25 July 2018 в 18:37

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 31 July 2018 в 13:32

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 2 August 2018 в 00:47

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 4 August 2018 в 16:17

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 6 August 2018 в 00:56

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 7 August 2018 в 18:21

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 10 August 2018 в 07:05

Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.

Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив

sudo chmod -R o-rws /svn/myproject

(это потому, что userone является членом группы sudo?)

Нет, членство в sudo просто означает, что вы можете получить привилегии root через sudo. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)

usertwo является членом группы myproject, но не может зафиксировать репозиторий

. Вероятно, произошло то, что userone передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.

Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.

sudo chmod -R g+s /svn/myproject

Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .

Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через https.

3
ответ дан 15 August 2018 в 19:03
  • 1
    Вам не нужно устанавливать umask всех на 002, если вы включите ACL в файловой системе и sudo setfacl -Rm d:g::rwX,g::rwX repo_dir/db – vladr 3 June 2015 в 17:21

Другие вопросы по тегам:

Похожие вопросы: