在perforce中撤消用户权限

在perforce中撤消用户权限,perforce,Perforce,P4 protects命令返回用户权限,例如如下所示 p4 protects read group user_group * //PROJECT1/... list group user_group * //CENTER/USA/Connect/...,* write user daniel.richter * //APPS/Auto/Source/CENTER/China/Areos.csv write user daniel.richter * //APPS/Auto//Source/

P4 protects命令返回用户权限,例如如下所示

p4 protects

read group user_group * //PROJECT1/...
list group user_group * //CENTER/USA/Connect/...,*
write user daniel.richter  * //APPS/Auto/Source/CENTER/China/Areos.csv
write user daniel.richter  * //APPS/Auto//Source/CENTER/China/NFE/CoreAs.csv
write group CENTER_CHINA_HP_NW_WRITE * //CENTER/China/HP_NW/ENGINE_SUB/...
list group user_group * -//POST/3G/...
list group user_group * -//PROJ/2005/DevTools/...
list group user_group * -//PROJ/STACK/Flow/...
list group user_group * -//GROUP1/OMR/EXAMPLE/...
list group user_group * -//APPS/Protect/APPS/...
list group user_group * -//APPS/Protect/Group/Apps.txt

通过上述输出,可以使用p4命令删除/撤销perforce中用户的权限?手动编辑保护表是一个耗时的过程,因为我需要撤销多个用户的权限。所以,我需要帮助。谢谢大家!

既然您已经设置了使用组的权限(丹尼尔·里希特的特例除外),您可能只想将该用户从组
用户组
和/或
中国中心HP\u NW\u写入
中删除,而不是将每个用户的特定排除项添加到保护表本身。您可以运行:

p4 groups USERNAME
要查看用户所属的组,请执行以下操作:

p4 group GROUPNAME
编辑组

在任何脚本语言中,上述两个命令都可以很容易地自动执行。使用P4Python从所有组中删除用户的简单脚本可能如下所示:

from P4 import P4
import sys

user = sys.argv[1]

p4 = P4()
with p4.connect():
    for line in p4.run_groups(user):
        group = p4.fetch_group(line['group'])
        group['Users'].remove(user)
        p4.save_group(group)

由于您已经设置了使用组的权限(daniel.richter的特例除外),您可能只想从组
user\u组
和/或
CENTER\u CHINA\u HP\u NW\u WRITE
中删除该用户,而不是将每个用户的特定排除项添加到保护表本身。您可以运行:

p4 groups USERNAME
要查看用户所属的组,请执行以下操作:

p4 group GROUPNAME
编辑组

在任何脚本语言中,上述两个命令都可以很容易地自动执行。使用P4Python从所有组中删除用户的简单脚本可能如下所示:

from P4 import P4
import sys

user = sys.argv[1]

p4 = P4()
with p4.connect():
    for line in p4.run_groups(user):
        group = p4.fetch_group(line['group'])
        group['Users'].remove(user)
        p4.save_group(group)

我手头没有Unix环境,但我拼凑了一个快速的Python脚本。任何语言中的基本策略都是一样的,除非你把它作为一个纯shell的东西来做,你需要使用
sed
从明文形式中过滤用户名,而不是从一个好的数据结构中弹出用户名。这类似于
p4 groups USER | xargs-i p4 group-o{}sed-s“s/USER$/”| p4 group-i
——我不确定是否需要在其中的某些部分加上引号,让xargs运行整个过程,包括管道,或者是否需要其他一些管道来让每行
p4 group
输出结果产生一个
p4 group-o | sed | p4 group-i
调用。不过这是一般的想法。我们在Windows和Ubuntu(Linux)上都使用p4和P4V。因此,下面的
remove\u from\u groups.py
脚本正在将用户从所有组中删除。此外,我将检查是否从特定/指定的组中删除用户。像这样的脚本的一个很好的用途是在用户删除时作为触发器——这样您可以从P4V(或任何位置)中删除该用户,服务器将自动从组中删除该用户。如果您手动调用它,我不确定这是否比正常编辑组规范节省了您那么多时间。事实上,我们有多个用户,他们是多个组的一部分,因此需要使用脚本方法从某些组中删除用户。我手边没有Unix环境,但我编写了一个快速Python脚本。任何语言中的基本策略都是一样的,除非你把它作为一个纯shell的东西来做,你需要使用
sed
从明文形式中过滤用户名,而不是从一个好的数据结构中弹出用户名。这类似于
p4 groups USER | xargs-i p4 group-o{}sed-s“s/USER$/”| p4 group-i
——我不确定是否需要在其中的某些部分加上引号,让xargs运行整个过程,包括管道,或者是否需要其他一些管道来让每行
p4 group
输出结果产生一个
p4 group-o | sed | p4 group-i
调用。不过这是一般的想法。我们在Windows和Ubuntu(Linux)上都使用p4和P4V。因此,下面的
remove\u from\u groups.py
脚本正在将用户从所有组中删除。此外,我将检查是否从特定/指定的组中删除用户。像这样的脚本的一个很好的用途是在用户删除时作为触发器——这样您可以从P4V(或任何位置)中删除该用户,服务器将自动从组中删除该用户。如果您手动调用它,我不确定这是否比正常编辑组规范节省了您那么多时间。实际上,我们有多个用户,他们是多个组的一部分,因此需要使用脚本方法从某些组中删除用户。