为什么在CVS的新文件夹创建时拒绝结帐权限?

时间:2017-05-19 16:50:33

标签: configuration permissions cvs

我们通常通过Eclipse访问我们的CVS服务器。我们的一位队友steveo在项目Testing的Java src文件夹下创建了一个新包ProjectName

之后,这导致ProjectName的所有结帐失败。

  

服务器在执行“cvs checkout”命令时报告错误。

     

:cvs checkout:无法为`/ app / cvs / repository / Main / ProjectName / src / Testing'创建锁定目录(/app/cvs/repository/Main/ProjectName/src/Testing/#cvs.lock) :许可被拒绝

     

:cvs checkout:无法获取存储库中的dir锁`/ app / cvs / repository / Main / ProjectName / src / Testing'

     

:cvs [checkout aborted]:读取锁定失败 - 放弃

我putty'd到CVS服务器并在ls -l文件夹上做了src

  

drwxrwxr-x 5 root cvs 4096 May 19 12:05 com

     

drwxrwxr-x 3 steveo steveo 4096 May 19 12:05测试

sudo su,备份到项目文件夹,然后运行chgrp -R cvs ProjectName

  

drwxrwxr-x 5 root cvs 4096 May 19 12:05 com

     

drwxrwxr-x 3 steveo cvs 4096 May 19 12:05测试

现在已经解决了这个问题......直到另一个用户创建了一个包。

导致此问题的原因是什么?我如何将它们全部默认为cvs

this similar SO question的答案没有帮助。

1 个答案:

答案 0 :(得分:0)

想出来并为后代发布答案。

我原本打算将存储库文件夹设置为组cvs,并通过chmod g+s /app/cvs/repository/使其粘滞,但这不是递归的,我不知道我想搞砸它。

用户的默认组ID(GID)不是cvs。由于我们使用Active Directory作为帐户登录,因此解决方案有点变通方法。幸运的是,我们只将此服务器用于CVS,这使解决方案变得简单。

必须为每个帐户和每个新帐户执行此操作。

  1. 确保该帐户已尝试通过Eclipse / RAD登录CVS(也许签出了一个项目)。这将在home下创建用户配置文件。
  2. sudo su
  3. cd \home\{username}
  4. 由于我们没有其他任何内容,echo "newgrp cvs" >> .profile
  5. 这会在登录时为违规帐户将默认组设置为cvs,我可以将其称为一天......最终迁移到Git / BitBucket。