diff options
author | ~login@aussies.space <login@aussies.space> | 2019-10-03 04:08:42 +0000 |
---|---|---|
committer | ~login@aussies.space <login@aussies.space> | 2019-10-03 04:08:42 +0000 |
commit | 6825e86a248df58e4248e1047e412bd4b7e2795a (patch) | |
tree | 33693addc088486ef1990785a1a075fc8439a63b | |
parent | 4d21a73f72f2d62b318c217e76e84ff92a9dc36c (diff) | |
download | tcoin-6825e86a248df58e4248e1047e412bd4b7e2795a.tar.gz |
Bug fix to ntcoin
Previously, the executables 'tcoin' and 'pcoin', which had setuid set, were stored in tcoin/bin/*. However, the "tcoin" directory is restricted, so any executables inside it are inaccessible to users. To fix this, the compile_tcoin and compile_pcoin scripts have been modified to store the executables in a third specified directory, called the <bin dir> in the help. <bin dir> will be accessible to all users. The symbolic constants/preprocessor directives have also been changed to reflect the updated paths.
-rwxr-xr-x | ntcoin | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/ntcoin b/ntcoin index 71e09f5..051fd9c 100755 --- a/ntcoin +++ b/ntcoin @@ -3,8 +3,8 @@ if [ "$#" -eq 0 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ] then /bin/echo "Usage:" - /bin/echo " ntcoin <path (no slash)> <n> : to create tcoin subdirectories in <path (no slash)> with <n> basecoins per user" - /bin/echo " ntcoin <path (no slash)> [ --def | -d ] : to print only the #define preprocessor directives without creating any directories" + /bin/echo " ntcoin <path (no slash)> <bin path (no slash)> <n> : to create tcoin subdirectories in <path (no slash)> with the executable saved to <bin path (no slash)> and with <n> basecoins per user" + /bin/echo " ntcoin <path (no slash)> <bin path (no slash)> [ --def | -d ]: to print only the #define preprocessor directives without creating any directories" /bin/echo " ntcoin [ --help | -h ] : to print this help" elif [ "$2" = "--def" ] || [ "$2" = "-d" ] then @@ -19,11 +19,11 @@ then #define PROG_ACT_W_SLASH "program_accounting/" #define PCOIN_KEY_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/pcoin_keys" #define TCOIN_CODEZ_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/tcoin_codez" -#define TCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin " +#define TCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/tcoin " #define TCOIN_PATH_W_SLASH "'`/usr/bin/realpath -s $1`'/tcoin/" #define TCOIN_SCRYPT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/bin/scrypt" -#define PCOIN_BIN_PATH "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin" -#define PCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin "' +#define PCOIN_BIN_PATH "'`/usr/bin/realpath -s $2`'/pcoin" +#define PCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/pcoin "' else if [ -d "`/usr/bin/realpath -s $1`/tcoin" ] then @@ -83,7 +83,7 @@ else /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/base/base.txt' already exists." exit 1 else - /bin/echo "$2""00" > "`/usr/bin/realpath -s $1`/tcoin/base/base.txt" + /bin/echo "$3""00" > "`/usr/bin/realpath -s $1`/tcoin/base/base.txt" /bin/chmod 600 "`/usr/bin/realpath -s $1`/tcoin/base/base.txt" fi fi @@ -136,7 +136,11 @@ else /bin/echo '#!/bin/bash (/usr/bin/g++ '`/bin/pwd`'/tcoin.cpp -o "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin" -std=c++11) \ && (/bin/chmod 550 "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin") \ -&& (/bin/chmod u+s "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin")' > "`/usr/bin/realpath -s $1`/tcoin/bin/compile_tcoin" +&& (/bin/chmod u+s "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin") \ +&& (/bin/chmod u+w "'`/usr/bin/realpath -s $2`'/tcoin") \ +&& (/bin/cp "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin" "'`/usr/bin/realpath -s $2`'/tcoin") \ +&& (/bin/chmod 550 "'`/usr/bin/realpath -s $2`'/tcoin") \ +&& (/bin/chmod u+s "'`/usr/bin/realpath -s $2`'/tcoin")' > "`/usr/bin/realpath -s $1`/tcoin/bin/compile_tcoin" /bin/chmod 540 "`/usr/bin/realpath -s $1`/tcoin/bin/compile_tcoin" /bin/echo '#!/bin/bash /bin/nano '`/bin/pwd`'/tcoin.cpp' > "`/usr/bin/realpath -s $1`/tcoin/bin/edit_tcoin" @@ -152,7 +156,11 @@ else /bin/echo '#!/bin/bash (/usr/bin/g++ '`/bin/pwd`'/pcoin.cpp -o "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin" -std=c++11) \ && (/bin/chmod 550 "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin") \ -&& (/bin/chmod u+s "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin")' > "`/usr/bin/realpath -s $1`/tcoin/bin/compile_pcoin" +&& (/bin/chmod u+s "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin") +&& (/bin/chmod u+w "'`/usr/bin/realpath -s $2`'/pcoin") \ +&& (/bin/cp "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin" "'`/usr/bin/realpath -s $2`'/pcoin") \ +&& (/bin/chmod 550 "'`/usr/bin/realpath -s $2`'/pcoin") \ +&& (/bin/chmod u+s "'`/usr/bin/realpath -s $2`'/pcoin")' > "`/usr/bin/realpath -s $1`/tcoin/bin/compile_pcoin" /bin/chmod 540 "`/usr/bin/realpath -s $1`/tcoin/bin/compile_pcoin" /bin/echo '#!/bin/bash /bin/nano '`/bin/pwd`'/pcoin.cpp' > "`/usr/bin/realpath -s $1`/tcoin/bin/edit_pcoin" @@ -172,9 +180,9 @@ else #define PROG_ACT_W_SLASH "program_accounting/" #define PCOIN_KEY_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/pcoin_keys" #define TCOIN_CODEZ_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/tcoin_codez" -#define TCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin " +#define TCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/tcoin " #define TCOIN_PATH_W_SLASH "'`/usr/bin/realpath -s $1`'/tcoin/" #define TCOIN_SCRYPT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/bin/scrypt" -#define PCOIN_BIN_PATH "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin" -#define PCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin "' +#define PCOIN_BIN_PATH "'`/usr/bin/realpath -s $2`'/pcoin" +#define PCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/pcoin "' fi |