无法写入新创build的文件

我有一个Ubuntu的服务器。 我使用touch创build了一个简单的index.html文件。 并试图使用nano ,原来的权限被拒绝。 为什么是这样? 如果我只是在服务器上创build文件,为什么我一开始就不能写入? 我的第二个问题是,如果我想改变数字格式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$ 

这工作

Ubuntu – Nano – Error reading /home/username/.nano_history: Permission denied

你的问题是阅读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. 

这是打开之前纳米打开你的文件(工作正常,因为644是可以的)

看起来像你的家庭文件夹/ .nano_history的权限可能设置得太紧。


在您的评论之后:

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

正如你所看到的,只有root的用户具有读写权限,没有其他人。

你想做sudo chown thomas:thomas ~/.nano_history来解决这个问题。

鉴于你所显示的,你的问题几乎肯定与你在过去的某个时刻使用sudo nano来编辑文件有关。 Nano在主目录中创build了一个历史文件,但是拥有root权限。

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

如果您不小心,许多使用sudo运行的程序可能会在您的主目录中创build根文件夹的副作用。 如果你知道这将会发生在像nano这样的特定程序上,那么使用sudo -i启动一个具有root环境的新shell,然后运行你的命令可能会更好。

权限是相当简单的理解。 每个“组”中有3个位置用于权限。 读,写,执行。 所以,你可以把它想成3个3位。

作为示例,权限集-rw-rw-r--等于-110110100 。 你可以把它们分成3位(所以rw-rw-r-- => rw- )。 将这些3位组转换为八进制(因为2 ^ 3 == 8)和繁荣! 你有你的号码。

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

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

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