我有sh脚本将所有文件从某个文件夹复制到某个主机。
scp -r -i PATH_TO_SSH_KEY SOURCE_FOLDER/* SERVER:TARGET_DIR
当我运行此脚本时,我得到以下结果:
Cygwin列出了我的SOURCE_FOLDER中的所有文件,并说没有找到这些文件! "没有这样的文件或目录"。这看起来很奇怪。我已检查该文件夹中的所有文件都具有 -rw-r - r - 权限。我试图设置更高的权限,但我不能保留它们,因为每次运行此脚本时都会重新生成文件,所以它们总是这样。
问题是:
1)哪些权限应该由scp传输文件?
2)我是否可以设置一个文件夹,以便始终使用一些预定义的权限创建内部的所有文件?
3)如果我对权限的猜测下降 - 还有什么可能是这种行为的原因?
答案 0 :(得分:0)
似乎适合我,但我在Linux工作。不是100%熟悉cygwin。要回答您的权限问题:
1)文件应该是可写的。如果他们由root拥有,那么,更改组或使用sudo。我将解释下一步我将如何处理它。
2)是的,您将要使用umask来实现这一目标。我不会做远程root用户拷贝或777权限。您希望为该目录分配umask并为其分配某些组。 002 umask意味着该目录中组的所有人都具有读写访问权限。然后,接下来的两个命令将一个组添加到该目录,并将默认组添加到文件中。以下是语法示例:
umask 002 <dir>
chgrp <group> <dir>
chmod g+s <dir>
3)语法...但我猜测权限。检查目标服务器和源服务器的权限。
我希望这有用!
umask参考: http://man7.org/linux/man-pages/man2/umask.2.html
喝彩!