Unix 如何撤消文件和目录权限中不正确的手动递归更改?

Unix 如何撤消文件和目录权限中不正确的手动递归更改?,unix,perforce,file-permissions,Unix,Perforce,File Permissions,我不熟悉perforce和unix。执行“p4同步”时,收到一个错误,“无法删除可写文件”,用于我的一些文件。 然后我做了一个“chmod-R 555./*”,认为它会删除给我上述错误的文件的写入权限。我不知道我们对perforce中的目录和文件有不同的权限。现在我已经为所有目录和文件设置了r-x权限,现在当我尝试执行“p4同步”时,所有文件都会出现以下错误: 打开写入:/home/path_to_file/tmp.18455.196170:权限被拒绝 我应该怎么做才能恢复perforce提供的

我不熟悉perforce和unix。执行“p4同步”时,收到一个错误,“无法删除可写文件”,用于我的一些文件。 然后我做了一个“chmod-R 555./*”,认为它会删除给我上述错误的文件的写入权限。我不知道我们对perforce中的目录和文件有不同的权限。现在我已经为所有目录和文件设置了r-x权限,现在当我尝试执行“p4同步”时,所有文件都会出现以下错误:

打开写入:/home/path_to_file/tmp.18455.196170:权限被拒绝


我应该怎么做才能恢复perforce提供的原始权限?

对文件和目录应用不同权限的简单方法是使用find,如下所示:

find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 444
这将对目录应用权限
755
,对文件应用权限
444

但是,请注意,我不知道在您的情况下必须应用哪些权限,您可能需要查看另一个安装以了解情况。在您的情况下,我怀疑错误消息来自缺少写入权限的目录

还要注意,使用chmod的八进制掩码不一定是您想要的,因为它意味着“分配这些权限”;当您想要“删除”或“添加”时,通常最好使用符号模式;例如,要仅删除文件上的所有三个写入位,可以指定
a-w
(将
w
删除到
a
ll字段):

最后,请注意,您可以使用find递归列出所有文件和目录的权限,以便手动验证:

find . -ls

该错误表示工作区中的文件是可写的,但尚未由“Perforce”(打开进行编辑)签出

如果希望可写文件被从Perforce同步的文件覆盖,请在客户端规范中将“noclobber”选项设置为“clobber”

有关此选项和“p4客户端”命令的详细信息,请访问:

希望这有帮助,
Jen.

如果可以,请成为root用户并重置权限。@cad:我想“.但是如何?”是这个问题的重点Harley-我编辑了标题,使其更关注文本末尾您实际要求的内容。如果这不是重点,请重新编辑并放置更好的标题。我可以更改我的Performance client中文件和文件夹的权限。但我已将每个文件和目录的权限设置为555。Perforce本身为目录和文件设置了不同的权限(对于读取和执行的目录和只读的文件),我如何获取这些权限??很明显,我不能对每个文件和目录单独执行此操作。好吧,我正在寻找一个更为性能特定的解决方案。是否有一种方法可以通过某个perforce命令强制同步,并正确重置文件和目录的权限。@Harley rm-r您的perforce客户端根目录;p4同步-fYes…这就是我最终所做的。我只是想要更真实的东西。因为这个“不能删除可写文件”的错误是我时不时会遇到的。谢谢(bdw.)
find . -ls