What does the 's' in srwxr-xr-x in the 'ls' output mean?
From the ls
manual:
The file type is one of the following characters:
‘-’ regular file
‘b’ block special file
‘c’ character special file
‘C’ high performance (“contiguous data”) file
‘d’ directory
‘D’ door (Solaris 2.5 and up)
‘l’ symbolic link
‘M’ off-line (“migrated”) file (Cray DMF)
‘n’ network special file (HP-UX)
‘p’ FIFO (named pipe)
‘P’ port (Solaris 10 and up)
‘s’ socket
‘?’ some other file type
So, that's a Unix socket. It could be meaningful, since sockets are created by processes to listen for requests. Use lsof
to determine what process is using that socket.
You may need to use sudo
with lsof
, if the socket is opened by a process running as another user:
$ lsof /run/snapd.socket
$ sudo lsof /run/snapd.socket
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 197u unix 0xffff99dc9afa3000 0t0 191670 /run/snapd.socket type=STREAM
snapd 18626 root 8u unix 0xffff99dc9afa3000 0t0 191670 /run/snapd.socket type=STREAM
You could use file
command to determine its type too:
$ file /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: socket
or even mimetype
:
$ mimetype /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: inode/socket