Oracle lsnrctl start = Linux Error: 13: Permission denied, lsnrctl status = Linux Error: 111: Connection refused

Symptoms:

->lsnrctl start
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 11-FEB-2016 23:08:57
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Starting /oracle/product/11.2.0.4/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /oracle/product/11.2.0.4/network/admin/listener.ora
Log messages written to /oracle/product/11.2.0.4/network/log/listener.log
Error listening on: (ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))
No longer listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cibogndb-dt-1t.ula.comcast.net)(PORT=1521)))
TNS-12546: TNS:permission denied
 TNS-12560: TNS:protocol adapter error
 TNS-00516: Permission denied
 Linux Error: 13: Permission denied
Listener failed to start. See the error message(s) above...
(oracle) cibogndb-dt-1t:T20CIBO:/var/tmp
->lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 11-FEB-2016 23:09:34
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
 TNS-00511: No listener
 Linux Error: 111: Connection refused

Resolution:

So, you’re probably here after searching and searching because you are using the oracle user account, your /etc/hosts is readable and your host name and IP are correct and you can’t get it to start.

There is one really annoying thing to check and it is fairly easy to fix.
Chances are your /var/tmp/.oracle directory (or contents) has the permissions or ownership changed in a way that lsnrctl can’t use it.

It should be readable and writable for the oracle user.
Here is how it looks on a default installation:

->ll -d /var/tmp/.oracle
drwxrwxrwt. 2 root root 4096 Dec 1 22:22 /var/tmp/.oracle

Either change the permissions back to 777 or change it to be owned by oracle:dba.

chmod 777 .oracle

and things will probably work again. Yeah, how annoying to hide stuff like that and not tell you in the error message!