как я могу использовать удар в качестве своей оболочки входа в систему, когда мой системный администратор отказывается позволять мне изменить его

Необходимо будет соединиться с хранилищем пакетов некоторого вида. Можно установить диспетчер пакетов (в случае Fedora, которым это должно быть yum) использовать Ваш CD в качестве репозитория. Обычно конфигурации для этого находятся в файле конфигурации по умолчанию, но не включили. Заглянуть /etc/yum/repos.d видеть, можно ли найти название репозитория, который настроен для медиа CD.

После того как Ваш repo настроен как значение по умолчанию, или Вы знаете, какую вкусную команду работать, чтобы иметь его включил (yum --enablerepo=cdrom_repo_name или что-то как этот) необходимо смочь установить безотносительно инструментов Вам нужно. yum install make autoconf gcc [...].

Все, что, будучи сказанным, самый легкий способ сделать это, получает машину онлайн. Временно добавьте сетевую плату, если Вы имеете к, но делаете что-то для получения ее онлайн, обновленный, и устанавливать пакеты Вам нужно, затем вернитесь к устранению Вашей другой проблемы.

38
30.08.2012, 02:26
4 ответа

Когда Вы входите в систему, файл ~/.profile читается оболочкой входа в систему (ksh для Вас). Можно сообщить, что вход в систему окружает для замены себя ударом. Необходимо принять некоторые меры предосторожности:

  • Только замените оболочку входа в систему, если это является интерактивным. Это важно: иначе вход в систему в графическом режиме не может работать (это системно-зависимо: некоторые, но не все системное чтение ~/.profile при входе в систему через xdm или подобный), и идиомы такой как ssh foo '. ~/.profile; mycommand' перестанет работать.
  • Проверьте, что удар доступен, так, чтобы можно было все еще войти в систему, если исполняемый файл не там по некоторым причинам.

У Вас есть выбор, выполнить ли удар как оболочку входа в систему или нет. Единственное существенное различие в создании его, который оболочка входа в систему - то, что оно загрузится ~/.bash_profile или ~/.profile. Таким образом, если Вы выполняете удар как оболочку входа в систему, очень стараться иметь a ~/.bash_profile или заботьтесь для не выполнения удара рекурсивно от ~/.profile. Нет никакого реального преимущества наличия ~/.profile выполняемый ударом, а не ksh, таким образом, я рекомендовал бы не делать его.

Также установите SHELL переменная среды для избиения, так, чтобы программы, такие как эмуляторы терминала вызвали ту оболочку.

Вот код для переключения на удар. Поместите его в конце ~/.profile.

case $- in
  *i*)
    # Interactive session. Try switching to bash.
    if [ -z "$BASH" ]; then # do nothing if running under bash already
      bash=$(command -v bash)
      if [ -x "$bash" ]; then
        export SHELL="$bash"
        exec "$bash"
      fi
    fi
esac
69
27.01.2020, 19:35
  • 1
    Превосходный ответ! stackexchange нужна кнопка Send A Beer: это было бы временем, я буду использовать его. –  iconoclast 30.08.2012, 16:39
  • 2
    Спасибо сначала и. .profile только работы для оболочки входа в систему (как потребность OP). Я использую Соединение Удаленного рабочего стола Windows 10 для входа в систему в рабочую станцию Linux, затем открываю Terminal в гноме. Я хочу zsh в то время как мой системный администратор дает мне bash. В этом случае я должен включить отрывок .bashrc вместо .profile. –  Weekend 08.04.2018, 15:32

Это немного kludgey, но можно вызвать bash чтобы быть оболочкой, Вы используете после входа в систему путем создания a .profile файл в Вашем корневом каталоге, содержа

SHELL=`type -P bash`
exec bash -l

Это вызовет ksh сессия, которая будет заменена a bash сессия. Вы не должны будете вводить exit (или ^D) дважды, когда Вы были бы при ручном запуске нового bash сессия каждый раз Вы вошли в систему. И ввод

echo $SHELL

даже возвратит путь к bash.

12
27.01.2020, 19:35
  • 1
    Вы могли, конечно, изменить $SHELL довольно легко путем добавления строки, чтобы сделать так перед должностным лицом. –  derobert 30.08.2012, 00:35
  • 2
    Если Вы хотите, чтобы новая оболочка также была оболочкой входа в систему, Вы должны, вероятно, exec bash -l. –  jw013 30.08.2012, 00:48
  • 3
    Один последний комментарий: type рекомендуется which. –  jw013 30.08.2012, 01:06
  • 4
    я не получаю его! Не будет bash также читайте .profile таким образом генерируя бесконечный цикл? Я соглашаюсь что что-то вроде exec bash то, что Вы хотите, но необходимо удостовериться, что Вы делаете это только к Вашему входу в систему ksh, таким образом, некоторые операторы "if" требуются! –  Bananguin 30.08.2012, 09:21
  • 5
    @user1129682 атрибутов не, если существует ~/.bash_profile или ~/.bash_login –  Ulrich Dangel 30.08.2012, 10:37

Solaris:

usermod -s /bin/bash root
0
27.01.2020, 19:35

В ответе Джайлза должен быть добавлен флаг -l при выполнении bash, так что любые скрипты профиля входа будут прописаны в новой оболочке bash. (Например, все, что находится в /etc/profile.d/ на RHEL). Сценарий должен выглядеть так:

case $- in
  *i*)
    # Interactive session. Try switching to bash.
    if [ -z "$BASH" ]; then # do nothing if running under bash already
      bash=$(command -v bash)
      if [ -x "$bash" ]; then
        export SHELL="$bash"
        exec "$bash" -l
      fi
    fi
esac
4
27.01.2020, 19:35

Теги

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