Я хочу настроить некоторые репозитории 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
Однако что-то с моей настройкой работает неправильно ...
userone
не является членом группы myproject
, userone
может проверить весь репозиторий. (Это связано с тем, что userone
является членом группы sudo
?) usertwo
является членом группы myproject
, но не может зафиксировать репозиторий из-за ошибки: permission denied while accessing /svn/myproject/db/revprops/__something__/__something__
] Пункт 1) является проблемой, потому что это может означать, что каждый, у кого доступ к оболочке машины, может проверить код. Пункт 2) является проблематичным, потому что пользователь с (по-видимому) правому разрешению не может зафиксировать репозиторий.
Что я делаю неправильно в этой настройке?
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
Несмотря на то, что userone не является членом группы myproject, пользователь может проверить весь репозиторий.
blockquote>Хранилища, вероятно, читаются в мире. Вы можете изменить это, выполнив
sudo chmod -R o-rws /svn/myproject
(это потому, что userone является членом группы sudo?)
blockquote>Нет, членство в
sudo
просто означает, что вы можете получить привилегии root черезsudo
. SVN не воспользовался бы этим. (Но в общем случае, если пользователь имеет права root на машине, они могут читать что-либо на нем, вы не можете их остановить.)usertwo является членом группы myproject, но не может зафиксировать репозиторий
blockquote>. Вероятно, произошло то, что
userone
передал некоторые новые файлы в репозиторий, и они в конечном итоге принадлежат ему и не могут быть записаны группой проектов.Обычное решение для этого состоит в том, чтобы все каталоги внутри проекта имели установленный бит setgid. Это заставит все файлы, созданные внутри них, принадлежать группе проекта.
sudo chmod -R g+s /svn/myproject
Затем вам также нужно убедиться, что у каждого пользователя umask установлено значение 002, так что файлы будут записываться по группам по умолчанию .
Все это становится довольно сложным и хрупким, поэтому может быть проще обслуживать репозиторий SVN только через
https
.
sudo setfacl -Rm d:g::rwX,g::rwX repo_dir/db
– vladr
3 June 2015 в 17:21