/usr/share/dput/scp.py is in dput 0.9.6.4ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | # Upload the files with scp in a batch.
import os,sys,stat,dputhelper
def upload(fqdn,login,incoming,files_to_upload,debug,compress,
ssh_config_options=[],progress=0):
files_to_fix = []
for file in files_to_upload:
to_fix = os.path.basename(file)
file_to_fix = os.path.join(incoming, to_fix)
files_to_fix.append(file_to_fix)
command = ['scp', '-p']
if compress:
command.append('-C')
for anopt in ssh_config_options:
command += ['-o', anopt]
# TV-Note: Are these / Should these be escaped?
command += files_to_upload
if login and login != '*':
login_spec = '%s@'%login
else:
login_spec = ''
command.append('%s%s:%s' % (login_spec, fqdn, incoming))
change_mode = 0
for file in files_to_upload:
if not stat.S_IMODE(os.lstat(file)[stat.ST_MODE])==0644:
change_mode = 1
if debug:
print "D: Uploading with scp to %s%s:%s" % \
(login_spec, fqdn, incoming)
print "D: %s" % command
if dputhelper.spawnv(os.P_WAIT, '/usr/bin/scp', command):
print "Error while uploading."
sys.exit(1)
if change_mode:
fix_command = ['ssh']
for anopt in ssh_config_options:
fix_command += ['-o', anopt]
fix_command += ['%s%s' % (login_spec, fqdn), 'chmod', '0644'] \
+ files_to_fix
if debug:
print "D: Fixing some permissions"
print "D: %s" % fix_command
if dputhelper.spawnv(os.P_WAIT, '/usr/bin/ssh', fix_command):
print "Error while fixing permissions."
sys.exit(1)
|