우리 회사의 Ubuntu 15.10 데스크탑 시스템에서는 Active Directory를 통한 로그인을 기반으로 몇 가지 마법을 사용합니다.PBIS. 따라서 내 홈 디렉토리가 /etc/passwd에 있어도 내 사용자 계정이 나열되지 않습니다 /home/local/FOOBAR/dotancohen/
.편집할 /etc/passwd 행이 없고 사용할 수 없는 경우 bash를 쉘로 구성하는 방법은 무엇입니까 chsh
?
이 컴퓨터에는 관리자 액세스 권한이 있는 다른 계정이 있으므로 필요한 경우 시스템을 관리자로 구성할 수 있습니다. 하지만, 사용자 전용 솔루션이 있다면 앞으로는 관리자 권한이 없을 때 사용하는 것이 좋을 것 같아요!
다음은 Unity(Ubuntu 데스크톱)에서 Gnome 터미널을 열어 실행한 여러 주요 명령의 결과입니다.
$ echo $HOME
/home/local/FOOBAR/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
에코됩니다 . 기본 쉘이 시작될 때가 아니라 bash가 시작될 때 실행되는 .profile
것 같습니다 . 나는 사용했다.profile
.bashrc
이 답변대시에서 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'
$
답변1
PBIS를 사용하면 모든 사용자에 대한 기본 셸을 정의할 수 있습니다.
#/opt/pbis/bin/config LoginShellTemplate /bin/bash
이 작업은 루트로 수행해야 하며, 사용자나 권한이 없는 사용자는 이 설정을 변경할 수 없습니다. 이는 모든 AD 사용자의 기본 셸이 됩니다.