Is there any easy way (via the admin panel) to get a direct link for an asset?
You could utilize the modifyAssetTableAttributes and getAssetTableAttributeHtml hooks.

So, you would create a plugin, and in the main plugin file you could add something like the following:

public function modifyAssetTableAttributes(&amp;$attributes, $source)
{
    $attributes['filePath'] = Craft::t('File Path');
}

public function getAssetTableAttributeHtml(AssetFileModel $asset, $attribute)
{
    if ($attribute == 'filePath')
    {
        $filePath = $asset-&gt;url;
        return $filePath;
    }
}


* Edit *

I did test this, and it works, but because of Craft's ability to reorganize Assets (i.e., drag them to a new folder) it's not just a simple matter of highlighting the link, copying, and pasting.

However, by taking this example a little further, you should be able to add a little JS and have a link or something to that effect output in getAssetTableAttributeHtml that when clicked copies the URL to the user's clipboard. If you go this route, make sure to include the JS in your plugin's init method. Something like:

public function init()
{
    craft()-&gt;templates-&gt;includeJsResource('yourplugin/your-js.js');
}


Or (hah), for a really basic implementation, you could wrap the string in a URL and just have them right click and "Copy Link Address":

public function getAssetTableAttributeHtml(AssetFileModel $asset, $attribute)
{
    if ($attribute == 'filePath')
    {
        $filePath = '&lt;a href="'.$asset-&gt;url.'"&gt;' . $asset-&gt;url . '&lt;/a&gt;';
        return $filePath;
    }
}