LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2553|回复: 3

请问有几种方法修改用户shell?

[复制链接]
发表于 2004-11-3 10:55:09 | 显示全部楼层 |阅读模式
我现在知道的有
passwd -e
还有在用户配置文件中修改
还有在/etc/passwd文件中修改

但是我不清楚后2种修改方法的区别,以及他们是否会相互作用?
即:我在用户配置文件中作了修改,/etc/passwd中的是否也会被修改
反之呢?
如果2个不互相作用,最终有效的会是哪个呢?

在用户配置文件当中如何修改呢?书上只说了可以修改,没有具体说明如何修改。

还有其他的方法么?

谢谢
发表于 2004-11-3 11:38:30 | 显示全部楼层
passwd -e 和修改/etc/passwd文件的效果是一样的。
用户配置文件中改,我也不明白,是直接运行另一个shell吗?
 楼主| 发表于 2004-11-3 13:15:41 | 显示全部楼层
多谢Glue兄~!

用户配置中修改就是用哪个shell,就修改其对应的用户配置文件
常用shell的对应用户配置文件如下:
$home/.profile  (Bshell)

$home/.profile (kshell)
$home/.kshrc (kshell)

$home/.cshrc(cshell)
$home/.login(cshell)

可是我不知道具体的修改方法,书上也没有提。
最好谁能给个例子看一下。

另外,直接运行一个shell好像是在原shell的基础上运行了一个子shell.因为我在缺省的Bshell下(/usr/bin/sh)下运行bash,提示符已经变成bash的了,但是echo $SHELL的时候显示的还是/usr/bin/sh,不知道为什么。
发表于 2004-11-14 05:21:21 | 显示全部楼层
'passwd -e'和修改/etc/passwd只能由系统管理员进行。普通用户自己无法修改。如果用户自己希望更换shell, 就需要自己配制。

我所在的公司规定公司只支持csh和ksh, 不支持bash。因此系统管理员不能给用户配置bash.我是将自己的配置进行了修改从而使用bash的。

系统管理员给我配置的是csh, 我修改自己的~/.cshrc, 增加
   if  ($SHELL == /bin/csh)  then
      setenv SHELL /opt/corp/unsupported/bin/bash
      exec $SHELL -login
   else
      exec $SHELL
   endif
这就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表