我在使用Net :: SSH库正确设置文件权限时遇到了麻烦。虽然我可以在创建文件后正确设置文件的权限,但我需要该文件在其创建的实例中具有正确的权限。我正在连接到Ubuntu机器,ssh用户在目录中拥有完全权限。
以下是代码的简化版本,说明了它失败的原因。
Net::SFTP.start('servername', 'username', :password => 'password') do |sftp|
file_handle = sftp.open!('/remote/file/path', 'w', :permissions => 0777)
# file has permissions 0755, but should have 0777
sftp.fsetstat!(file_handle, {:permissions => 0777})
# file now has correct 0777 permissions
...
end