【问题标题】:make linux directory writable using bash command through java code通过java代码使用bash命令使linux目录可写
【发布时间】:2012-01-14 16:07:24
【问题描述】:

我的 linux 服务器中有一个目录 /webroot。哪个权限集是 771,这意味着其他人是 1。但我想通过 java 代码使它成为 773,就像是:

Process p1 = Runtime.getRuntime().exec("chmod 773 /webroot");

但不能更改权限。

我还捕获了错误流,如下所示:

chmod: changing permissions of `/webroot/': Operation not permitted 

我昨天看到一个几乎相关的帖子,但我找不到合适的答案。这个时候,我该怎么办?

请帮忙。

【问题讨论】:

  • 研究获得操作系统权限,我认为这可能会有所帮助
  • 如果您不介意,可以告诉我更多细节吗?我是 linux 服务器的新手。

标签: java linux bash sh


【解决方案1】:

我认为这里的错误很明显。您的 Java 代码以什么用户身份运行?它很可能没有在该目录上运行 chmod 的权限。

对该目录执行ls -l 以查看它的所有者。确保您的 Java 代码在同一用户上运行。

【讨论】:

  • 所有权限如下:drwxrwx--x 9 root root 4096 Dec 7 09:47 webroot ,但是如何使用root用户运行java代码?
  • 我不会推荐它。您也许可以使用 sudo。否则,这可能是您需要在 Java 之外完成的初始设置。
  • 嘿,我用了Process p1 = Runtime.getRuntime().exec("sudo chmod 773 /webroot");,但它无法更改目录权限,捕获的错误流如下:sudo: sorry, you must have a tty to run sudo
  • @Pritom 您尝试做的事情很奇怪-我建议您坚持 ziesemer 的建议.. 但是如果您真的想坚持下去,您需要编辑 sudoers 文件并包含一个!您的用户的要求
  • 我使用的是tomcat6,用户名是'tomcat',现在我可以在我的sudoers文件中添加什么???
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 2014-07-25
  • 2022-10-04
  • 1970-01-01
  • 2020-12-11
  • 2015-01-23
  • 1970-01-01
相关资源
最近更新 更多