Просмотр исходного кода

Fix input validation on file system cli scripts

Robert Zollner 6 лет назад
Родитель
Сommit
62201cf31a

+ 11 - 13
bin/v-add-fs-archive

@@ -6,19 +6,17 @@
 
 user=$1
 archive=$2
-src0=$3
 
-# Checking arguments
-if [ -z "$src0" ]; then
-    echo "Usage: USER ARCHIVE FILE [FILE_2] [FILE_3] [FILE ...]"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '3' "$#" 'USER ARCHIVE FILE [FILE_2] [FILE_3] [FILE ...]'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd |cut -f 6 -d :)
@@ -54,7 +52,7 @@ for src in $*; do
         src=$(echo "$src"| sed -e "s|/home/$user/||")
 
         # Creating tar.gz archive
-        sudo -u $user tar -rf "${archive/.gz/}" -C /home/$user $src >\
+        sudo -u $user -- tar -rf "${archive/.gz/}" -C /home/$user $src >\
             /dev/null 2>&1
         if [ "$?" -ne 0 ]; then
             echo "Error: archive $archive was not created"
@@ -66,7 +64,7 @@ done
 
 # Checking gzip
 if [[ "$archive" =~ \.gz$ ]]; then
-    sudo -u $user gzip "${archive/.gz/}" >/dev/null 2>&1
+    sudo -u $user -- gzip "${archive/.gz/}" >/dev/null 2>&1
     if [ "$?" -ne 0 ]; then
         echo "Error: archive $archive was not gziped"
         exit 3

+ 11 - 12
bin/v-add-fs-directory

@@ -7,17 +7,16 @@
 user=$1
 dst_dir=$2
 
-# Checking arguments
-if [ -z "$dst_dir" ]; then
-    echo "Usage: USER DIRECTORY"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER DIR'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -34,11 +33,11 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Adding directory
-sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
+sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: directory $dst_dir was not created"
     exit 3
 fi
 
-# Extiging
+# Exiting
 exit

+ 10 - 11
bin/v-add-fs-file

@@ -7,17 +7,16 @@
 user=$1
 dst_file=$2
 
-# Checking arguments
-if [ -z "$dst_file" ]; then
-    echo "Usage: USER FILE"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER FILE'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -34,7 +33,7 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Creating file
-sudo -u $user touch "$dst_file" >/dev/null 2>&1
+sudo -u $user -- touch "$dst_file" >/dev/null 2>&1
 if [ $? -ne 0 ]; then 
     echo "Error: file $dst_file was not created"
     exit 3

+ 10 - 11
bin/v-change-fs-file-permission

@@ -8,17 +8,16 @@ user=$1
 src_file=$2
 permissions=$3
 
-# Checking arguments
-if [ -z "$permissions" ]; then
-    echo "Usage: USER FILE PERMISSIONS"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '3' "$#" 'USER FILE PERMISSIONS'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -41,7 +40,7 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Changing file permissions
-sudo -u $user chmod -R $permissions "$src_file" >/dev/null 2>&1
+sudo -u $user -- chmod -R $permissions "$src_file" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: access permission on $src_file was not changed"
     exit 3

+ 10 - 11
bin/v-check-fs-permission

@@ -7,17 +7,16 @@
 user=$1
 src=$2
 
-# Checking arguments
-if [ -z "$src" ]; then
-    echo "Usage: USER FILE"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER FILE'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -36,7 +35,7 @@ if [ ! -z "$src" ]; then
 fi
 
 # Checking if file has readable permission
-sudo -u $user ls "$src" > /dev/null 2>&1
+sudo -u $user -- ls "$src" > /dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: can't read $src"
     exit 1

+ 10 - 11
bin/v-copy-fs-directory

@@ -8,17 +8,16 @@ user=$1
 src_dir=$2
 dst_dir=$3
 
-# Checking arguments
-if [ -z "$dst_dir" ]; then
-    echo "Usage: USER SRC_DIRECTORY DST_DIRECTORY"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '3' "$#" 'USER SRC_DIRECTORY DST_DIRECTORY'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -48,7 +47,7 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Copying directory
-sudo -u $user cp -r "$src_dir" "$dst_dir" >/dev/null 2>&1
+sudo -u $user -- cp -rf "$src_dir" "$dst_dir" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: directory $src_dir was not copied"
     exit 3

+ 12 - 13
bin/v-copy-fs-file

@@ -1,6 +1,6 @@
 #!/bin/bash
 # info: copy file
-# options: USER SRC_FILE DST_FLE
+# options: USER SRC_FILE DST_FILE
 #
 # The function copies file on the file system
 
@@ -8,17 +8,16 @@ user=$1
 src_file=$2
 dst_file=$3
 
-# Checking arguments
-if [ -z "$dst_file" ]; then
-    echo "Usage: USER SRC_FILE DST_FILE"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -e "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '3' "$#" 'USER SRC_FILE DST_FILE'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -43,12 +42,12 @@ fi
 # Checking destination path
 rpath=$(readlink -f "$dst_file")
 if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
-    echo "Error: ivalid destination path $dst_file"
+    echo "Error: invalid destination path $dst_file"
     exit 2
 fi
 
 # Copying file
-sudo -u $user cp "$src_file" "$dst_file" >/dev/null 2>&1
+sudo -u $user -- cp "$src_file" "$dst_file" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: file $src_file was not copied"
     exit 3

+ 10 - 11
bin/v-delete-fs-directory

@@ -8,17 +8,16 @@
 user=$1
 dst_dir=$2
 
-# Checking arguments
-if [ -z "$dst_dir" ]; then
-    echo "Usage: USER DIRECTORY"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER DIRECTORY'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -35,7 +34,7 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Deleting directory
-sudo -u $user rm -rf "$dst_dir" # >/dev/null 2>&1
+sudo -u $user -- rm -rf "$dst_dir" # >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: directory $dst_dir was not deleted"
     exit 3

+ 10 - 11
bin/v-delete-fs-file

@@ -8,17 +8,16 @@
 user=$1
 dst_file=$2
 
-# Checking arguments
-if [ -z "$dst_file" ]; then
-    echo "Usage: USER FILE"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER FILE'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -35,7 +34,7 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Deleting file
-sudo -u $user rm -f "$dst_file" >/dev/null 2>&1
+sudo -u $user -- rm -f "$dst_file" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: file $dst_file was not deleted"
     exit 3

+ 28 - 29
bin/v-extract-fs-archive

@@ -8,17 +8,16 @@ user=$1
 src_file=$2
 dst_dir=$3
 
-# Checking arguments
-if [ -z "$dst_dir" ]; then
-    echo "Usage: USER ARCHIVE DIRECTORY"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '3' "$#" 'USER ARCHIVE DIRECTORY'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -50,62 +49,62 @@ fi
 # Extracting gziped archive
 if [ ! -z "$(echo $src_file |egrep -i  '.tgz|.tar.gz')" ]; then
     x='yes'
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user tar -xzf "$src_file" -C "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- tar -xzf "$src_file" -C "$dst_dir" >/dev/null 2>&1
     rc=$?
 fi
 
 # Extracting bziped archive
 if [ ! -z "$(echo $src_file |egrep -i  '.tbz|.tar.bz')" ]; then
     x='yes'
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user tar -xjf "$src_file" -C "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- tar -xjf "$src_file" -C "$dst_dir" >/dev/null 2>&1
     rc=$?
 fi
 
 # Extracting gziped file
 if [ ! -z "$(echo $src_file |grep -i  '.gz')" ] && [ -z "$x" ]; then
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user mv "$src_file" "$dst_dir" >/dev/null 2>&1
-    sudo -u $user gzip -d "$dst_dir/$(basename $src_file)" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mv "$src_file" "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- gzip -d "$dst_dir/$(basename $src_file)" >/dev/null 2>&1
     rc=$?
 fi
 
 # Extracting bziped file
 if [ ! -z "$(echo $src_file |grep -i  '.bz')" ] && [ -z "$x" ]; then
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user mv "$src_file" "$dst_dir"# >/dev/null 2>&1
-    sudo -u $user bzip2 -d "$dst_dir/$(basename $src_file)" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mv "$src_file" "$dst_dir"# >/dev/null 2>&1
+    sudo -u $user -- bzip2 -d "$dst_dir/$(basename $src_file)" >/dev/null 2>&1
     rc=$?
 fi
 
 # Extracting ziped archive
 if [ ! -z "$(echo $src_file |grep -i  '.zip')" ]; then
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user unzip "$src_file" -d "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- unzip "$src_file" -d "$dst_dir" >/dev/null 2>&1
     rc=$?
 fi
 
 # Extracting ziped archive
 if [ ! -z "$(echo $src_file |grep -i  '.7z')" ]; then
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user mv "$src_file" "$dst_dir" >/dev/null 2>&1
-    sudo -u $user p7zip -d "$src_file" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mv "$src_file" "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- p7zip -d "$src_file" >/dev/null 2>&1
     rc=$?
 fi
 
 # Extracting tared archive
 if [ ! -z "$(echo $src_file |grep -i '.tar')" ] && [ -z "$x" ]; then
     x='yes'
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user tar -xf "$src_file" -C "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- tar -xf "$src_file" -C "$dst_dir" >/dev/null 2>&1
     rc=$?
 fi
 
 # Extracting rared archive
 if [ ! -z "$(echo $src_file |grep -i  '.rar')" ]; then
-    sudo -u $user mkdir -p "$dst_dir" >/dev/null 2>&1
-    sudo -u $user unrar "$src_file"  "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- mkdir -p "$dst_dir" >/dev/null 2>&1
+    sudo -u $user -- unrar "$src_file"  "$dst_dir" >/dev/null 2>&1
     rc=$?
 fi
 

+ 10 - 11
bin/v-get-fs-file-type

@@ -7,17 +7,16 @@
 user=$1
 path=$2
 
-# Checking arguments
-if [ -z "$path" ]; then
-    echo "Usage: USER FILE"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER FILE'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -34,7 +33,7 @@ if [ -z "$(echo $rpath |grep $homedir)" ]; then
 fi
 
 # Listing file type
-sudo -u $user file -i -b "$path" 2>/dev/null
+sudo -u $user -- file -i -b "$path" 2>/dev/null
 
 # Exiting
 exit $?

+ 10 - 11
bin/v-list-fs-directory

@@ -7,17 +7,16 @@
 user=$1
 path=$2
 
-# Checking arguments
-if [ -z "$user" ]; then
-    echo "Usage: USER [PATH]"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '1' "$#" 'USER [DIRECTORY]'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -38,7 +37,7 @@ else
 fi
 
 # Listing directory
-sudo -u $user find "$path" -maxdepth 1 \
+sudo -u $user -- find "$path" -maxdepth 1 \
     -printf "%y|%m|%TY-%Tm-%Td|%TH:%TM|%u|%g|%s|%P\n" 2>/dev/null
 
 # Exiting

+ 10 - 11
bin/v-move-fs-directory

@@ -9,17 +9,16 @@ user=$1
 src_dir=$2
 dst_dir=$3
 
-# Checking arguments
-if [ -z "$dst_dir" ]; then
-    echo "Usage: USER SRC_DIRECTORY DST_DIRECTORY"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '3' "$#" 'USER SRC_DIRECTORY DST_DIRECTORY'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -49,7 +48,7 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Moving directory
-sudo -u $user mv "$src_dir" "$dst_dir" >/dev/null 2>&1
+sudo -u $user -- mv "$src_dir" "$dst_dir" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: directory $src_dir was not moved"
     exit 3

+ 11 - 12
bin/v-move-fs-file

@@ -1,6 +1,6 @@
 #!/bin/bash
 # info: move file
-# options: USER SRC_FILE DST_FLE
+# options: USER SRC_FILE DST_FILE
 #
 # The function moved file or directory on the file system. This function
 # can also be used to rename files just like normal mv command.
@@ -9,17 +9,16 @@ user=$1
 src_file=$2
 dst_file=$3
 
-# Checking arguments
-if [ -z "$dst_file" ]; then
-    echo "Usage: USER SRC_FILE DST_FILE"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '3' "$#" 'USER SRC_FILE DST_FILE'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -49,7 +48,7 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
 fi
 
 # Moving file
-sudo -u $user mv "$src_file" "$dst_file" >/dev/null 2>&1
+sudo -u $user -- mv "$src_file" "$dst_file" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "Error: file $src_file was not moved"
     exit 3

+ 10 - 11
bin/v-open-fs-file

@@ -7,17 +7,16 @@
 user=$1
 src_file=$2
 
-# Checking arguments
-if [ -z "$src_file" ]; then
-    echo "Usage: USER FILE"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER FILE'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -41,7 +40,7 @@ if [ ! -z "$src_file" ]; then
 fi
 
 # Reading file
-sudo -u $user cat "$src_file" 2>/dev/null
+sudo -u $user -- cat "$src_file" 2>/dev/null
 if [ $? -ne 0 ]; then
     echo "Error: file $src_file was not opened"
     exit 3

+ 10 - 11
bin/v-search-fs-object

@@ -8,17 +8,16 @@ user=$1
 object=$2
 path=$3
 
-# Checking arguments
-if [ -z "$object" ]; then
-    echo "Usage: USER OBJECT [PATH]"
-    exit 1
-fi
+# Includes
+source $HESTIA/func/main.sh
 
-# Checking hestia user
-if [ ! -d "$HESTIA/data/users/$user" ]; then
-    echo "Error: hestia user $user doesn't exist"
-    exit 3
-fi
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER OBJECT [PATH]'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
 
 # Checking user homedir
 homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
@@ -39,7 +38,7 @@ else
 fi
 
 # Listing directory
-sudo -u $user find "$path" -name "$object" \
+sudo -u $user -- find "$path" -name "$object" \
     -printf "%y|%m|%TY-%Tm-%Td|%TH:%TM|%u|%g|%s|%P\n" 2>/dev/null
 #    -printf "%y|%m|%TY-%Tm-%Td|%TH:%TM:%TS|%u|%g|%s|%P\n" 2>/dev/null