Как переключиться на другого пользователя на терминале в SLES 12?

У вас есть ошибки в коде:

#!/bin/bash
sudo apt update > ~/Desktop/UpdateInfo

update1=$(grep "package can be upgraded" ~/Desktop/UpdateInfo | cut -d' ' -f2,3,4,5)

var1="package can be upgraded."

if [[ "$var1" == "$update1" ]]; then
    notify-send "Updates are available"
else
    notify-send "test"
fi

Вам нужно использовать $для расширения ваших переменных.

При использовании теста [вам обязательно нужно заключать свои переменные в кавычки. Технически это не нужно в тесте [[, но вы все равно должны процитировать.

0
06.01.2020, 19:46
1 ответ

Я предполагаю, что это способ, которым вы создали newuser, назначив ему /bin/trueоболочку, указав -s /bin/true.

Из справочной страницы useradd:

https://linux.die.net/man/8/useradd

-s, --shell SHELL
    The name of the user's login shell. The default is to leave this field blank, which causes the system to select the default login shell specified by the SHELL variable in /etc/default/useradd, or an empty string by default. 

Поскольку вы установили его на /bin/true, статус выхода будет 0и, следовательно, не будет выдано никакого сообщения об ошибке. Установка такой оболочки характерна только для пользователей, которым нельзя разрешать вход в систему. Обычно используется /bin/false, так как это приведет к сообщению об ошибке, аналогичному cannot create shell, которое, по крайней мере, дает представление о том, что не удается.

Это можно решить с помощью usermod -s /bin/bash newuser.

3
28.01.2020, 02:21

Теги

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