Я новичок в написании сценариев, но я создал текстовый файл с именем text.dat который содержит только имена пользователей в расположении файла /home/daniel/text.dat и я пытаюсь запустить скрипт (называемый addusers.sh), который отображает имена из этого текстового файла и создаст новую учетную запись пользователя в системе для каждой новой учетной записи пользователя, указанной в файле text.dat .

Для каждой созданной учетной записи пользователя добавьте строчную запись в файл /home/daniel/logs/useraccounts.log . Запись строки будет содержать следующую информацию:

added | < user account name > | < day and time of creation >
, Это то, что я до сих пор:
 #!/bin/bash 
echo “cat text.dat” 
newuser= grep /home/daniel/text.dat 
sudo adduser $newuser

2 ответа2

0

Событие, которое вы хотите зарегистрировать, уже регистрируется в 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

Как вы можете видеть, в нем есть почти все, что вам может понадобиться для создания и удаления учетной записи пользователя, включая информацию о том, кто выполнил создание / удаление с помощью регистрации в sudo . Обратите внимание, что если создатель не использовал sudo для вызова useradd или userdel , вам, возможно, придется выполнить дополнительную работу, чтобы выяснить, кто выполнил создание / удаление.

0

Как я могу добавить пользователей в систему Linux, как указано в файле?

Что-то вроде следующего должно быть сделано, если вы хотите, чтобы процесс был полностью автоматизирован (запустите, например, через sudo ./addusers.sh):

#!/bin/bash
# addusers.sh - Add users to system and output a log of same
# run as root or via sudo

usersfile=/home/daniel/text.dat
logfile=/home/daniel/logs/useraccounts.log

while read user; do
   echo "Adding $user"
   adduser --gecos "" --disabled-password $user
   echo "added | $user | `date` |" >> $logfile
done < $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 , например,

$ date "+%Y-%m-%d %H%M"
2017-02-19 0330

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .