![我遗漏了什么有关 Linux 用户名和命令行的信息?](https://linux22.com/image/975915/%E6%88%91%E9%81%97%E6%BC%8F%E4%BA%86%E4%BB%80%E4%B9%88%E6%9C%89%E5%85%B3%20Linux%20%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%9F.png)
我对 Linux(特别是 Ubuntu 14.04)还很陌生,距离我上次使用 Unix 系统已经过去 20 年了。即使在那时,我的命令行任务也很少,所以我有一系列带有命令序列的便利贴来帮助我。我正在学习 Ubuntu,以帮助我正在从事的一些开源项目。老实说,我发现来自 Windows 命令行/批处理文件/Powershell 世界的 Linux 有点令人沮丧。现在背景知识已经足够了……
我的命令提示符在 root@serverName 和 user@serverName 之间来回切换,但我不知道如何或为什么。我还注意到有些目录无法访问但确实存在,而且我缺乏在其他一些文件夹中写入的权限。
命令提示符下的不同用户名是什么意思?我如何跟踪我可以读取/写入的文件夹?我很感激能提供参考,因为我并不反对挖掘,但我现在甚至不知道该寻找什么。
谢谢!
答案1
您的命令行提示符在启动脚本中定义shell 的(bash
默认情况下,但 YMMV);Ubuntu 中的默认设置是将其设置为$USER@$HOST
,换句话说,就是user@servername
您正在查看的。
您通常会在 Ubuntu 机器上登录到您的用户;该用户具有相对较低的权限 --- 读取世界可读文件、读取/写入自己的文件、使用公共服务(打印机等),但不能配置它们。Unix 机器中的“管理员”用户称为root
(又名超级用户),并且具有全部权限 --- 它可以对系统进行任何操作。当您从普通用户切换到 root 时,提示会发生变化,以警告您。
进行切换通常有两种方式:一种是直接以 root 身份登录,另一种是使用命令获取权限,例如su
或sudo
(su
代表切换用户在 Ubuntu 中第一种方法不受欢迎;通常root
用户根本没有密码,无法直接登录。
Ubuntu 获取root
权限的方式是,一部分用户(属于sudo
或adm
组的用户)可以通过 切换到超级用户“权限” sudo -i
。您可以使用以下命令进行检查groups
:
[romano:~] % groups
romano adm mail dialout cdrom sudo dip plugdev lpadmin sambashare vboxusers
(组系统是 Unix 向用户赋予部分权限的方式)。
看看这个例子,了解我的提示(这不是标准的,我使用液体提示):
为了进一步挖掘,这个unix教程是一个很好的信息来源。
答案2
在 Linux 中,“超级用户”权限可让您读取和写入整个系统上的任何文件。您可以通过以“root”用户身份登录或使用类似 来获得超级用户权限sudo
。
由于 Linux 的设计允许多个用户使用,因此任何用户都无法破坏其他用户的系统,因此 Linux 拥有用户帐户,并将每个用户的文件分开并保护起来,以便只有该用户可以修改它们。您的文件将位于(默认情况下) 。/home/username/
除此之外,任何普通用户都无法修改“系统”文件,例如已安装的程序或其系统范围的配置。
如果您需要执行任何影响整个系统的操作,您可能需要使用超级用户权限,以 root 身份登录或使用sudo
。但是,需要注意的是,您通常不应以 root 身份登录或使用sudo
,并且当您这样做时,您需要非常小心您正在做的事情。
答案3
要回答您的问题“我如何跟踪我可以读/写哪些文件夹”,这通常在 ubuntu 和类 unix 系统上使用 find 命令完成。
例如,这是 unix 和 linux 论坛上的一篇帖子,在目录和所有子目录中搜索文件并删除@http://www.unix.com/shell-programming-and-scripting/255252-searching-file-directory-all-subdirectory-delete.html其中 find 命令的 -user 标志用于执行常规 unix 系统管理操作。
有关 find 命令的更多信息,请访问 find 的手册页参考: