/etc/passwd
アクセス権やその他の権限なしで自分のユーザーにSolaris / SunOSでシェルを設定するにはどうすればよいですかsu
?
その後、相互作用ssh
(1)とssh
コマンド転送(2)が機能するはずです。
uname -a
説明するSunOS ... 5.10 Generic_148889-04 i86pc i386 i86pc
コメントと回答に答えるには編集してください。
chsh
いいえ
私はこれを行うことはできません/usr/bin/passwd -e
。許可が拒否されました。
デフォルトのシェルはbashです。私はzshが欲しい。
SHELL
環境変数を手動で設定し、ファイルからシェルを手動で起動しようとしましたが、.profile
機能しません。2番目のケース(2):ssh user@host command
bashで実行されますcommand
。
これはログイン時に私が好むシェルを得るよりも副次的なものなので、回避策は確かに言及する価値があります。ただ私がこの質問をする目的は正しい方法を見つけることです。一人のユーザーにしか関係がないので、SAが介入されなくても可能だと思っていましたが、今はよくわかりません。 (しかし、問題(1)と(2)を解決する解決策は明らかに素晴らしいでしょう。)
ベストアンサー1
方法#1:一緒にchsh
通常、このコマンドを使用してchsh
アクセスなしでシェルを変更できます/etc/passwd
。ファイルには通常、デフォルトのシェルがリストされます。
saml:x:500:501:Sam M. (local):/home/saml:/bin/zsh
一般ユーザーは自分のアカウントのログインシェルのみを変更でき、rootユーザーのスーパーユーザーはすべてのアカウントのログインシェルを変更できます。次のコマンドを使用して、システムで使用可能なシェルを表示できます。
$ chsh --list-shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
/bin/zsh
シェルを変更するには、次のコマンドを使用できます。
$ chsh -s /bin/zsh saml
Changing shell for saml.
Password:
Shell changed.
ファイルを見る効果は明らかです/etc/passwd
。
$ grep saml /etc/passwd
saml:x:500:501:Sam M. (local):/home/saml:/bin/zsh
変更はすぐには表示されません。表示するにはログアウト/ログインする必要があります。
[saml@grinchy]~% echo $SHELL
/bin/zsh
方法#2:/usr/bin/passwd -e
Solaris には存在しない対応するコマンドへのアクセス権がなく、chsh
変更できるルートアクセス権もない場合/etc/passwd
でも、次のコマンドを使用して同じ操作を実行できます。
$ /usr/bin/passwd -e
方法#3:手動設定方法
上記のオプションのいずれもオプションでない場合、デフォルトでは最後のオプションが残ります。これは、既存のシェルのログインファイルに次のいずれかのオプションを追加することです。
デフォルトシェル:/bin/cshまたは/bin/tcsh
次の行を追加します
$HOME/.login
。setenv SHELL=/bin/bash exec $SHELL
基本シェル: /bin/bash
以下を追加してください
$HOME/.bash_profile
。export SHELL=/bin/zsh exec $SHELL
上記で考慮する必要がある他のもの/bin/bash
(たとえば、設定する前に現在$ SHELLがすでに存在していることを確認することでより完璧にすることができます)、そうであれば何もしないでくださいexec $SHELL
。