Bash 为什么bzr推送的许可被拒绝?
user2希望bzr将更改推送到目录Bash 为什么bzr推送的许可被拒绝?,bash,version-control,permissions,bazaar,chmod,Bash,Version Control,Permissions,Bazaar,Chmod,user2希望bzr将更改推送到目录/home/user1/project/dev。user2在此目录上具有group+rwx权限,但不在我的主目录中/home/user1/ 这将导致以下错误: bzr:错误:权限被拒绝:“h2i9usf1l6ieofpuul87.pack”:[Errno 13]权限被拒绝: “/home/user1/.bzr/repository/upload/h2i9usf1l6ieofpuul87.pack” 当/home/user1/project/dev分支来自/ho
/home/user1/project/dev
。user2在此目录上具有group+rwx权限,但不在我的主目录中/home/user1/
这将导致以下错误:
bzr:错误:权限被拒绝:“h2i9usf1l6ieofpuul87.pack”:[Errno 13]权限被拒绝:
“/home/user1/.bzr/repository/upload/h2i9usf1l6ieofpuul87.pack”
当/home/user1/project/dev
分支来自/home/usr1/project/trunk
时,我不清楚为什么user2需要访问我家/home/user1/.bzr/
的权限
我对使用风投公司比较陌生,不知道自己是如何陷入这种困境的。有没有办法打破对
/home/user1/.bzr
的依赖关系,或者从/home/user1/project/trunk/
创建一个没有这种依赖关系的分支?看起来您在/home/user1/
中共享了存储库,而/home/user1/project/dev
的分支正在使用该存储库。因此,它需要访问存储库来存储新修订
如何检查:运行命令bzr info
并检查其输出以了解该分支的定义。如果您将看到“存储库树”或“存储库分支”,那么该分支肯定使用共享存储库。您应该在bzr info
的输出中看到存储库的路径
如何修复:在
/home/user1/project/dev
的分支中执行命令bzr reconfigure--standalone
,指示bzr停止使用共享存储库。再次检查bzr info
的输出。现在它应该被命名为“独立树”或“独立分支”。在这之后,user2应该能够成功地推送到该分支。您似乎在/home/user1/
中共享了存储库,而/home/user1/project/dev
中的分支正在使用该存储库。因此,它需要访问存储库来存储新修订
如何检查:运行命令bzr info
并检查其输出以了解该分支的定义。如果您将看到“存储库树”或“存储库分支”,那么该分支肯定使用共享存储库。您应该在bzr info
的输出中看到存储库的路径
如何修复:在/home/user1/project/dev
的分支中执行命令bzr reconfigure--standalone
,指示bzr停止使用共享存储库。再次检查bzr info
的输出。现在它应该被命名为“独立树”或“独立分支”。之后,user2应该能够成功地推送到该分支。(由user3提供)
可以使用以下命令修复此问题(组名为project\u dev
):
project\u dev
所有project\u dev
):
project\u dev
所有我认为所有父目录都应该具有o+x权限。我认为所有父目录都应该具有o+x权限。谢谢您的回答。这是有道理的,但它只是将错误更改为:
error:Permission denied:'/home/user1/project/dev/.bzr/repository/upload/h2i9usf1l6ieofpuul87.pack'bzr:[Errno 13]Permission denied
。这是有道理的,但它只是将错误更改为:error:Permission denied:'/home/user1/project/dev/.bzr/repository/upload/h2i9usf1l6ieofpuul87.pack'bzr:[Errno 13]Permission denied
我发布了一个替代解决方案,仍在等待它是否有效。这不是一个棘手的问题(1777或t)。它是一个setgid位(2777或s)。它不是一个粘性位(1777或t)。这是一个setgid位(2777或s)。
chgrp -R project_dev /home/user1/project/dev
find /home/user1/project/dev -type d -exec chmod g+s {} \;