# File common/lib/symbiosis/utils.rb, line 218
    def set_param(setting, value, parent_dir, opts = {})
      fn = File.join(parent_dir, setting)

      #
      # Make sure the directory exists first
      #
      raise "Config directory does not exist." unless File.exists?(parent_dir)

      #
      # Check the parent directory.
      #
      parent_dir_stat = File.stat(parent_dir)

      #
      # Refuse to write to directories owned by UIDs < 1000.
      #
      raise ArgumentError, "Parent directory #{parent_dir} is owned by a system user." unless parent_dir_stat.uid >= 1000


      if false == value or value.nil?
        #
        # This doesn't follow symlinks.
        #
        File.unlink(fn) if File.exists?(fn)

      else
        #
        # Merge in our options
        #
        opts = opts.merge({:mode => 0644, :uid => parent_dir_stat.uid, :gid => parent_dir_stat.gid})

        #
        # Create the file
        #
        safe_open(fn, File::WRONLY|File::CREAT, opts) do |fh|
          #
          # We're good to go.
          #
          fh.truncate(0)
          
          #
          # Record the value
          #
          fh.write(value.to_s) unless true == value
        end

      end

      #
      # Return the value we were originally given
      #
      value
    end