我有sh脚本,它将所有文件从某个文件夹复制到某个主机。
scp -r -i PATH_TO_SSH_KEY SOURCE_FOLDER/* SERVER:TARGET_DIR当我运行这个脚本时,我得到了以下结果:
Cygwin列出了我的SOURCE_FOLDER中的所有文件,并说没有找到这些文件!“没有这类文件或目录”。看上去很奇怪。我检查过那个文件夹中的所有文件都有-rw-r-r-权限。我试图设置更高的权限,但我无法保留它们,因为每次运行此脚本时都会重新生成文件,所以它们总是这样。
问题如下:
1)哪些权限应该有scp传输的文件?
2)我是否可以设置一个文件夹,使所有文件都使用一些预定义的权限创建?
3)万一我对权限的猜测下降--还有什么原因可以导致这种行为?
发布于 2016-01-21 12:47:19
似乎对我有用,但我在Linux工作。不是百分之百地熟悉赛根。要回答您的权限问题:
( 1)文件应是可写的。如果它们是根用户拥有的,那么,更改组或使用sudo。我会解释下一步该怎么处理。
2)是的,您会想要使用umask来实现这一点。我不会做远程根用户复制或777权限。您可能希望为该目录分配一个umask,并将某些组分配给它。002 umask意味着该目录中组中的所有成员都具有读写访问权限。然后,接下来的两个命令将一个组添加到该目录中,并添加默认的文件组。下面是语法的一个示例:
umask 002 <dir>
chgrp <group> <dir>
chmod g+s <dir> 3)句法..。但我猜是许可。检查目标服务器和源服务器的权限。
我希望这能帮上忙!
参考资料:http://man7.org/linux/man-pages/man2/umask.2.html
干杯!
https://stackoverflow.com/questions/34922626
复制相似问题