file '/home/ssm-user/.bashrc' do
  action :edit
  user 'ssm-user' # 'root' でもだめ
  block do |content|
    if content =~ /^eval "$(rbenv init -)"/i then
    else
      content << 'eval "$(rbenv init -)"'
    end
  end
end

たとえばこのような itamae レシピを ec2-user で ssh 経由で実行すると
ec2-user に sudo 権限があるにもかかわらずパーミションエラーになります

DEBUG :   file[/home/ssm-user/.bashrc]
DEBUG :     file[/home/ssm-user/.bashrc] action: edit
DEBUG :       (in pre_action)
DEBUG :       Executing `sudo -H -u ssm-user -- /bin/sh -c cd\ \~ssm-user\ \;\ test\ -f\ /home/ssm-user/.bashrc`...
DEBUG :         exited with 0
DEBUG :       Receiving a file from '/home/ssm-user/.bashrc'...
bundler: failed to load command: itamae (/home/ec2-user/git/itamae/vendor/bundler/ruby/2.5.0/bin/itamae)

Net::SCP::Error: SCP did not finish successfully (1): scp: /home/ssm-user/.bashrc: Permission denied

  /home/ec2-user/git/itamae/vendor/bundler/ruby/2.5.0/gems/net-scp-2.0.0/lib/net/scp.rb:365:in `block (3 levels) in start_command'
  :

どうも1度 scp でファイルを取得してから
content を変更してかき戻すというようなことをやってるんでしょうか
その最初の scp でこけてるみたいな感じです

remote_file なら root のファイルも置換できるようなのですが
差分編集は file でないとできない気がするので
root やほかユーザのファイルを差分編集するにはどうすればいいのでしょうか