要设置 svn 存储库(在 arch linux 上运行),我想使用我的 NAS 来存储存储库。我只能使用 CIFS (smb) 挂载它。
起初存在一个问题,即 httpd 用户无法写入文件系统,我通过添加选项解决了这个问题rm,file_mode=0777,dir_mode=777
。
尝试将某些内容提交到存储库时出现的下一个错误消息是Can't set permission on ...
由于它不是 unix 文件系统而无法设置权限。现在我在想是否可以挂载共享,使其由 httpd 拥有,并且权限已正确设置。
所以我现在的问题是我必须选择什么file_mode
让dir_mode
svn 接受它?有可能吗?我如何以特定用户身份挂载 CIFS 共享。到目前为止,我在这个主题上找到的所有信息都包含 umask 选项,我的操作系统不想接受该选项,因为它已被替换,file_mode
如果dir_mode
我理解正确的话。
当然,后备选项是不使用 NAS,而是使用普通磁盘并通过作业同步到 NAS。
您还需要哪些其他选择?我正在使用最新的(和更新的)Arch Linux 的 ARM 版本并按照描述安装了 apache svn这里。
答案1
是否启用了 selinux,如果启用了,远程磁盘是否允许 httpd 对其进行写入?
通过 ssh 而不是 http 运行你的 subversion 客户端是一个选择吗?我发现以本地用户身份运行提交(通过 ssh)有时可以在 httpd 用户无法写入的情况下写入非常规安装的磁盘。
要以特定用户身份挂载 cifs 共享,您必须在某处存储密码。直接在 fstab 的选项中或在安装选项中引用的凭据文件中。这个 Ubuntu 线程可能会有所帮助:https://askubuntu.com/questions/157128/proper-fstab-entry-to-mount-a-samba-share-on-boot
答案2
我的解决方案是使用以下 fstab 选项挂载磁盘
//server/share /mnt cifs username=USER,password=PSWD,rw,file_mode=0755,dir_mode=0755,uid=http 0 0
看来最重要的是uid=http
选择。