无法写入新创建的文件

无法写入新创建的文件

我有一台 ubuntu 服务器。我index.html使用 . 创建了一个简单的文件touch,并尝试使用nano,但结果显示权限被拒绝。为什么会这样?如果我刚刚在服务器上创建了文件,为什么我一开始就没有写权限?我的第二个问题是,如果我想将权限更改为数字格式644(服务器上的 html 文件应该设置为数字格式吗?)我如何查看它当前的内容,如何转换-rw-rw-r--为数字格式?我想-ls -l使用数字权限格式而不是-rw-rw-r--.来查看。index.html文件正在服务器上正常运行。

thomas@vannevar:~/public/example.org/public$ touch index.html
thomas@vannevar:~/public/example.org/public$ ls
index.html
thomas@vannevar:~/public/example.org/public$ nano index.html

Error reading /home/thomas/.nano_history: Permission denied

Press Enter to continue starting nano.

thomas@vannevar:~/public/example.org/public$ ls -l
total 0
-rw-rw-r-- 1 thomas thomas 0 May 17 13:57 index.html
thomas@vannevar:~/public/example.org/public$ 

这有效

http://pricklytech.wordpress.com/2010/12/12/ubuntu-nano-error-reading-home-nano_history-permission-denied/

答案1

您的问题是读取 nano 的历史文件(.nano_history),正如这个大量空白的错误行所清楚表明的那样:

thomas@vannevar:~/public/example.org/public$ nano index.html

Error reading /home/thomas/.nano_history: Permission denied

Press Enter to continue starting nano.

这是在 nano 打开文件之前打开的(这很好用,因为 644 就可以了)

看起来你的主文件夹/.nano_history 的权限可能设置得太严格了。


根据您的评论:

-rw------- 1 root root 111 May 17 14:13 /home/thomas/.nano_history

如您所见,只有 root 用户具有读写权限,其他人没有。

您想做些什么sudo chown thomas:thomas ~/.nano_history来修复这个问题。

答案2

sudo nano根据您所展示的内容,您的问题几乎肯定与您过去某个时间点使用编辑文件有关。Nano 在主目录中创建了一个历史文件,但具有 root 权限。

使用sudo rm /home/thomas/.nano_historysudo chown thomas:thomas /home/thomas/.nano_history修复该文件的权限。

如果不小心,使用 sudo 运行的许多程序可能会产生副作用,即在您的主目录中创建 root 拥有的文件。如果您知道某个特定程序(如 nano)会发生这种情况,那么最好使用sudo -i启动具有 root 环境的新 shell,然后运行命令。

答案3

权限相当容易理解。每个“组”中有 3 个权限位置。读取、写入、执行。因此,您可以将其视为 3 组 3 位。

例如,权限集-rw-rw-r--等于。您可以-110110100将其分成 3 位组(因此rw-,,rw-r--=> 110,,)。将这些 3 位组转换为八进制(因为 2^3 == 8),然后砰!您就得到了数字代码。110100

对于给定的例子: 110= 6 110= 6 100= 4

快捷方式:“执行”位(x)将八进制值加 1,“写入”位(w)加 2,“读取”位(r)加 4。

(644 将是 -rw-r--r--)

相关内容