Даже если вы не примените мой ответ, я надеюсь, что кое-что вам поможет.
Я не буду приводить подробности реализации, так как это зависит от вашего API.
Предположим, что вы используете «bash», поэтому в домашнем каталоге для каждого пользователя вы можете создать «.bashrc» (, если он еще не существует )и поставить какую-нибудь программу, которая просто отправляет SMS пользователю и возвращает пароль который отправил. Если тайм-аут или пароль не совпадают, выйдите из системы. Необходимо перехватывать сигналы 2, 11, 15, чтобы предотвратить события STOP/KILL. Я пишу код псевдо -для уточнения:
~/.bashrc:
trap_signals
sent_password = send_sms_program <msisdn> <timeout>
print "Enter password: "
input_password = read_password_from_console
if (<timeout>) {
logout
} else {
if (input_password == key) {
exit
} else {
logout
}
}
Домашние каталоги пользователя требовательны к доступу других пользователей. Предполагается, что все в домашнем каталоге принадлежит пользователю этого дома. Вы, вероятно, сталкиваетесь с проблемами разрешений, поэтому символические ссылки определенно неправильный путь. Если вам не нужна реальная -синхронизация времени, а только синхронизация время от времени, у вас должны быть права доступа к обоим каталогам, наиболее вероятный вариант — стать суперпользователем. Затем вы можете выполнить синхронизацию и восстановить естественное владение. Вот как вы можете пойти:
id userB # figure out the group of the userB, suppos the output is groupB
sudo -i # become a superuser
rsync -aP /home/userA/transfer/ /home/userB/transfer/ #sync using rsync
chown -R userB.groupB /home/userB/transfer # restore ownership
Если это работает для вас, это может быть оптимизировано для не -интерактивной одной -линейной команды:
sudo bash -c "rsync -a /home/userA/transfer/ /home/userB/transfer/ && chown -R userB.$(id -gn userB) /home/userB/transfer/"
ОБНОВЛЕНИЕ пример:
→ sudo ls -al /home/joker/trans/
total 8
drwxrwxr-x. 2 joker joker 4096 Feb 12 20:44.
drwx------. 9 joker joker 4096 Feb 12 20:33..
-rw-rw-r--. 1 joker joker 0 Feb 12 20:33 file1
-rw-rw-r--. 1 joker joker 0 Feb 12 20:33 file2
→ sudo ls -al /home/vagrant/trans/
total 8
drwxrwxr-x. 2 vagrant vagrant 4096 Feb 12 20:33.
drwx------. 4 vagrant vagrant 4096 Feb 12 20:34..
-rw-rw-r--. 1 vagrant vagrant 0 Feb 12 20:33 file1
→ sudo bash -c "rsync -aP /home/joker/trans/ /home/vagrant/trans/ && chown -R vagrant.$(id -gn vagrant) /home/vagrant/trans"
sending incremental file list
./
file2
0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/3)
Здесь транс-подкаталог пользователя Joker синхронизирован с пользователем vagrant. Попробуйте воспроизвести с вами пользователей и увидите разницу. (Джокер имеет права sudo)
(*)Обратите внимание на косые черты в конце команд rsync, они важны