如何在 Linux Ubuntu 上配置 Cassandra 的访问权限

Posted

技术标签:

【中文标题】如何在 Linux Ubuntu 上配置 Cassandra 的访问权限【英文标题】:How to configure access permissions for Cassandra on Linux Ubuntu 【发布时间】:2016-01-07 22:13:47 【问题描述】:

感谢您阅读本文。我被困在与安装 Cassandra 有关的本教程的第三步:http://wiki.apache.org/cassandra/GettingStarted#Step_3:_Start_Cassandra

我只能以 root 身份运行此软件。 (在虚构的直升机噪音上大喊大叫)这似乎是一种运行软件的糟糕方式。

以我的普通用户身份启动 Cassandra 服务器时,我收到以下错误:

1.) 15:46:00,147 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(/var/log/cassandra/system.log,true) call failed. java.io.FileNotFoundException: /var/log/cassandra/system.log (Permission denied)

2.) ERROR 20:46:00 Doesn't have write permissions for /var/lib/cassandra/data directory

我尝试了几次更改权限,但没有任何效果。我尝试更改操作系统(OS)上cassandra 组的/var/log/cassandra/system.log 读/写权限。我用来执行此操作的命令是sudo chmod 664 /var/log/cassandra/system.log。我发现此页面有助于确定如何更改权限:http://www.linux.org/threads/file-permissions-chmod.4094/

然后,我将我的用户名添加到 cassandra 组。据我了解,以我的用户身份运行/usr/sbin/cassandra -f 命令应该允许我访问/var/log/cassandra/system.log 文件,这将解决其中一个错误,即上面的错误编号1。

尊敬的,

用户

【问题讨论】:

【参考方案1】:

我找到了解决办法!我跑了sudo -u cassandra /usr/sbin/cassandra -f,然后遇到了Phact在他的回答中提到的commitlog目录的问题。然后我运行 Phact 的递归 chown 命令 sudo chown -R cassandra:cassandra /var/lib/cassandra/commitlog 并且 Cassandra 服务器正确启动,就像我以 root 用户运行程序一样。 :D :D :D

【讨论】:

【参考方案2】:

为您想要的用户授予数据和提交日志目录的权限。

sudo chown -R cassandra:cassandra /var/lib/cassandra/data


sudo chown -R cassandra:cassandra /var/lib/cassandra/commitlog

【讨论】:

这些东西已经归cassandra 用户所有,但我正试图以普通用户的身份运行 cassandra 程序,比如说我的操作系统上的foo。我一直在寻找更改/var/log/cassandra/system.log 的权限,而不是/var/lib/cassandra/commitlog 为什么要以普通用户的身份运行 Cassandra? 用户需要访问所有文件 在信息安全方面,以 root 身份运行服务器是有风险的。 cassandra 用户不是 root。

以上是关于如何在 Linux Ubuntu 上配置 Cassandra 的访问权限的主要内容,如果未能解决你的问题,请参考以下文章

cass引出标注怎么标

如何在 Ubuntu 中配置 open***

教你如何在Linux上安装并配置Vim编辑器#yyds干货盘点#

如何在Ubuntu上安装MongoDB 3.0.2 WiredTiger

如何在64位Ubuntu 16.04系统上卸载openjdk并重新安装配置java8环境

Ubuntu下samba的安装和配置