新创建用户的 bash 配置应该放在哪里?

新创建用户的 bash 配置应该放在哪里?

我有一个作业,但我很困惑要编辑哪个 bash 配置文件。

我应该编辑 bash 配置文件并更改 PS1 提示符并添加一个环境变量,每当 root 用户输入命令时该环境变量都会搜索 ~/scripts 。然后我应该将其复制到适当的目录,以便所有新创建的用户也将拥有变量。

我可以很好地完成第一部分,但不确定我应该编辑哪个配置文件。根据第二个要求,我正在编辑 ~/.bashrc,但随后我陷入了要复制到哪个目录的第二部分。

NDG 表示该目录中带有 .sh 扩展名的所有文件都会在 /etc/profile.d/ 中自动执行,因此我继续将 ~/.bashrc 复制/重命名为 bashrc.sh 之类的文件。但是当我使用新的用户配置文件测试它时,终端中出现空提示。

希望这里有人可以帮助我,谢谢。


作业的确切措辞

  1. 在相应的 bash shell 配置文件中,配置主命令行提示符,使其显示您的姓氏,后跟 @、主机名和工作目录。
  2. 创建一个名为 ~/scripts 的目录
  3. 在相应的 bash shell 配置文件中,更改相应的环境变量,以便当 root 用户输入命令时系统也会搜索新创建的 ~/scripts 目录。
  4. 将您在上述步骤中修改的 bash shell 配置文件复制到适当的目录,以便每当创建新用户时,该用户也将具有这些环境变量值。

答案1

你看起来编辑得很好.bashrc;您还需要复制要在创建用户时复制的任何配置/脚本文件的模板的目录通常位于/etc/skel.

所以你会这样做:

  1. 附加~/.bashrc并放置在那里:

    PS1="surname@\h\w>"
    
  2. 在 ~/scripts 中为将来的用户脚本创建占位符

    mkdir ~/scripts
    
  3. 附加到~/.bashrc$PATH 修饰符以使其搜索脚本;根据经验,出于安全原因,您将其附加在末尾,而不是开头

    PATH=$PATH:~/scripts
    
  4. 在最后一部分中,您需要以root或属于sudo该命令前面的组的身份执行此操作,以sudo获得超级用户权限;您的普通用户默认权限不足以在 /etc/skel 目录中写入。如在

    sudo cp ~/.bashrc /etc/skel
    

    或作为root用户:

    cp  ~your_user_name/.bashrc /etc/skel
    

查看相关内容关联有关 /etc/skel 的更多详细信息

/etc/skel 目录包含在 useradd 程序创建新用户时自动复制到新用户主目录的文件和目录。

/etc/skel 允许系统管理员为计算机或网络上的所有新用户创建默认主目录,从而确保所有用户都以相同的设置或环境开始。

操作系统安装时默认将几个用户配置文件放置在/etc/skel中。

目录 skel 的名称源自“骨架”一词,因为它包含的文件构成了用户主目录的基本结构。

至于PATH环境变量,参见

PATH 环境变量是一个以冒号分隔的目录列表,当您输入命令时,shell 将搜索该目录。

程序文件(可执行文件)保存在 Unix 系统上的许多不同位置。当您请求特定程序时,您的路径告诉 Unix shell 在系统上查找的位置。

要更改 PS1 的提示,您可以使用.bashrc PS1 生成器并使用一个非常聪明的网页实时查看修改。

相关内容