【问题标题】:Creating multiple users in bash shell from a csv file从 csv 文件在 bash shell 中创建多个用户
【发布时间】:2020-11-19 23:37:37
【问题描述】:

我正在尝试从 bash shell 脚本中的 csv 文件创建多个用户。我的 csv 看起来像这样

Codigo,Apellido,Nombre,Carrera,Facultad,Rol 
10001,Accorti,Paolo,COM,FACED,Profesor
10002,Afonso,Pedro,ICI,FIA,Estudiante
.
.
.

我有以下代码

#!/bin/bash

while IFS=, read  -r Codigo Apellido Nombre Carrera Facultad Rol; 
do

password="Pass123"
sudo useradd -c "${Codigo} ${Apellido}" -d "/home/$codigo" -s /bin/bash -p "${password}"

done < Usuarios.csv 

当我运行代码时,我没有任何错误,但我的终端显示了 useradd 选项并且我的帐户尚未创建。这是我第一次在 bash shell 中编程,我不确定自己做错了什么。

【问题讨论】:

  • 不应该是-d "/home/$codigo"-d "/home/$Codigo"
  • 正如一些答案中所指出的: -p 使用错误(您应该传递加密密码)。但主要问题是:useradd 缺少登录名的参数。手册页:useradd [选项] LOGIN

标签: linux bash shell unix


【解决方案1】:

我认为你的“useradd”命令是错误的。

#!/bin/bash

while IFS=, read  -r Codigo Apellido Nombre Carrera Facultad Rol; 
do

  password="Pass123"
  useradd -c "${Codigo} ${Apellido}" -m -p ${password} -s /bin/bash ${Codigo}

done < Usuarios.csv

【讨论】:

  • 我试过了,用户没有被创建
  • 这很奇怪,因为对我来说它工作正常。您是否使用与我的帖子中的“useradd”命令完全相同的行?你收到了什么错误?
  • 我得到 useradd 命令未找到,但在它工作之前添加了一个 sudo,非常感谢!
  • 啊,我错过了 sudo ,抱歉 ;) 祝你好运!
【解决方案2】:

取自 useradd 的手册页:

  -p, --password PASSWORD
       The encrypted password, as returned by crypt(3). The default is to
       disable the password.

       Note: This option is not recommended because the password (or
       encrypted password) will be visible by users listing the processes.

       You should make sure the password respects the system's password
       policy.

使用 -p 传递的密码需要加密,不能是纯文本。另一种方法是使用 passwd

另一种可能性是用户 newusers,尽管这是特定于发行版的。

【讨论】:

  • 我也试过了,在终端中仍然有相同的结果,用户没有被创建。
  • 你是如何加密密码的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多