Commit 09ddd39b authored by root's avatar root

Distribution to other users then pwrp

parent 10baa8b7
...@@ -24,7 +24,7 @@ pkg_install_func () ...@@ -24,7 +24,7 @@ pkg_install_func ()
if [ $1 == ${1##*/} ]; then if [ $1 == ${1##*/} ]; then
# Add path # Add path
pkg="/home/pwrp/$1" pkg="$HOME/$1"
else else
pkg=$1 pkg=$1
fi fi
...@@ -61,7 +61,7 @@ pkg_list_func () ...@@ -61,7 +61,7 @@ pkg_list_func ()
# Extract datfile from package # Extract datfile from package
if [ $1 == ${1##*/} ]; then if [ $1 == ${1##*/} ]; then
# Add path # Add path
pkg="/home/pwrp/$1" pkg="$HOME/$1"
else else
pkg=$1 pkg=$1
fi fi
...@@ -114,7 +114,7 @@ pkg_listfiles_func () ...@@ -114,7 +114,7 @@ pkg_listfiles_func ()
# Extract datfile from package # Extract datfile from package
if [ $1 == ${1##*/} ]; then if [ $1 == ${1##*/} ]; then
# Add path # Add path
pkg="/home/pwrp/$1" pkg="$HOME/$1"
else else
pkg=$1 pkg=$1
fi fi
...@@ -185,7 +185,7 @@ pkg_brief_func () ...@@ -185,7 +185,7 @@ pkg_brief_func ()
do do
if [ $file == ${file##*/} ]; then if [ $file == ${file##*/} ]; then
# Add path # Add path
pkg="/home/pwrp/$file" pkg="$HOME/$file"
else else
pkg=$file pkg=$file
fi fi
...@@ -229,11 +229,11 @@ pkg_brief_func () ...@@ -229,11 +229,11 @@ pkg_brief_func ()
pkg_dir_func() pkg_dir_func()
{ {
if [ -z $1 ]; then if [ -z $1 ]; then
allpkg=`ls /home/pwrp/pwrp_pkg_*.tgz` allpkg=`ls $HOME/pwrp_pkg_*.tgz`
else else
if [ $1 == ${1##*/} ]; then if [ $1 == ${1##*/} ]; then
# Add path # Add path
pattern="/home/pwrp/*$1*" pattern="$HOME/*$1*"
elif [ ${1:0:1} == "/" ]; then elif [ ${1:0:1} == "/" ]; then
pattern=$1* pattern=$1*
else else
...@@ -252,11 +252,11 @@ pkg_dir_func() ...@@ -252,11 +252,11 @@ pkg_dir_func()
pkg_dirbrief_func() pkg_dirbrief_func()
{ {
if [ -z "$1" ]; then if [ -z "$1" ]; then
allpkg=`ls /home/pwrp/pwrp_pkg_*.tgz` allpkg=`ls $HOME/pwrp_pkg_*.tgz`
else else
if [ "$1" == "${1##*/}" ]; then if [ "$1" == "${1##*/}" ]; then
# Add path # Add path
pattern="/home/pwrp/*$1*" pattern="$HOME/*$1*"
elif [ ${1:0:1} == "/" ]; then elif [ ${1:0:1} == "/" ]; then
pattern=$1* pattern=$1*
else else
......
...@@ -469,7 +469,7 @@ void pkg_node::fetchFiles( bool distribute) ...@@ -469,7 +469,7 @@ void pkg_node::fetchFiles( bool distribute)
of << of <<
"cd $pwrp_load" << endl << "cd $pwrp_load" << endl <<
"ftp -vin " << m_name << " << EOF &>$pwrp_tmp/ftp_" << m_name << ".log" << endl << "ftp -vin " << m_name << " << EOF &>$pwrp_tmp/ftp_" << m_name << ".log" << endl <<
"user pwrp pwrp" << endl << "user " << m_user << " pwrp" << endl <<
"binary" << endl << "binary" << endl <<
"put " << pkg_name << endl << "put " << pkg_name << endl <<
"quit" << endl << "quit" << endl <<
...@@ -485,12 +485,13 @@ void pkg_node::fetchFiles( bool distribute) ...@@ -485,12 +485,13 @@ void pkg_node::fetchFiles( bool distribute)
throw wb_error_str("Unable to open file"); throw wb_error_str("Unable to open file");
ofu << ofu <<
"dir=$HOME" << endl <<
"cd /tmp" << endl << "cd /tmp" << endl <<
"echo \"-- Unpack package " << pkg_name << "\"" << endl << "echo \"-- Unpack package " << pkg_name << "\"" << endl <<
"tar -xzf /home/pwrp/" << pkg_name << endl << "tar -xzf $dir/" << pkg_name << endl <<
"echo \"-- Move files to target directories\"" << endl << "echo \"-- Move files to target directories\"" << endl <<
"if [ ! -e /home/pwrp/.ssh ]; then" << endl << "if [ ! -e $dir/.ssh ]; then" << endl <<
" mkdir /home/pwrp/.ssh" << endl << " mkdir $dir/.ssh" << endl <<
"fi" << endl; "fi" << endl;
for ( int i = 0; i < (int)m_filelist.size(); i++) for ( int i = 0; i < (int)m_filelist.size(); i++)
...@@ -504,23 +505,41 @@ void pkg_node::fetchFiles( bool distribute) ...@@ -504,23 +505,41 @@ void pkg_node::fetchFiles( bool distribute)
// Change owner to root of plc, to make modification of thread prio possible // Change owner to root of plc, to make modification of thread prio possible
ofu << ofu <<
"nname=`eval uname -n`" << endl << "nname=`eval uname -n`" << endl <<
"tst=`eval sudo -l | grep \" ALL\"`" << endl << "if [ \"$USER\" == \"root\" ]; then" << endl <<
"if [ \"$tst\" != \"\" ]; then" << endl << " chown root $pwrp_exe/plc_$nname_*" << endl <<
" sudo chown root $pwrp_exe/plc_$nname_*" << endl << " chmod g+w $pwrp_exe/plc_$nname_*" << endl <<
" sudo chmod g+w $pwrp_exe/plc_$nname_*" << endl << " chmod u+s $pwrp_exe/plc_$nname_*" << endl <<
" sudo chmod u+s $pwrp_exe/plc_$nname_*" << endl << "else" << endl <<
" tst=`eval sudo -l | grep \" ALL\"`" << endl <<
" if [ \"$tst\" != \"\" ]; then" << endl <<
" sudo chown root $pwrp_exe/plc_$nname_*" << endl <<
" sudo chmod g+w $pwrp_exe/plc_$nname_*" << endl <<
" sudo chmod u+s $pwrp_exe/plc_$nname_*" << endl <<
" fi" << endl <<
"fi" << endl; "fi" << endl;
// Group should not have write access to .rhosts file // Group should not have write access to .rhosts file
ofu << ofu <<
"if [ \"$tst\" != \"\" ]; then" << endl << "if [ -e $dir/.rhosts ]; then" << endl <<
" if [ -e /home/pwrp/.rhosts ]; then" << endl << " if [ \"$USER\" == \"root\" ]; then" << endl <<
" sudo chown pwrp /home/pwrp/.rhosts" << endl << " chown " << m_user << " $dir/.rhosts" << endl <<
" sudo chmod g-w /home/pwrp/.rhosts" << endl << " chmod g-w $dir/.rhosts" << endl <<
" else" << endl <<
" if [ \"$tst\" != \"\" ]; then" << endl <<
" sudo chown " << m_user << " $dir/.rhosts" << endl <<
" sudo chmod g-w $dir/.rhosts" << endl <<
" fi" << endl <<
" fi" << endl << " fi" << endl <<
" if [ -e /home/pwrp/.ssh/authorized_keys ]; then" << endl << "fi" << endl <<
" sudo chown pwrp /home/pwrp/.ssh/authorized_keys" << endl << "if [ -e $dir/.ssh/authorized_keys ]; then" << endl <<
" sudo chmod g-w /home/pwrp/.ssh/authorized_keys" << endl << " if [ \"$USER\" == \"root\" ]; then" << endl <<
" chown " << m_user << " $dir/.ssh/authorized_keys" << endl <<
" chmod g-w $dir/.ssh/authorized_keys" << endl <<
" else" << endl <<
" if [ \"$tst\" != \"\" ]; then" << endl <<
" sudo chown " << m_user << " $dir/.ssh/authorized_keys" << endl <<
" sudo chmod g-w $dir/.ssh/authorized_keys" << endl <<
" fi" << endl <<
" fi" << endl << " fi" << endl <<
"fi" << endl; "fi" << endl;
...@@ -604,19 +623,19 @@ void pkg_node::copyPackage( char *pkg_name) ...@@ -604,19 +623,19 @@ void pkg_node::copyPackage( char *pkg_name)
of << of <<
"cd $pwrp_load" << endl << "cd $pwrp_load" << endl <<
"ftp -vin " << bootnodes[i] << " << EOF &>$pwrp_tmp/ftp_" << bootnodes[i] << ".log" << endl << "ftp -vin " << bootnodes[i] << " << EOF &>$pwrp_tmp/ftp_" << bootnodes[i] << ".log" << endl <<
"user pwrp pwrp" << endl << "user " << m_user << " pwrp" << endl <<
"binary" << endl << "binary" << endl <<
"put " << pkg_name << endl << "put " << pkg_name << endl <<
"quit" << endl << "quit" << endl <<
"EOF" << endl << "EOF" << endl <<
"rsh -l pwrp " << bootnodes[i] << " \\$pwr_exe/pwr_pkg.sh -i " << pkg_name << endl; "rsh -l " << m_user << " " << bootnodes[i] << " \\$pwr_exe/pwr_pkg.sh -i " << pkg_name << endl;
} }
else { else {
// Use scp and SSH // Use scp and SSH
of << of <<
"cd $pwrp_load" << endl << "cd $pwrp_load" << endl <<
"scp " << pkg_name << " pwrp@" << bootnodes[i] << ":" << endl << "scp " << pkg_name << " " << m_user << "@" << bootnodes[i] << ":" << endl <<
"ssh pwrp@" << bootnodes[i] << " \\$pwr_exe/pwr_pkg.sh -i " << pkg_name << endl; "ssh " << m_user << "@" << bootnodes[i] << " \\$pwr_exe/pwr_pkg.sh -i " << pkg_name << endl;
} }
of.close(); of.close();
......
...@@ -115,16 +115,33 @@ class pkg_node { ...@@ -115,16 +115,33 @@ class pkg_node {
bool m_valid; bool m_valid;
int m_errors; int m_errors;
int m_warnings; int m_warnings;
char m_user[80];
public: public:
pkg_node( char *name): m_opsys(pwr_mOpSys__), m_bus(0), pkg_node( char *name): m_opsys(pwr_mOpSys__), m_bus(0),
m_dstatus(0), m_valid(false), m_errors(0), m_warnings(0) m_dstatus(0), m_valid(false), m_errors(0), m_warnings(0)
{ strcpy( m_name, name); strcpy( m_bootnode, "-");} {
strncpy( m_name, name, sizeof(m_name));
strcpy( m_user, "pwrp");
strcpy( m_bootnode, "-");
}
pkg_node( char *name, pwr_mOpSys opsys, int bus, pkg_node( char *name, pwr_mOpSys opsys, int bus,
pwr_tMask dstatus, char *bootnode) : pwr_tMask dstatus, char *bootnode) :
m_opsys(opsys), m_bus(bus), m_dstatus(dstatus), m_opsys(opsys), m_bus(bus), m_dstatus(dstatus),
m_valid(true), m_errors(0), m_warnings(0) m_valid(true), m_errors(0), m_warnings(0)
{ strcpy( m_name, name); strcpy( m_bootnode, bootnode);} {
char *s;
strncpy( m_user, bootnode, sizeof(m_user));
if ( (s = strchr( m_user, '@'))) {
*s = 0;
strncpy( m_bootnode, s+1, sizeof(m_bootnode));
}
else {
strcpy( m_user, "pwrp");
strcpy( m_bootnode, bootnode);
}
strncpy( m_name, name, sizeof(m_name));
}
char *name() { return m_name;} char *name() { return m_name;}
pwr_mOpSys opsys() { return m_opsys;} pwr_mOpSys opsys() { return m_opsys;}
int bus() { return m_bus;} int bus() { return m_bus;}
...@@ -134,7 +151,18 @@ class pkg_node { ...@@ -134,7 +151,18 @@ class pkg_node {
void setOpsys( pwr_mOpSys opsys) { m_opsys = opsys;} void setOpsys( pwr_mOpSys opsys) { m_opsys = opsys;}
void setBus( int bus) { m_bus = bus;} void setBus( int bus) { m_bus = bus;}
void setDStatus( pwr_tMask dstatus) { m_dstatus = dstatus;} void setDStatus( pwr_tMask dstatus) { m_dstatus = dstatus;}
void setBootnode( char *bootnode) { strcpy( m_bootnode, bootnode);} void setBootnode( char *bootnode) {
char *s;
strncpy( m_user, bootnode, sizeof(m_user));
if ( (s = strchr( m_user, '@'))) {
*s = 0;
strncpy( m_bootnode, s+1, sizeof(m_bootnode));
}
else {
strcpy( m_user, "pwrp");
strcpy( m_bootnode, bootnode);
}
}
void setValid() { m_valid = true;} void setValid() { m_valid = true;}
void push_back( pkg_pattern& pattern) { void push_back( pkg_pattern& pattern) {
pattern.node( this); pattern.node( this);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment