Я объясняю свое решение для обнаружения изменения активности пользователей на сервере в облаке. с приведенными ниже требованиями:
для обнаружения измененного файла я выполняю следующие шаги, ниже пример:
ausearch -f
------------
20/02/2019 16:37:00 /home/oracle/.bash_history 2 yes /usr/bin/bash 54321 770
770 — это номер события, благодаря ему я могу найти номер сеанса:
ausearch -p | grep 770
----------------------
type=SYSCALL msg=audit(20/02/2019 16:37:00.868:770) : arch=x86_64 syscall=open
success=yes exit=3 a0=0x10bd080 a1=O_WRONLY|O_APPEND a2=0x180 a3=0x0 items=1
ppid=8649 pid=8650 auid=oracle uid=oracle gid=oinstall euid=oracle suid=oracle
fsuid=oracle egid=oinstall sgid=oinstall fsgid=oinstall tty=pts1 ses=58
comm=bash exe=/usr/bin/bash subj=unconfined_u:unconfined_r:unconfined_t:s0-
s0:c0.c1023 key=modifica_fil
номер сеанса 58, спасибо, я могу найти pid сеанса входа в систему
ausearch -i | grep ses=58
---------------------------
type=LOGIN msg=audit(20/02/2019 16:34:37.366:747) : pid=8646 uid=root
subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 old-auid=unset auid=oracle tty=
(none) old-ses=4294967295 ses=58 res=yes
pid входа в систему — 8646, я могу посмотреть ключ отпечатка пальца, используемый указанным пользователем в var/log/secure
cat secure | grep 8646
----------------------
sshd[8646]: Accepted publickey for oracle from 192.168.4.107 port 58892 ssh2:
RSA SHA256:x.x.x.x.x
Вы можете прочитать количество пользователей, которых нужно создать, в верхней части скрипта, а затем использовать это число в своем цикле.
Это предложение для варианта вашего скрипта, которому вы могли бы дополнительно указать количество пользователей в командной строке. Если вы не укажете номер в командной строке, он запросит этот номер в интерактивном режиме. Проверка ввода не выполняется.
#!/bin/bash
nusers=$1
if [[ -z $nusers ]]; then
read -p 'Number of users to add: ' nusers
fi
for (( i = 1; i <= nusers; ++i )); do
read -p "User $i first name: " name1
read -p "User $i second name: " name2
printf 'Hello %s %s\n' "$name1" "$name2"
done
Тестирование:
$./script.sh
Number of users to add: 2
User 1 first name: Apple
User 1 second name: Wonder
Hello Apple Wonder
User 2 first name: Mini
User 2 second name: Uncle
Hello Mini Uncle
$./script.sh 2
User 1 first name: Moped
User 1 second name: Runner
Hello Moped Runner
User 2 first name: Tentative
User 2 second name: Luck
Hello Tentative Luck
#!/bin/bash
echo "Creating a user file using while loop"
Name=" "
Surname=" "
echo -n "Enter the number of users to create: "
read no_of_users
for ((i=1;i<=no_of_users;i++)); do
echo "_________________"
echo "USER: $i"
echo -n "Enter first name: "
read Name
echo -n "Enter surname: "
read Surname
echo "Your name is: $Name"
echo "Your surname is: $Surname"
done