   #   command  : String #bash command
   #
   # START
-  # 1- create tmpdir /Users/[username]/.tmp
-  # 2- create tmpfile /Users/[username]/.tmp/tmp_[uniqid].txt
-  # 3- write the command inside the tmp file
-  # 4- bash execute the tmp file with su -l [username]
-  # 5- delete the tmpfile.
+  # if command.contains anyOf ";&|><*?`$(){}[]!#'"
+    # 1- create tmpdir /Users/[username]/.tmp
+    # 2- create tmpfile /Users/[username]/.tmp/tmp_[uniqid].txt
+    # 3- write the command inside the tmp file
+    # 4- bash execute the tmp file with su -l [username]
+    # 5- delete the tmpfile.
+  # else
+  #   1- execute command with su -l username -c 'command'
 
   {username,command} = options
 

    if error?
      callback? error
    else
      prepareForBashExecute options, (err, tmpFile)->
        log.info tmpFile
        unless err
          cmd = exec "chown #{username} #{tmpFile};su -l #{username} -c 'sh #{tmpFile}'",(err,stdout,stderr)->
            if err?
              log.error "[ERROR] can't execute command \"#{command}\" for user #{username}: #{stderr}"
              callback? stderr,stdout
            else
              log.info "[OK] command \"#{command}\" executed for user #{username}"
              callback? null,stdout
            fs.unlink tmpFile
        else
          log.error err
          callback err

          callback? err
          log.error err
        else
          # log.debug ".tmp dir is there"
          callback? null
    else
      if stat.isDirectory()
        # log.debug ".tmp dir is there"
        callback? null
      else
        log.error ".tmp file is found where we need .tmp directory. deleting.."
