如何在 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 的访问权限的主要内容,如果未能解决你的问题,请参考以下文章
教你如何在Linux上安装并配置Vim编辑器#yyds干货盘点#
如何在Ubuntu上安装MongoDB 3.0.2 WiredTiger