如何设置/保留目录权限?


0

我正在使用CwRsync从我的Windows开发机器连接到linux网络服务器:

rsync -avuz -e ./ssh --exclude=".svn" /cygdrive/c/xampp/htdocs/project123/ user123@project123.com:/home/user123/public_html

这使我的开发项目目录很快地与服务器同步。

但执行此操作后,所有目录属性都将重置为本地用户 user123 只是,所以该网站不再可用。我需要手动重置这些属性。

为什么会发生这种情况,以及如何预防?

PS。来自Windows环境我很难理解rsync。我从一些例子中复制了上面的命令......只需要让这个小东西工作......


1
哪个用户正在运行rsync命令?从rsync手册页: -o, --owner preserve owner (super-user only)
Mikael Kjær

Answers:


1

这取决于你所说的“属性”。

  • 权限? -p--perms )选项应该保留它们。使用时会自动启用 -a但是,如果权限丢失,可能是由CwRsync本身引起的。

    确保(使用Cygwin的 lschmod )那个 本地 权限是正确的。或者,试试吧 --no-perms 选项。

  • 所有权? 在Unix系统上,不允许用户更改文件所有权。如果您以。登录 user123 并创建一个文件,它将归 user123,期间。群体也有类似的限制 - 你 能够 更改文件的组,但仅限于您自己在该组中。

  • 别的什么?


我的意思是权限(在我的FTP软件中,这称为属性,所以我认为这就是单词:)。似乎rsync将Group和World权限设置为0。你对本地权限是什么意思?源是一台Windows机器...我会先尝试你的提示。
Dylan

1
@Dylan:Windows也有文件权限(称为ACL),比Unix更复杂。使用CwRsync时,Cygwin层会尝试将Windows ACL转换为Unix权限,然后由rsync将其复制到远程服务器。玩弄 icacls 在Windows上,也许试试 icacls C:\xampp\htdocs\project123 /grant everyone:(oi)(ci)(rx)
grawity
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.