Debian 12 bookworm
Sponsored Link

Subversion : アクセス権を設定する2023/07/21

 

[svnserve] を起動している場合の、リポジトリに対するアクセス権の設定です。
([http://] や [file://] でアクセスする場合は無関係)

[1] 例として [/var/svn/repos/project] リポジトリに対するアクセス権を設定します。
root@dlp:~#
vi /var/svn/repos/project/conf/svnserve.conf
# 9行目 : 匿名アクセスを禁止する場合は追記

[general]
anon-access = none
# 28行目 : コメント解除

password-db = passwd
# 37行目 : コメント解除

authz-db = authz
root@dlp:~#
vi /var/svn/repos/project/conf/passwd
# ユーザー名とパスワードを設定

[users]
debian = password
bookworm = password
ubuntu = password
root@dlp:~#
vi /var/svn/repos/project/conf/authz
# グループと所属ユーザーを定義

[groups]
developer = debian,bookworm
# ドキュメントルートに対して [developer] グループに読み書き許可

[/]
@developer = rw
# [trunk] フォルダに対して [ubuntu] に読み取り許可

[/trunk]
ubuntu = r
[2] 任意のホストから SVN アクセスして設定を確認します。
debian@node01:~$
svn --username debian list svn://dlp.srv.world/repos/project

Authentication realm: <svn://dlp.srv.world:3690> 02ae3c99-e1bc-42d3-9bc3-12f89593ff32
Password for 'debian': ********   # [1] で設定したパスワード


-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <svn://dlp.srv.world:3690> 02ae3c99-e1bc-42d3-9bc3-12f89593ff32

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/debian/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? no
branches/
tags/
trunk/

debian@node01:~$
echo 'store-plaintext-passwords = no' >> ~/.subversion/servers
debian@node01:~$
mkdir work3

debian@node01:~$
cd work3

debian@node01:~/work3$
svn --username debian co svn://dlp.srv.world/repos/project

Authentication realm: <svn://dlp.srv.world:3690> 02ae3c99-e1bc-42d3-9bc3-12f89593ff32
Password for 'debian': ********

A    project/branches
A    project/tags
A    project/trunk
Checked out revision 3.

debian@node01:~/work3$
cd project/trunk
# 適当にバージョン管理下の任意のファイル作成/編集後に
# [debian] ユーザーで [commit]

debian@node01:~/work3/project/trunk$
echo "index.html" > index.html

debian@node01:~/work3/project/trunk$
svn add index.html

debian@node01:~/work3/project/trunk$
svn --username ubuntu ci index.html -m "add new index.html 2023072101"

Authentication realm: <svn://dlp.srv.world:3690> 02ae3c99-e1bc-42d3-9bc3-12f89593ff32
Password for 'debian': ********

svn: E170001: Commit failed (details follow):
svn: E170001: Authorization failed
# 設定通り拒否された

# [bookworm] ユーザーで [commit]

debian@node01:~/work3/project/trunk$
svn --username bookworm ci index.html -m "add new index.html 2023072101"

Authentication realm: <svn://dlp.srv.world:3690> 02ae3c99-e1bc-42d3-9bc3-12f89593ff32
Password for 'jammy': ********

Adding         index.html
Transmitting file data .done
Committing transaction...
Committed revision 4.
# 設定通り [commit] できた

debian@node01:~/work3/project/trunk$
svn update

debian@node01:~/work3/project/trunk$
svn list

index.html
test.txt
testfile.txt
関連コンテンツ