bash устанавливает переменную для вывода команды

Un usuario puede ser miembro de muchos grupos, pero solo de un grupo principal. Este grupo se asociará con el usuario con respecto a la creación de nuevos archivos (, la propiedad del grupo será el grupo principal ). Lo mismo con la propiedad del proceso de los nuevos procesos.

Los grupos secundarios otorgan permisos.

En cuanto a la segunda parte de su pregunta, eche un vistazo aman usermod:

-g, --gid GROUP

The group name or number of the user's new initial login group. The group must exist.

Any file from the user's home directory owned by the previous primary group of the user will be owned by this new group.

The group ownership of files outside of the user's home directory must be fixed manually.

Supongo que lo que debe hacer para ver los efectos es cerrar la sesión y volver a iniciarla. Lo mismo se aplica a cualquier membresía de grupo nueva.

1
12.06.2019, 23:19
1 ответ

Команда setне устанавливает значения переменных оболочки, как в bash. Вместо этого вы можете попробовать declare.

Похоже, вы хотите использовать переменную, названную в честь имени хоста. К сожалению, имя хоста начинается с цифры, поэтому его нельзя использовать в качестве имени переменной.

Команда echo $7phdsn01выводит phdsn01, поскольку$7(7-й позиционный параметр )не установлен и расширяется до нуля, за ним следует остальная часть строки.

Я бы, наверное, использовал

declare -A state

state["$(hostname --short)"]=$(virsh --readonly list --state-running --name)

Это создаст ассоциативный массив с именем state. Следующая строка задает значение ключа, заданного командой hostname --state, для вывода команды virsh.

Значения и ключи массива stateможно было бы использовать следующим образом:

for host in "${!state[@]}"; do
    printf 'Host %s is in state %s\n' "$host" "${state[$host]}"
done

Если вы делаете это для одного хоста, то, очевидно, нет нужды в такой фантазии. Вместо этого просто используйте две переменные:

host=$(hostname --short)
state=$(virsh --readonly list --state-running --name)

printf 'Host %s is in state %s\n' "$host" "$state"
2
27.01.2020, 23:30

Теги

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