目录
问题原因:
出现这个情况是因为这个文件的权限有问题
问题场景:
rabbitmq安装时由于该文件不存在,会自动创建并且赋权,是不会报这个错误
当rabbitmq重启时,可能该文件的权限被修改,重启时会报这个错误
或者使用docker挂载该文件时,挂载的文件权限不是400(所有者读)/600(所有者读写)/700(所有者读写执)会报错
解决办法:
在挂载的主机上运行 chmod 600 /mydata/rabbitmq/data/.erlang.cookie
补充知识
下面具体介绍chmod命令。
Linux系统中,每个用户的角色和权限划分的很细致也很严格,每个文件(目录)都设有访问许可权限,利用这种机制来决定某个用户通过某种方式对文件(目录)进行读、写、执行等操作。
操作文件或目录的用户,有3种不同类型:文件所有者、群组用户、其他用户。
最高位表示文件所有者的权限值,
中间位表示群组用户的权限值,
最低位则表示其他用户的权限值,
所以,chmod 777中,三个数字7分别对应上面三种用户,权限值都为7。
文件或目录的权限又分为3种:只读、只写、可执行。
权限 | 权限数值 | 具体作用 | 二进制 |
r | 4 | read,读取。当前用户可以读取文件内容,当前用户可以浏览目录。 | 00000100 |
w | 2 | write,写入。当前用户可以新增或修改文件内容,当前用户可以删除、移动目录或目录内文件。 | 00000010 |
x | 1 | execute,执行。当前用户可以执行文件,当前用户可以进入目录。 | 00000001 |
依照上面的表格,权限组合就是对应权限值求和,如下:
7 = 4 + 2 + 1 读写运行权限 5 = 4 + 1 读和运行权限
4 = 4 只读权限
因此,大家也就明白了 chmod 754 filename 命令的含义了。
这句命令的意思是将filename文件的读写运行权限赋予文件所有者,把读和运行的权限赋予群组用户,把读的权限赋予其他用户。