在Linux中更改用户默认Shell的3种方法

在本文中,我们将介绍如何在Linux中更改用户的shell。 shell是接受和解释命令的程序; 有几个shell,如bash,sh,ksh,zsh,fish和许多其他不太知名的shell,可以在Linux上使用。

Bash/ bin / bash )在大多数Linux系统中都是受欢迎的shell,通常是用户帐户的默认shell。

另请阅读5最常用的Linux开源Shell

在Linux中更改用户的shell有几个原因,其中包括:

  1. 使用nologin shell 阻止或禁用 Linux中的普通用户登录
  2. 使用shell包装器脚本或程序登录用户命令,然后将其发送到shell以执行。 在这里,您将shell包装指定为用户的登录shell。
  3. 满足用户的需求(希望使用特定的shell),特别是具有管理权限的用户。

使用useradd或adduser实用程序创建用户帐户时,可以使用--shell标志指定用户登录shell的名称,而不是在相应的配置文件中指定。

可以从基于文本的界面或通过远程Linux机器的SSH访问登录shell。 但是,如果您通过图形用户界面(GUI)登录,则可以从终端仿真器(如xtermkonsole等)访问外壳。

首先列出您的Linux系统上的所有可用shell,然后输入。

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/dash

在进一步之前,请注意:

  • 用户可以将自己的shell更改为任何事物:但是必须列在/ etc / shells文件中。
  • 只有root可以运行未列在/ etc / shells文件中的shell
  • 如果一个帐号有一个受限的登录shell,那么只有root可以改变该用户的shell。

现在我们来讨论三种不同的方式来改变Linux用户shell。

usermod实用程序

usermod是用于修改存储在/ etc / passwd文件中的用户帐户详细信息的实用程序, -s--shell选项用于更改用户的登录shell。

在这个例子中,我们首先检查用户youcl的帐户信息以查看他的默认登录shell,然后将其登录shell从/ bin / sh更改为/ bin / bash ,如下所示。

# grep youcl /etc/passwd
# usermod --shell /bin/bash youcl
# grep youcl /etc/passwd
使用Usermod更改User Shell

使用Usermod更改User Shell

chsh实用程序

chsh是一个命令行实用程序,用于使用-s-shell选项更改登录shell。

# grep youcl /etc/passwd
# chsh --shell /bin/sh youcl
# grep youcl /etc/passwd
使用chsh更改用户Shell

使用chsh更改用户Shell

上述两种方法都修改/ etc / passwd文件中指定的shell,您可以按照下面的第三种方法手动编辑。

3.更改/ etc / passwd文件中的用户Shell

在这种方法中,只需使用任何您喜爱的命令行文本编辑器打开/ etc / passwd文件,并更改特定的用户shell。

# vi /etc/passwd
在密码文件中更改用户Shell

在密码文件中更改用户Shell

完成编辑后,保存并关闭文件。

不要忘记阅读这些相关主题:

  1. 在Linux中了解Shell初始化文件和用户配置文件
  2. 了解Linux Shell和基本Shell脚本提示 - 第一部分
  3. 如何编写和使用自定义Shell函数和库
  4. 了解Shell命令的不同分类及其使用

在本文中,我们描述了在Linux中更改用户shell的各种方法。 与我们分享任何想法,请使用下面的评论部分。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏