CentOS 8
Sponsored Link

Subversion : アクセス権を設定する2020/03/25

 
[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]
redhat = password
cent = password
fedora = password
[root@dlp ~]#
vi /var/svn/repos/project/conf/authz
# グループと所属ユーザーを定義

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

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

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

Authentication realm: <svn://dlp.srv.world:3690> 9444b7fa-df28-4653-9e56-f5bc2b885f75
Password for 'cent': ********   # [1] で設定したパスワード

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

   <svn://dlp.srv.world:3690> 9444b7fa-df28-4653-9e56-f5bc2b885f75

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/cent/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? no
branches/
tags/
trunk/

# 注意書きの通り設定

[cent@node01 ~]$
echo 'store-plaintext-passwords = no' >> ~/.subversion/servers
[cent@node01 ~]$
mkdir work

[cent@node01 ~]$
cd work

[cent@node01 work]$
svn --username cent co svn://dlp.srv.world/repos/project

Authentication realm: <svn://dlp.srv.world:3690> 9444b7fa-df28-4653-9e56-f5bc2b885f75
Password for 'cent': ********

A    project/branches
A    project/tags
A    project/trunk
A    project/trunk/index.html
A    project/trunk/testfile.txt
A    project/trunk/testscript.py
A    project/trunk/testtool.sh
Checked out revision 4.

[cent@node01 work]$
cd project/trunk
# 適当にバージョン管理下の任意のファイル編集後に

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

[cent@node01 trunk]$
svn --username fedora ci index.html -m "update by fedora"

Authentication realm: <svn://dlp.srv.world:3690> 9444b7fa-df28-4653-9e56-f5bc2b885f75
Password for 'fedora': ********

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

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

[cent@node01 trunk]$
svn --username redhat ci index.html -m "update by redhat"

Authentication realm: <svn://dlp.srv.world:3690> 9444b7fa-df28-4653-9e56-f5bc2b885f75
Password for 'redhat': ********

Sending        index.html
Transmitting file data .done
Committing transaction...
Committed revision 5.
# 設定通り [commit] できた
関連コンテンツ