ログインシェルを変更してみました。
/etc/passwd
(Debian Wheezyインストールで)の最初の行は次のようになります。
rootx:0:0:root:/root:/:zsh
としてログインしようとするとroot
:
Cannot execute zsh: No such file or directory
私zsh
は利用できることを知っています:
$ which zsh
/usr/bin/zsh
さて、zsh
フルパスで置き換えるのは論理的だと思われます。しかし、どうすればよいですか?
システムに他のユーザーが1人います(user
)が、root権限sudo
がなく、システムにインストールされていません。
なんらかの理由(暗号化、物理アクセスなど)のために、ライブCDで起動してファイルを変更できないと仮定します。
ただし、root
アカウントの資格情報は知っています。
私の質問は、root
最初にログインシェルを起動せずに、プログラムでアカウントを使用してプロセスを起動する方法はありますか?
passwdファイルの行は/ usr / bin / zshであるべきではありませんか?なぜ文字列zshだけを入れたのですか?
—
slm
@slmそれはOPが加えたい変更です...
—
CVn
@qdii提案が機能する(つまり
—
humanityANDpeace
su -c "<commands>"
)場合... su -c "/bin/bash"
ユーザーrootで動作するbashに到達するために単に使用することはできませんか?
@humanityANDpeace:これは機能しないはずです。に渡されるコマンドは
—
マット2013年
-c
、ユーザーのログインシェルを介して実行されます。-s
別のシェルを使用するために使用できます...既存のログインシェルが有効であるか、呼び出し元がrootである場合のみ。
su
ですか?またはgksu
?のようなものsu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'