如何将用户添加到 Linux 系统并如文件中所列?

如何将用户添加到 Linux 系统并如文件中所列?

我是脚本编写的初学者,但我创建了一个名为的文本文件text.dat,该文件在文件位置仅包含用户名/home/daniel/text.dat,并且我正在尝试运行一个脚本(名为addusers.sh),该脚本显示该文本文件中的名称,并将在系统上为文件中指定的每个新用户帐户创建一个新的用户帐户text.dat

对于创建的每个用户帐户,在文件中附加一行条目/home/daniel/logs/useraccounts.log。行条目将包含以下信息:

已添加 | < 用户帐户名称 > | < 创建日期和时间 >
。这是我目前所拥有的:

/bin/bash #!/bin/bash
回显“cat text.dat”
新用户 = grep /home/daniel/text.dat
sudo adduser $新用户

答案1

如何将用户添加到 Linux 系统并如文件中所列?

sudo ./addusers.sh如果您希望该过程完全自动化(例如通过以下方式运行),则应该执行以下操作:

/bin/bash #!/bin/bash
# addusers.sh - 将用户添加到系统并输出相同的日志
# 以 root 身份或通过 sudo 运行

用户文件=/home/daniel/text.dat
日志文件=/home/daniel/logs/useraccounts.log

当读取用户时;执行
   echo“添加$user”
   添加用户 --gecos "" --disabled-password $用户
   echo "添加 | $user | `日期` |" >> $logfile
完成 < $usersfile

使用选项(来自adduser手册页):

--disabled-password

Like --disabled-login, but logins are still possible (for example using SSH RSA keys) but not using 密码验证。

--disabled-login我想应该也可以)

--gecos GECOS

Set the gecos field for the new entry generated. adduser will not ask for finger information if this option is given.

adduser如果您想指定密码和/或用户信息,可以关闭这些选项。

您还可以指定创作日期和时间通过选项指定date,例如

$日期“ +%Y-%m-%d%H%M”
2017-02-19 0330

答案2

您要记录的事件已被 Linux 记录。查看/var/log/auth.log并尝试根据您的特定需求进行过滤或解析,而不是尝试创建您自己的日志文件。

以下是相关日志的样本:

Feb 19 10:23:47 localhost sudo:    larssend : TTY=pts/1 ; PWD=/home/larssend ; USER=root ; COMMAND=/usr/sbin/useradd -m -s /bin/bash -U tst
Feb 19 10:23:47 localhost sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Feb 19 10:23:47 localhost useradd[1661]: new group: name=tst, GID=1001
Feb 19 10:23:47 localhost useradd[1661]: new user: name=tst, UID=1001, GID=1001, home=/home/tst, shell=/bin/bash
Feb 19 10:23:48 localhost sudo: pam_unix(sudo:session): session closed for user root
Feb 19 10:23:50 localhost sudo:    larssend : TTY=pts/1 ; PWD=/home/larssend ; USER=root ; COMMAND=/usr/sbin/userdel -r tst
Feb 19 10:23:50 localhost sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Feb 19 10:23:50 localhost userdel[1667]: delete user 'tst'
Feb 19 10:23:50 localhost userdel[1667]: removed group 'tst' owned by 'tst'
Feb 19 10:23:50 localhost userdel[1667]: removed shadow group 'tst' owned by 'tst'
Feb 19 10:23:50 localhost sudo: pam_unix(sudo:session): session closed for user root

如您所见,它几乎包含了您可能需要了解的有关用户帐户创建和删除的所有内容,包括WHO通过sudo日志记录执行创建/删除。请注意,如果创建者没有使用sudouseradduserdel则可能必须执行一些额外的工作才能确定谁执行了创建/删除。

相关内容