1

我正在尝试遵循此处的建议: Jython: ImportError: No module named multiarray(但是当我尝试在 eclipse 中更改和保存 nltk/metrics/segmentation.py 文件时(在 ubuntu 11 下)我得到

资源的父级:/usr/local/lib/python2.7/dist-packages/nltk/metrics/segmentation.py标记为只读。 /usr/local/lib/python2.7/dist-packages/nltk/metrics/segmentation.py(权限被拒绝)我已经尝试过chmod 777 -r,但这并没有做任何事情。

任何人都可以帮助一个菜鸟超过他的深度吗?

4

1 回答 1

1

Chmod 的递归是大写的“R”,选项 -R 位于权限之前,权限本身位于目录之前。因此:

sudo chmod -R 777 dir/name

应该做你想做的。

但是,我总是很难告诉人们去 chmodding 777 任性。

默认情况下,主目录之外的所有目录都是只读的。三组用户共有三种权限:“读”、“写”、“执行”。如果您ls -l 在相关目录上运行命令,您应该会看到如下内容:

drwxr-xr-x    4 shannon  admin   136 Oct  7 18:22 chunkers/
drwxr-xr-x  122 shannon  admin  4148 Nov  1 08:22 corpora/
drwxr-xr-x   12 shannon  admin   408 Nov  1 08:22 grammars/

Linux 系统的安全性主要基于这样一个事实,即只有 root 可以做任何事情。其他所有人,包括您的用户名,都必须请求许可。这可能看起来很麻烦,但我们 Linux 用户很高兴每个人都必须请求许可。

那么,这个废话是什么意思:

drwxr-xr-x 4 shannon admin some-numbers date-time dir/name
  1. drwx:这是用户/所有者(香农)可以为rwx.
  2. r-x:组(在本例中为管理员)可以执行以下操作:(rx读取和执行,而不是写入)。
  3. r-x: 其他人(任何其他用户)可以执行以下操作:rx.

等等。

要编辑该文件,您可以将相关目录的所有者永久更改为您自己:

sudo chown -R yourusername /usr/local/lib/python2.7/dist-packages/nltk/

当然,您可以通过多种不同的方式授予自己编辑内容的权限(例如,您可以sudo chgrp -R g+w dir/name然后确保您的用户名是现在可以写入目录的组的一部分)。这是一个很好的制作方法,以便其他人可以做一些事情来做这个目录。

可能最好的解决方案是使用 sudo 和命令行编辑器来编辑文件,因为您可能不会多次编辑文件,对吗?

sudo nano /usr/local/lib/python2.7/dist-packages/nltk/metrics/segmentation.py

使用 CTRL+o 保存并使用 CTRL+x 退出。

无论如何,有些答案不如其他答案安全,但我一直对 chmod 777 一切犹豫不决。也许我被教导过于偏执。

于 2012-11-14T03:53:49.393 回答