suで一時的にシェルを変える方法

CentOS 5で root から su できなかったので調べてみた。

なるほど。

http://blog.mizoshiri.com/archives/214

下記のようになった場合

[root@hoge home]# su - hoge
This account is currently not available.

/etc/passwdを編集します。

[root@hoge home]# vi /etc/passwd
hoge:x:100:100::/home/hoge/:/nobin/nologin
hoge2:x:101:101::/home/hoge2/:/bin/bash

ここの「/nobin/nologin」を/bin/bashなどにしてやるとログインできるようになります。

ユーザーデータベースを編集せずともsuコマンドやsudoコマンドで一時的な変更は可能ですよ.

suコマンド

# /bin/su - --shell=/bin/sh apache
-sh-4.0$ id
uid=48(apache) gid=48(apache) 所属グループ=48(apache)

sudoコマンド

# /usr/bin/sudo -u apache id
uid=48(apache) gid=48(apache) 所属グループ=48(apache)

まとめ

もうちょっとダラダラ長文を書いていたんだけど消えてしまった(涙