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

9
感谢您的阅读。我在安装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 我尝试了多次更改权限,但仍未成功。我尝试将/var/log/cassandra/system.log的权限更改为操作系统(OS)上cassandra组的读/写权限,使用的命令是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。
敬礼,
用户
2个回答

14

给予您想要访问数据和提交日志目录的用户权限。

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


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

从信息安全的角度来看,以root身份运行服务器是有风险的。 - user3808269
Cassandra用户不是root。 - phact
Cassandra组和Cassandra用户具有读写system.log文件的权限,因此我不确定为什么在以常规非root操作系统用户身份启动程序时(如/usr/sbin/cassandra -f)无法写入该日志。 - user3808269
Cassandra用户是普通的非root操作系统用户,如果您以cassandra身份启动该进程,则将根据您授予的权限启动。但是,您的其他用户可能没有同样的特权。 - phact
'sudo su - cassandra -s /bin/bash' '/usr/bin/cassandra -f'"sudo su - cassandra -s /bin/bash" "/usr/bin/cassandra -f" - phact
显示剩余8条评论

11

我找到了解决方案! 我运行了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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接