Bash & CYGWIN: SCP 看不到文件
Bash & CYGWIN: SCP does not see files
我有 sh 脚本,它可以将所有文件从某个文件夹复制到某个主机。
scp -r -i PATH_TO_SSH_KEY SOURCE_FOLDER/* SERVER:TARGET_DIR
当我 运行 这个脚本时,我得到以下结果:
Cygwin 列出了我 SOURCE_FOLDER 中的所有文件,并说找不到这些文件! "No such file or directory"。这看起来很奇怪。我检查过该文件夹中的所有文件都具有 -rw-r--r-- 权限。我试图设置更高的权限,但我不能保留它们,因为每次我 运行 这个脚本都会重新生成文件,所以它们总是这样。
问题是:
1) scp传输文件应该有哪些权限?
2) 我可以设置一个文件夹,使文件夹中的所有文件始终使用一些预定义的权限创建吗?
3) 万一我对权限的猜测落空了 - 还有什么可能是造成这种行为的原因?
似乎对我有用,但我在 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
干杯!
我有 sh 脚本,它可以将所有文件从某个文件夹复制到某个主机。
scp -r -i PATH_TO_SSH_KEY SOURCE_FOLDER/* SERVER:TARGET_DIR
当我 运行 这个脚本时,我得到以下结果:
Cygwin 列出了我 SOURCE_FOLDER 中的所有文件,并说找不到这些文件! "No such file or directory"。这看起来很奇怪。我检查过该文件夹中的所有文件都具有 -rw-r--r-- 权限。我试图设置更高的权限,但我不能保留它们,因为每次我 运行 这个脚本都会重新生成文件,所以它们总是这样。
问题是:
1) scp传输文件应该有哪些权限?
2) 我可以设置一个文件夹,使文件夹中的所有文件始终使用一些预定义的权限创建吗?
3) 万一我对权限的猜测落空了 - 还有什么可能是造成这种行为的原因?
似乎对我有用,但我在 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
干杯!