我是 Ubuntu 新手,现在将 14.04 作为与 Windows 分开的分区运行。
要安装某些东西,我必须运行sudo apt-get
,否则会出现权限错误。因此,我习惯sudo -s
运行大多数安装命令。
现在的问题是,如果没有 root 访问权限,我以 root 身份安装的所有内容都无法运行。诸如 、 等内容node
在meteor
访问ipython
各种文件夹时会出现错误。
这迫使我使用 root 权限来执行所有操作,我不明白为什么会这样。我在这里做错了什么吗?
编辑:例如,当尝试运行时,node
我得到了这个:
$ node> node.js:148
throw err;
^
Error: EACCES: permission denied, open '/home/pewpew/.node_repl_history'
at Error (native)
运行统计/home/pewpew/.node_repl_history
,我得到:
~$ stat /home/pewpew/.node_repl_history
File: ‘/home/pewpew/.node_repl_history’
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: 808h/2056d Inode: 1714569 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-11-24 09:39:11.687765710 +0800
Modify: 2015-11-24 10:19:45.959716037 +0800
Change: 2015-11-24 10:19:45.959716037 +0800
Birth: -
Meteor 在访问文件夹时出现类似的错误~/.meteor
,我曾经将chown
文件夹的所有者更改为非 root 用户。
答案1
首先:sudo
按照 Ubuntu 的预期使用方式使用:对于每个需要它的命令,仅此而已。sudo
除非需要 root 权限,否则不要使用它来运行命令。例如,大多数用户只需要sudo
安装东西。
第二种:sudo -i
如果你需要 root shell,可以使用。请查看这篇 Unix 和 Linux 文章查看获取 root shell 的各种方法的效果。特别是sudo -i
和sudo su -
,它们都提供登录 shell,可提供最干净的环境。
最后,收回你的主目录的所有权:
sudo chown -R $USER:$USER ~
~
是您的主目录的快捷方式。使用-R
以便将主目录中的所有内容都chown
返回给您。