From d160b441c7f99e9437273f5302024597412cc2db Mon Sep 17 00:00:00 2001 From: Serghey Rodin Date: Wed, 30 Jul 2014 15:41:06 +0300 Subject: [PATCH] file manager api commands --- bin/v-copy-fs-file | 58 +++++++++++++++++++++++++++++++++++++++++ bin/v-list-fs-directory | 39 +++++++++++++++++++++++++++ bin/v-open-fs-file | 36 +++++++++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100755 bin/v-copy-fs-file create mode 100755 bin/v-list-fs-directory create mode 100755 bin/v-open-fs-file diff --git a/bin/v-copy-fs-file b/bin/v-copy-fs-file new file mode 100755 index 000000000..a3004654b --- /dev/null +++ b/bin/v-copy-fs-file @@ -0,0 +1,58 @@ +#!/bin/bash +# File copier + +user=$1 +file_src=$2 +file_dst=$3 + +# Checking arguments +if [ -z "$file_dst" ]; then + echo "Usage: USER SRC_FILE DST_FILE" + exit 1 +fi + +# Checking users +if [ ! -e "$VESTA/data/users/$user" ]; then + exit 1 +fi + +# Checking homedir +homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :) +if [ -z $homedir ]; then + exit 1 +fi + +# Checking source file +if [ ! -e "$file_src" ]; then + exit 1 +fi + +# Checking source path +rpath=$(readlink -f "$file_src") +if [ -z "$(echo $rpath |grep ^/tmp)" ]; then + exit 1 +fi + +# Checking destination path +rpath=$(readlink -f "$file_dst") +if [ -z "$(echo $rpath |grep ^$homedir)" ]; then + exit 1 +fi + +# Checking dst file permission +if [ -e "$file_dst" ]; then + perms=$(stat --format '%a' $file_dst) +fi + +# Copying file +cp $file_src $file_dst + +# Changing ownership +chown $user:$user $file_dst + +# Changin permissions +if [ ! -z "$perms" ]; then + chmod $perms $file_dst +fi + +exit diff --git a/bin/v-list-fs-directory b/bin/v-list-fs-directory new file mode 100755 index 000000000..a06b4168d --- /dev/null +++ b/bin/v-list-fs-directory @@ -0,0 +1,39 @@ +#!/bin/bash +# File list wrapper + +user=$1 +path=$2 + +# Checking arguments +if [ -z "$user" ]; then + echo "Usage: USER [PATH]" + exit 1 +fi + +# Checking users +if [ ! -e "$VESTA/data/users/$user" ]; then + exit 1 +fi + +# Checking homedir +homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :) +if [ -z $homedir ]; then + exit 1 +fi + +# Checking path +if [ ! -z "$path" ]; then + # Validating absolute path + rpath=$(readlink -f "$path") + if [ -z "$(echo $rpath |grep $homedir)" ]; then + exit 1 + fi +else + path=$homedir +fi + +# Listing files +find "$path" -maxdepth 1 -printf "%y/%m/%TY-%Tm-%Td/%TH:%TM:%TS/%u/%g/%s/%P\n" + + +exit diff --git a/bin/v-open-fs-file b/bin/v-open-fs-file new file mode 100755 index 000000000..d5c8ea3a6 --- /dev/null +++ b/bin/v-open-fs-file @@ -0,0 +1,36 @@ +#!/bin/bash +# File reader + +user=$1 +path=$2 + +# Checking arguments +if [ -z "$path" ]; then + echo "Usage: USER PATH" + exit 1 +fi + +# Checking users +if [ ! -e "$VESTA/data/users/$user" ]; then + exit 1 +fi + +# Checking homedir +homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :) +if [ -z $homedir ]; then + exit 1 +fi + +# Checking path +if [ ! -z "$path" ]; then + # Validating absolute path + rpath=$(readlink -f "$path") + if [ -z "$(echo $rpath |grep $homedir)" ]; then + exit 1 + fi +fi + +cat "$path" + +exit +