Centos 7 не удалось установить докер

Разрешения — это просто строковое представление двоичного числа.
0в основном представлено -, остальные буквы.

базовый

Для базовых разрешений:

Преобразуйте все -и заглавные буквы Sили Tв 0, остальные должны представлять 1.
Результирующее двоичное число, построенное таким образом, должно быть напечатано как восьмеричное :

.
$ a=-rw-r--r--
$ b=${a//[ST-]/0}
$ b=${b//[!0]/1}
$ printf '%04o\n' $((2#$b))
0644

В одну строку:

$ b=${a//[ST-]/0}; b=${b//[!0]/1}; printf '%04o\n' $((2#$b))
0644

Исправление ошибок и обнаружение остальных 3 битов 1000, 2000или 4000требуют дополнительного кода:

#!/bin/bash

Say     (){ printf '%s\n' "$@"; }
SayError(){ a=$1; shift; printf '%s\n' "$@" >&2; exit "$a"; }

e1="Permission strings should have 10 characters or less"
e2="Assuming first character is the file type"
e3="Permission strings must have at least 9 characters"
e4="Permission strings could only contain 'rwxsStT-'"

a=$1

((${#a}>10))  &&   SayError 1 "$e1"
((${#a}==10)) && { Say        "$e2"; a=${a#?}; }
((${#a}<9))   &&   SayError 2 "$e3"
a=${a//[^rwxsStT-]}
((${#a}<9))   &&   SayError 3 "e4"
b=${a//[ST-]/0}; b=${b//[!0]/1}; c=0
[[ $a =~ [sS]......$ ]] && c=$((c|4)) 
[[ $a =~    [sS]...$ ]] && c=$((c|2)) 
[[ $a =~       [tT]$ ]] && c=$((c|1))

printf '%04o\n' "$((2#$b|c<<9))"
0
29.10.2019, 08:10
1 ответ

Ваша система разрешает (и пытается использовать )IPv6. Вероятно, ваша система использует только IPv4. Чтобы отключить IPv6 на yum, добавьте строку ip _resolve = 4 в раздел «main» файла /etc/yum.conf

0
19.02.2020, 20:34

Теги

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