- 有什么区别用户姓名,展示姓名和登录姓名?
- 如果存在实质性差异,修改每一项会产生什么后果?
- 我该如何修改这些?
我知道这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。除非所有这些都被追捕并修复,否则更名是不完整的。
- 如果创建与旧名称匹配的新密码文件条目,问题可能会进一步复杂化。这些配置现在引用了一个有效的用户,但却是错误的。
举个例子
- 让我们考虑该
sudo
实用程序存在于系统中并通过/etc/sudoers
文件进行配置。假设该/etc/sudoers
文件授予用户使用bob
超级用户凭据运行某些危险管理命令的权限。 - 现在假设我们在密码文件中重命名
bob
为robert
并且不更新此条目。现在robert
无法再运行该命令;该文件授予不执行的sudoers
权限。bob
robert
- 第二天,添加了一个新用户,并且恰好名为
bob
。现在bob
有权以 root 身份运行该管理命令。
答案2
用户名、显示名和登录名有什么区别?
- 用户名是您通常用来登录 Unix/Linux 的帐户。
- 显示名称是用户在 GUI 中的显示方式,通常是名字、姓氏。
- 登录名与用户名相同。
您可以在 Ubuntu 中看到显示名称的可视化这个帖子。