我是脚本编写的初学者,但我创建了一个名为的文本文件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
日志记录执行创建/删除。请注意,如果创建者没有使用sudo
或useradd
,userdel
则可能必须执行一些额外的工作才能确定谁执行了创建/删除。