Установите оболочку по умолчанию как bash для пользователей, не находящихся в / etc / passwd

В настольной системе Ubuntu 15.10 моей компании я вхожу в систему через Active Directory, используя некоторую магию, основанную на PBIS . Таким образом, моя учетная запись пользователя не указана в / etc / passwd, хотя у меня есть домашний каталог в /home/local/FOOBAR/dotancohen/ . Как настроить bash как оболочку, когда нет строки / etc / passwd для редактирования и поэтому не может использовать chsh ?

У меня есть другая учетная запись на этом компьютере с доступом администратора, поэтому я могу настроить систему как администратор, если это необходимо. Однако, если есть пользовательское решение, я бы предпочел, чтобы для использования в будущем, когда у меня не будет доступа администратора!

Ниже приведены результаты нескольких ключевых команд, запускаемых с открытия терминала Gnome в Unity (рабочий стол Ubuntu):

 $ echo $HOME /home/local/TECHMARKETING/dotan $ whoami FOOBAR\dotancohen $ grep dotan /etc/passwd $ grep sourced ~/.profile echo 'sourced .profile' $ grep sourced ~/.bashrc echo "sourced .bashrc" $ echo $SHELL /bin/sh $ echo $TERM xterm $ bash sourced .bashrc - dotan-tm():~$ echo $SHELL /bin/sh - dotan-tm():~$ echo $TERM xterm-256color 

Как видно, оба .bashrc и .profile эхо, когда они были получены. Кажется, что .profile не запускается при запуске оболочки по умолчанию, но .bashrc запускается при запуске bash. Я использовал этот ответ, чтобы открыть bash из тире, но поскольку .profile не запускается, очевидно, что скрипт не имеет никакого эффекта.

Вот мой полный файл ~/.profile для справки:

 $ cat .profile # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/.bin" ] ; then PATH="$HOME/.bin:$PATH" fi xmodmap ~/.Xmodmap export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 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 echo 'sourced .profile' $ 

One Solution collect form web for “Установите оболочку по умолчанию как bash для пользователей, не находящихся в / etc / passwd”

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

 #/opt/pbis/bin/config LoginShellTemplate /bin/bash 

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

  • удалите строки, содержащие диапазон IP из определенного столбца, делая исключения в диапазоне
  • В чем разница между созданием каталога внутри / home и / home / $ USER?
  • Почему «v» в mkfs.vfat?
  • Список аргументов слишком длинный при запуске команды ls -d "$ PWD" / *
  • Как отобразить количество строк, слов и символов в отдельных строках?
  • Получение и установка размера экрана для Xorg
  • Подавление печати всей строки с помощью ls -l
  • grep: входной файл 'X' также является выходным
  • Добавьте возврат каретки к выходу `tail` при использовании` grep`
  • Можно ли перенаправить stdout из фонового приложения после его запуска?
  • Найдите самые большие файлы и удалите их автоматически
  • Linux и Unix - лучшая ОС в мире.