diff --git a/conf/rtorrent.rc b/conf/rtorrent.rc index d770007..ef1602f 100644 --- a/conf/rtorrent.rc +++ b/conf/rtorrent.rc @@ -15,6 +15,8 @@ directory.default.set = (cat,(cfg.basedir),"download") schedule = watch_directory,5,5,((load.start,(cat,(cfg.watch),"*.torrent"))) +#system.umask.set = 0000 + ### BitTorrent # Global upload and download rate in KiB, `0` for unlimited throttle.global_down.max_rate.set = 0 diff --git a/scripts/rtadduser b/scripts/rtadduser index 2fb39e6..7bffb95 100755 --- a/scripts/rtadduser +++ b/scripts/rtadduser @@ -22,8 +22,9 @@ sshport=$(grep 'Port ' /etc/ssh/sshd_config | sed 's/[^0-9]*//g') ftpport=$(grep 'listen_port=' /etc/vsftpd.conf | sed 's/[^0-9]*//g') cronline1="@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent" cronline2="*/10 * * * * /usr/local/bin/rtcheck irssi rtorrent" -serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}') +serverip=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}') check_ssh=1 +rtdstatus=$(rtdload) #get user list cd /var/www/rutorrent/conf/users @@ -33,6 +34,28 @@ user_list=* ### FUNCTIONS ### ############################### +#function to determin if unix user name is valid +valid_name(){ + until [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]] + do + echo "Enter user name (lowercase, numbers, dash and underscore):" + read user + done +} + +# function to ask user for y/n response +ask_user(){ +local answer +while true + do + read answer + case $answer in [Yy]* ) return 0 ;; + [Nn]* ) return 1 ;; + * ) echo "Enter y or n";; + esac + done +} + genpasswd() { local genln=$1 [ -z "$genln" ] && genln=8 @@ -183,34 +206,39 @@ fi ############################### if [ -z "$user" ]; then - echo "Enter the name of the user to add" + echo "Enter the name of the user" echo "It can be an existing user or a new user" echo - confirm_name=1 while [ $confirm_name = 1 ] do - read -p "Enter user name: " answer - addname=$answer - check_name=1 - if [ "$addname" = "root" ]; then - echo "Cannot create root" - exit + valid_name + echo -n "Confirm that user name is $user y/n? " + if ask_user; then + confirm_name=0 + else + user='' fi - - while [ $check_name = 1 ] - do - read -p "Is $addname correct? " answer - case $answer in [Yy]* ) confirm_name=0 && check_name=0 ;; - [Nn]* ) confirm_name=1 && check_name=0 ;; - * ) echo "Enter y or n";; - esac - done done - - user=$addname +else + if ! [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]; then + echo "$user is not a valid user name please enter again" + confirm_name=1 + while [ $confirm_name = 1 ] + do + valid_name + echo -n "Confirm that user name is $user y/n? " + if ask_user; then + confirm_name=0 + else + user='' + fi + done + fi fi +echo "User name is $user" + if id -u $user >/dev/null 2>&1; then echo "$user already exists" else @@ -220,6 +248,13 @@ else adduser --gecos "" $user --disabled-password echo "$user:$unixpass" | sudo chpasswd fi + + if id -u $user >/dev/null 2>&1; then + echo "$user successfully created" + else + echo "create user failed - exiting process" + exit 1 + fi fi home=$(eval echo "~$user") @@ -363,14 +398,6 @@ fi su $user -c '/usr/local/bin/rt restart' su $user -c '/usr/local/bin/rt -i restart' -dload_line=$(grep "include /etc/nginx/conf.d/rtdload;" /etc/nginx/sites-available/default) -dload_hash=$(echo $dload_line | sed 's/[^#]*//g') -if [ ! -z "$dload_line" -a -z "$dload_hash" ]; then -dload_flag=0 -else -dload_flag=1 -fi - echo "$user setup complete" echo "SCGI Port: $newscgi" echo "RPC Mount: $newrpc" @@ -391,7 +418,7 @@ echo fi echo "ftp client should be set to explicit ftp over tls using port $ftpport" | tee -a $home/rtinst.info echo -if [ $dload_flag = 0 ]; then +if [ "$rtdstatus" = "enabled" ]; then echo "https downloads can be accessed at https://$serverip/download/$user" | tee -a $home/rtinst.info echo fi diff --git a/scripts/rtinst b/scripts/rtinst index ac37397..2d009ab 100755 --- a/scripts/rtinst +++ b/scripts/rtinst @@ -133,6 +133,18 @@ else fi } +#function to determin if unix user name is valid +valid_name(){ + until [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]] + do + echo "Enter user name (lowercase, numbers, dash and underscore):" + read user + done +} + + + + #function to generate random password genpasswd() { local genln=$1 @@ -379,25 +391,39 @@ if [ -z "$user" ]; then echo "This will be your primary user" echo "It can be an existing user or a new user" echo - confirm_name=1 while [ $confirm_name = 1 ] do - read -p "Enter user name: " answer - addname=$answer - echo -n "Confirm that user name is $answer y/n? " + valid_name + echo -n "Confirm that user name is $user y/n? " if ask_user; then confirm_name=0 + else + user='' fi done - - user=$addname - else user=$SUDO_USER fi +else + if ! [[ $user =~ ^[a-z][-a-z0-9_]{2,31}$ ]]; then + echo "$user is not a valid user name please enter again" + confirm_name=1 + while [ $confirm_name = 1 ] + do + valid_name + echo -n "Confirm that user name is $user y/n? " + if ask_user; then + confirm_name=0 + else + user='' + fi + done + fi fi +echo "User name is $user" + if id -u $user >/dev/null 2>&1; then echo "$user already exists" else @@ -407,6 +433,14 @@ else adduser --gecos "" $user --disabled-password echo "$user:$unixpass" | chpasswd fi + + if id -u $user >/dev/null 2>&1; then + echo "$user successfully created" + else + echo "create user failed - exiting process" + exit 1 + fi + fi home=$(eval echo "~$user") diff --git a/scripts/rtletsencrypt b/scripts/rtletsencrypt index ba8b7ea..2dbe573 100755 --- a/scripts/rtletsencrypt +++ b/scripts/rtletsencrypt @@ -62,7 +62,8 @@ if [ $(dpkg-query -W -f='${Status}' "certbot" 2>/dev/null | grep -c "ok installe apt-get -q update >> $logfile 2>&1 apt-get install -y certbot python-certbot-nginx >> $logfile 2>&1 else - grep "^deb http\:\/\/deb\.debian\.org\/debian stretch-backports main" /etc/apt/sources.list > /dev/null || echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list + deb_name=$(lsb_release --codename --short) + grep "^deb http\:\/\/deb\.debian\.org\/debian $deb_name-backports main" /etc/apt/sources.list > /dev/null || echo "deb http://deb.debian.org/debian $deb_name-backports main" >> /etc/apt/sources.list apt-get -q update >> $logfile 2>&1 apt-get install -y certbot python-certbot-nginx -t stretch-backports >> $logfile 2>&1 fi