当前位置: 首页>>技术教程>>正文


permissions – ‘ls’ 输出中的 srwxr-xr-x 中的 ‘s’ 是什么意思?

, , ,

问题描述

我有一个如下的目录条目

srwxr-xr-x  1 ubuntu ubuntu    0 May 29 05:03 0.0.0.0=

我不知道 s 是什么意思,而且这是一个奇怪的文件名,我不知道它有什么用处。这可能是垃圾还是有意义的东西?

最佳办法

来自 ls 手册:

\\n

The file type is one of the following characters:

\\n

\\u2018-\\u2019 regular file
\\n \\u2018b\\u2019 block special file
\\n \\u2018c\\u2019 character special file
\\n \\u2018C\\u2019 high performance (\\u201ccontiguous data\\u201d) file
\\n \\u2018d\\u2019 directory
\\n \\u2018D\\u2019 door (Solaris 2.5 and up)
\\n \\u2018l\\u2019 symbolic link
\\n \\u2018M\\u2019 off-line (\\u201cmigrated\\u201d) file (Cray DMF)
\\n \\u2018n\\u2019 network special file (HP-UX)
\\n \\u2018p\\u2019 FIFO (named pipe)
\\n \\u2018P\\u2019 port (Solaris 10 and up)
\\n \\u2018s\\u2019 socket
\\n \\u2018?\\u2019 some other file type

\\n

因此,这是一个 Unix socket 。它可能很有意义,因为套接字是由进程创建的,用于侦听请求。使用 lsof 来确定哪个进程正在使用该套接字。

如果套接字由以另一个用户身份运行的进程打开,则可能需要将 sudolsof 一起使用:

$ 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

次佳办法

您也可以使用 file 命令来确定其类型:

$ file /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: socket

甚至 mimetype

$ mimetype /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: inode/socket

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14539.html,未经允许,请勿转载。