哪个是哪个

哪个是哪个
  1. 有什么区别用户姓名,展示姓名和登录姓名?
  2. 如果存在实质性差异,修改每一项会产生什么后果?
  3. 我该如何修改这些?

我知道这usermod在这里是相关的,但如果没有明确的术语,就无法立即解释其选项。可能还有其他命令可以达到相同或相似的目的。

经过。感谢您澄清这一点。

答案1

哪个是哪个

用户名是一个模棱两可的术语,可以指

  • 到正式的用户身份某些系统已知的字符串,或者
  • 到一个显示名称喜欢John Smith

因此,我们有更具体的术语,例如登录名,它告诉我们这是用于登录的字符串,例如jsmith和 not John Smith

用户身份也达到了这个目的,但它对数字用户 ID。这必须从上下文中清楚地看出。例如,在 Unix 中,用户通常不处理数字用户 ID;而是处理数字用户 ID。如果提示要求输入“用户 ID”,人们就会知道他们不应该输入,1003但是jsmith

显示名称(也称为真实用户名)告诉我们这是某些软件对象(例如用户帐户)的名称,用于在用户界面和程序输出(例如诊断或调试消息)中引用它。这意味着显示名称在这些对象中不一定是唯一的,并且不能用作明确引用对象的关键字。它实际上仅用于显示目的。 “显示名称”不一定是用户名;这必须根据上下文来确定。任何可以有名称的东西都可能有显示名称。

在传统的 Unix 中,该/etc/passwd文件将您的数字用户 ID登录名(文本用户 ID),并带有显示名称

变化和后果

chfn实用程序用于更改显示名称又名真实用户名及相关信息。这样做应该不会产生任何后果。

改变文本用户 ID又名登录名需要特权;root可以编辑密码文件来编辑这个。效果是立竿见影的:新名称将出现在系统中任何位置。数字用户 ID显示为其等效文本。例如,如果某人列出了一个目录,ls -l并且该目录包含该用户拥有的文件,他们将立即看到新名称,因为程序ls从密码数据库中挑选它。

该更改将破坏或可能破坏系统中的各种内容,因此是一个坏主意:

  • 首先,如果新名字与另一个名字冲突,那显然是非常糟糕的;我提到这一点是为了完整性。我们假设情况并非如此。
  • 我们还假设某些用户的姓名不会在他们不知情的情况下被更改,从而导致他们无法登录。
  • 剩下的问题是,在文件系统中可能存在编码的配置文件文本用户 ID:在它们的路径名和内容中。当然,这些仍然引用密码文件中不再存在的旧用户 ID。除非所有这些都被追捕并修复,否则更名是不完整的。
  • 如果创建与旧名称匹配的新密码文件条目,问题可能会进一步复杂化。这些配置现在引用了一个有效的用户,但却是错误的。

举个例子

  1. 让我们考虑该sudo实用程序存在于系统中并通过/etc/sudoers文件进行配置。假设该/etc/sudoers文件授予用户使用bob超级用户凭据运行某些危险管理命令的权限。
  2. 现在假设我们在密码文件中重命名bobrobert并且不更新此条目。现在robert无法再运行该命令;该文件授予不执行的sudoers权限。bobrobert
  3. 第二天,添加了一个新用户,并且恰好名为bob。现在bob有权以 root 身份运行该管理命令。

答案2

用户名、显示名和登录名有什么区别?

  • 用户名是您通常用来登录 Unix/Linux 的帐户。
  • 显示名称是用户在 GUI 中的显示方式,通常是名字、姓氏。
  • 登录名与用户名相同。

您可以在 Ubuntu 中看到显示名称的可视化这个帖子

相关内容