rsync 可以使用 --password-file 选项指定密钥文件,密钥文件中简单存放 rsync 密码;在第一次使用密钥文件的时候经常遇到文件权限相关问题;这里总结一下,我遇到的问题。

问题描述

在开发环境下,手动执行 python ccmcx_tdw_data_sync.py,执行前还确保了 rsync.secret 具体读写权限,chmod u+rw rsync.secret,执行正常;后面将脚本加入 crontab

运行报错:password file must be owned by root when running as root

简单的处理,让所有用户都有权限读写:chmod a+rw rsync.secret;运行报错:password file must not be other-accessible

结论

  • password file must be owned by root when running as root:后面检查发现,每个用户都有自己的 crontab,而我是以 root 用户设置 crontab 任务的,因此执行脚本的用户也是 root,看第一个报错是因为 file owner 不是 rootchown root rsync.secret 简单解决;

  • password file must not be other-accessible:可以看出 rsync 对密钥文件管理的严格,owner 不仅仅要求是 run user,而且读写权限需要做收敛,不能被其他用户读写,执行 chmod o-rw rsync.secret

  • 从这里可以看出 rsync 对密钥文件的管理原则:密钥文件的拥有者只能是运行命令的用户,且只能由拥有者读写,这样文件就为运行用户专属了,其他普通用户不能通过密钥文件传输文件或者读写密钥文件了

  • 一个题外话:每个用户都有自己的 crontabcrontab 不在一个配置文件中,运维难以管理,大部分的 crontab 都会由运维统一放在 root 的 crontab 下,除此之外,还可以直接在/etc/crontab文件中添加,不过需要是 root 身份。这个文件的 crontab 与用户的不太一样,可以指定运行命令的用户,这样的一个好处是:运维方便管理,而且可以指定运行命令的用户,普通用户的环境变量等相关信息不需要对齐到 root

rsync 密钥文件错误问题总结的更多相关文章

  1. 解决Visual Studio 2010 “无法导入以下密钥文件” 错误

    错误原文: "错误 1 无法导入以下密钥文件: SamplePlugin.pfx.该密钥文件可能受密码保护.若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称 ...

  2. 解决Visual Studio “无法导入以下密钥文件”的错误

    错误1无法导入以下密钥文件: Common.pfx.该密钥文件可能受密码保护.若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称 CSP: VS_KEY_ 1110Co ...

  3. 使用Rsync进行文件的同步与备份

    Rsync是Linux下非常不错的文件同步备份工具,安全性高.备份迅速.支持增量备,功能强大且高效. 服务端配置 Rsync服务的配置文件/etc/rsyncd.conf,示例配置(带用户名密码配置) ...

  4. .NET使用OpenSSL生成的pem密钥文件

    NET要使用OpenSSL生成的pem密钥文件,网上资料很少(http://www.faqs.org/rfcs/rfc1421.html,RFC1421文件又老长老长),仅有的资料还是有错误的,所以今 ...

  5. rsync+inotfiy文件同步

    rsync+inotfiy文件同步 1.部署rsync服务 yum install rsync #安装rsync,如果嫌yum版本过低也可以源码安装 2.vim /etc/rsyncd.conf #默 ...

  6. rsync+inotify文件同步 - 同步慢的问题

    rsync+inotify文件同步 - 同步慢的问题 我们来看网上的教程,我加了注释.(网上所有的教程基本都一模一样,尽管写法不一样,致命点都是一样的) #!/bin/bash /usr/bin/in ...

  7. Linux下简单粗暴使用rsync实现文件同步备份【转】

    这篇来说说如何安全的备份,还有一点不同的是上一篇是备份服务器拉取数据,这里要讲的是主服务器如何推送数据实现备份. 一.备份服务器配置rsync文件 vim /etc/rsyncd.conf #工作中指 ...

  8. Linux Rsync实现文件同步备份(转载)

    原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...

  9. JSCH通过密钥文件进行远程访问

    需求:WEB app 需要使用JSCH来通过密钥文件的方式进行SFTP/SSH访问远程LINUX机器 实现方式:假设远程机器都含有用户名为hadoop的用户,因为密码因为策略的要求密码会随时间发生变化 ...

随机推荐

  1. Linux0.11小结

    第一部分 基础内容 1.操作系统基础     操作系统是计算机硬件系统与用户程序间重要环节,理解操作系统的原理是编写优秀代码的基础.教课书中阐述的操作系统一般由5部分组成. 一个最简单的操作系统,可以 ...

  2. H5学习之旅-H5的样式(5)

    样式的引入方式 外部样式表 link rel = "stylesheet" type = "text/css" href = "mystyle.css ...

  3. H5学习之旅-H5的块标签的使用(9)

    块元素的基本语法 1. Html块元素 ,块元素在开始时候通常以新行开始,比如h1,p,ul 2.内联元素,通常不会以新行开始,比如a,b,img 3.html的div元素,div也被称为块元素,其主 ...

  4. 网站开发进阶(三十二)HTML5之FileReader的使用

    HTML5之FileReader的使用 HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型 ...

  5. Cocos2D粒子发射器的纹理

    每个例子发射器只能使用单个纹理发射粒子. 如果你需要在相同粒子效果中组合多重纹理,你将不得不创建多重的发射器节点并且决定谁的粒子将在其它粒子之上或之下显示.

  6. TCP的核心系列 — 重传队列的更新和时延的采样(二)

    在tcp_clean_rtx_queue()中,并非对每个ACK都进行时延采样.是否进行时延采样,跟这个ACK是否为 重复的ACK.这个ACK是否确认了重传包,以及是否使用时间戳选项都有关系. 本文主 ...

  7. gtk+程序在关闭主窗口时的事件流

    当鼠标单击gtk+窗口的关闭按钮时,程序首先接收到delete_event,当该事件处理函数返回TRUE表示事件已处理禁止进一步传播,从而取消关闭操作:当返回FALSE时,事件消息进一步向上传播,此时 ...

  8. iOS监听模式系列之通知中心

    补充--通知中心 对于很多初学者往往会把iOS中的本地通知.推送通知和iOS通知中心的概念弄混.其实二者之间并没有任何关系,事实上它们都不属于一个框架,前者属于UIKit框架,后者属于Foundati ...

  9. 安卓TV开发(九) Android模拟事件 遥控器变身成鼠标来操作TV

    本文出处:http://blog.csdn.net/sk719887916/article/details/40348853,作者:skay      阅读此文建议先阅读 安卓Tv开发(二)移动智能电 ...

  10. STM32之使用库函数驱动LED灯

    一.熟悉GPIO结构体 以下这个结构体是我从官方手册中获取的: typedef struct { u16 GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMod ...