【问题标题】:how to find who is holding the lock of a file in RCS如何在 RCS 中查找谁持有文件的锁
【发布时间】:2016-02-22 07:11:03
【问题描述】:

假设我锁定了一个由 RCS 控制的文件

[root@host1:/etc/yp]# co -l group auto_home
RCS/group,v  -->  group
revision 1.6103 (locked)
done
RCS/auto_home,v  -->  auto_home
revision 1.4003 (locked)
done
[root@host1:/etc/yp]#

我看到在 RCS 目录中生成了带有 ",v" 的文件

[root@host1:/etc/yp/RCS]# ls -lrth | tail -3
-r--r--r--   1 root     other        16M Feb 20 12:20 passwd,v
-r--r--r--   1 root     other       3.5M Feb 21 23:03 group,v
-r--r--r--   1 root     other       4.1M Feb 21 23:03 auto_home,v
[root@host1:/etc/yp/RCS]#

我们能否确定谁持有锁定文件? 所有管理员都使用“root”登录进行更改(通过 sudo -s 成为 root)

如果有人已经锁定,我会看到以下消息

[root@campyp:/etc/yp]# co -l group
RCS/group,v  -->  group
revision 1.6103 (locked)
writable group exists; remove it? [ny](n): ^C
RCS: Interrupt
RCS: Cleaning up.
[root@campyp:/etc/yp]#

我们可以检查谁锁定了文件吗?

【问题讨论】:

  • 如果用户在锁定文件时以 root 身份登录,则 root 拥有锁定。如果您以 root 身份登录,那么您拥有锁。这就是为什么以 root 身份做这样的事情是一个真的坏主意!

标签: linux unix version-control rcs


【解决方案1】:

在 RCS 中,锁存储在归档文件的标题中。这是一个示例标题来说明:

head    1.1;
access
        thomas;
symbols;
locks
        thomas:1.1; strict;
comment @# @;

1.1
date    2014.08.14.00.40.55;    author thomas;  state Exp;
branches;
next    ;

desc
@@

rlog 命令提供该标头信息:

$ rlog 2linux,v

RCS file: 2linux,v
Working file: 2linux
head: 1.1
branch:
locks: strict
        thomas: 1.1
access list:
        thomas
symbolic names:
keyword substitution: kv
total revisions: 1;     selected revisions: 1
description:
----------------------------
revision 1.1    locked by: thomas;
date: 2014/08/14 00:40:55;  author: thomas;  state: Exp;
RCS_BASE
=============================================================================

默认情况下,锁的作者是通过检查environment variablesLOGNAMEUSER来确定的。这些是在您的用户sudo 时设置的,例如,设置为“root”。但该行为可以被覆盖:

  • sudo 时,原来的$USER 保存在SUDO_USER 中。可以将$LOGNAME$USER$SUDO_USER重置,使锁对应真实用户。
  • RCS 被记录为支持对 root 拥有的文件进行 setuid 操作。您也许可以使用它,而不是让您的用户sudo

进一步阅读:

【讨论】:

    【解决方案2】:

    没有。如果你所有的用户都是root,那么锁永远属于root

    无论如何,这充其量是一个可疑的安排。让用户以自己的身份提交编辑;首先应该没有理智的理由以root 做这些事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2018-12-30
      • 2014-12-16
      • 1970-01-01
      相关资源
      最近更新 更多