【问题标题】:Why is checkout permission denied on new folder creation for CVS?为什么为 CVS 创建新文件夹时签出权限被拒绝?
【发布时间】:2017-05-19 16:50:33
【问题描述】:

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

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

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

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

: cvs checkout: 在仓库`/app/cvs/repository/Main/ProjectName/src/Testing'中获取目录锁失败

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

我对 CVS 服务器进行了 putty 操作,并在 src 文件夹上创建了一个 ls -l

drwxrwxr-x 5 根 cvs 4096 5 月 19 日 12:05 com

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

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

drwxrwxr-x 5 根 cvs 4096 5 月 19 日 12:05 com

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

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

是什么原因造成的?如何将它们全部默认为cvs

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

【问题讨论】:

    标签: configuration permissions cvs


    【解决方案1】:

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

    我原本打算将存储库文件夹设置为组@98​​7654321@ 并通过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

    这会将默认组设置为cvs,用于登录时有问题的帐户,我可以称之为一天...并最终迁移到 Git / BitBucket。

    【讨论】:

      猜你喜欢
      • 2011-10-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      相关资源
      最近更新 更多