ping внутри netns требует sudo (Fedora)

Предполагая, что расширения параметров в test2.shправильно указаны как

find "$1" -type f -mmin +"$2" -exec rm -f {} \;

, тогда test3.shможет вызывать test2.shвот так:

test2.sh "some file name" 5

$1в test2.shзаменится на строку some file name, а $2заменится на 5.

Предполагается, что test2.shнаходится в каталоге, который указан в переменной PATHв test3.sh. Если нет, используйте полный путь (абсолютный или относительный ), например:

./test2.sh "some file name" 5

Также предполагается, что test2.shсначала был сделан исполняемым с помощью chmod +x test2.shи что он имеет правильную строку #!-.


После уточнения в комментарии ниже:

Сценарий test3.shможет выполнять (, предполагая, что это скрипт bash):

read -p 'Enter directory name: ' dirname
read -p 'Enter number of days: ' days

minutes=$(( days * 60 * 24 ))

./test2.sh "$dirname" "$minutes"

Следующим шагом будет проверка ввода пользователя, чтобы $daysбыло действительным целым числом и чтобы $dirnameбыло допустимым именем каталога.

Если не bash, аsh:

printf 'Enter directory name: '
read -r dirname

(etc.)

Большинство реализаций findтакже имеют-delete:

find "$1" -type f -mmin +"$2" -delete
2
10.09.2020, 23:52
1 ответ

См. соответствующий вопрос. Как работает ping в Fedora без setuid и возможностей?

и Ссылки

https://lwn.net/Articles/422330/

https://fedoraproject.org/wiki/Changes/EnableSysctlPingGroupRange

Из соображений безопасности Fedora больше не использует setuid/возможности пользователя для чтобы разрешить не -root использовать ping. Вместо этого они используют недавнюю функцию ядра который позволяет администратору включить использование ping с помощью gid.

В обычной оболочке:

$ sudo sysctl net.ipv4.ping_group_range      
net.ipv4.ping_group_range = 0   2147483647

Но в свежей оболочке внутри сетевого сетевого пространства:

$ sudo sysctl net.ipv4.ping_group_range
net.ipv4.ping_group_range = 1   0

Таким образом, механизм, который позволяет не -пользователям root использовать ping в Fedora, отключен. по умолчанию при создании нового файла netns. Чтобы исправить это, просто установите значение sysctl внутри вашей сети:

$ sudo sysctl net.ipv4.ping_group_range="0 2147483647"
net.ipv4.ping_group_range = 0 2147483647
$ ping 8.8.8.8
64 bytes from 8.8.8.8: icmp_seq=1 ttl=40 time=20 ms
6
18.03.2021, 23:05

Теги

Похожие вопросы