2012-01-30 54 views
0

我可以设置一个我写为登录shell的小程序吗?而不是像bash这样的常规登录shell?我尝试了谷歌搜索,但无法找到任何有用的信息。任何指针赞赏。将程序设置为我的登录shell

+0

你确定这是个好主意吗?一旦你将你的登录shell更改为这个“小程序”,除非该程序本身是一个可运行的shell,否则你将无法将其更改回来,因为你将无法运行'chsh'命令。如何在登录后运行程序,或者从你的'$ HOME/.bash_profile'或其他初始化文件中调用它,不符合你的要求? – 2012-01-30 04:08:10

+0

是的,我很确定我正在进入:)谢谢你的关注。 – hari 2012-01-30 07:27:19

回答

4
chsh -s /usr/bin/foo someuser 

或者使用vipw编辑/etc/passwd(不要直接编辑)。

+0

vipw点是有效的,但它不应该太危险,我认为,因为shell信息只存在于/ etc/passwd文件中,+1 – 2012-01-30 02:23:52

+1

确实够不错,但直接编辑'/ etc/passwd'是一个不良习惯进入。 :-) – 2012-01-30 02:26:07

2

是的,您可以使用命令chsh(更改shell)或手动编辑/etc/passwd文件(该行上的最后一个值是登录shell)更改登录shell可执行文件。

不鼓励编辑/ etc/password文件,因为1)它需要root权限2)用户基础可能不是本地的,但使用NIS,LDAP等进行分发,因此这将不起作用3)chsh应该也适用于分布式用户群的情况。

由于问题解决了unices,Solaris没有这个命令,您可以模仿此行为的唯一方式(无需root用户可以使用passwd -e)是通过执行.profile文件中的其他shell。

另外,请记住在/etc/shells中必须存在自定义shell二进制文件,否则它将不起作用。

+1

如果您在使用本地身份验证的计算机上,则这是正确的。公司/大学/等。计算机通常会使用LDAP等网络服​​务来获取用户信息。 – colechristensen 2012-01-30 02:17:21

相关问题