利用root用户远程登录(一般ssh出于安全考虑,它的配置文件都会配置不允许root远程登录)
分发到家目录
scp demo.txt /home/vagrant
赋予用户cp权限
visudo修改
在最后添加:(赋予vagrant用户cp的权限)
vagrant ALL=(ALL) NOPASSWD: /bin/cp
查看sudo列表中是否有cp命令
visudo -c(检查语法)
sudo -l
远程sudo的方法
1.注释Defaults requiretty,允许远程执行sudo(会存在安全隐患)
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
# You have to run "ssh -t hostname sudo <cmd>".
#
Defaults requiretty
2.利用ssh的-t选项
ssh -t vagrant@172.16.17.11 sudo /bin/cp /home/vagrant/test.txt /root/test.txt
设置suid对固定命令提权,利用rsync(安全相对较差,任何拥有suid权限命令的人都能执行rsync)
chmod 4755 `which rsync`
rsync /home/vagrant/test.txt /root/test.txt