У вас нет групповой записи, поэтому группа не может писать.
См. также списки контроля доступа к файлам (setfact
/getfacl
). Настройте группу по умолчанию, чтобы все новые файлы/каталоги добавлялись в группу разработчиков.
Если вы используете Debian или его производные, такие как Ubuntu, установите с помощью apt-get install acl
. Вам также может потребоваться активация для вашей файловой -системы (Но, возможно, нет :Я использую ext4, я, кажется, не настроил его в своих параметрах монтирования, и он работает)
Если вы заботитесь о результате, то в какой-то момент вам придется wait
получить результат, когда команда запускается в фоновом/подпрограммном -оболочке (узнать больше на TLDPhttps://tldp.org/LDP/abs/html/subshells.html).
В примере проверяется, успешно ли выполнена часть «создать -подоболочку -», а не «что -работает в подоболочке -».
Вы также можете сделать что-то вроде этого -иметь вместо этого функцию, которая запускается в подоболочке...
#!/bin/bash
testIp() {
ip=$1
user=$2
sshpass... ssh -n -o ConnectTimeout=100 -o StrictHostKeyChecking=no -xaq -q $USER@$IP exit
[[ $? = 0 ]] && echo ssh test is ok || echo ssh test is fail
}
( testIp YOURIP root ) &
( testIp YOUROTHERIP root2 ) &
Просто переместите тест в функцию, чтобы ваш скрипт мог запускать его в фоновом режиме и тестировать несколько подключений параллельно:
#!/bin/bash
testConnection(){
user=$1
ip=$2
sshpass -p secret123 /usr/bin/ssh -n -o ConnectTimeout=100 -o StrictHostKeyChecking=no -xaq -q "$user"@"$ip" exit
[[ $? = 0 ]] && echo "$user@$ip OK" || echo "$user@$ip FAILED"
}
users=( terdon terdon )
ips=( 123.4.5.6 127.1.0.0 )
for ((i=0;i<${#users[@]};i++)); do
testConnection "${users[i]}" "${ips[i]}" &
done
## The script should wait and not exit until
## all background processes finish.
wait
Затем вы можете запустить его следующим образом:
$ foo.sh
terdon@123.4.5.6 FAILED
terdon@127.1.0.0 OK