当前位置: 首页 > news >正文

Linux命令:chsh

chsh 命令

基本介绍

chsh(Change Shell)是 Linux 系统中用于修改用户登录 shell 的命令。它允许用户或管理员更改用户账户的默认 shell。chsh是系统管理员管理用户登录环境的重要工具。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

chsh [OPTIONS] [USERNAME]

常用选项

基本选项

  • -s, --shell=SHELL:指定新的登录 shell
  • -l, --list-shells:列出系统可用的 shell
  • -h, --help:显示帮助信息
  • -v, --version:显示版本信息

使用示例

1. 更改当前用户的 shell

chsh-s/bin/zsh

2. 更改指定用户的 shell

sudochsh-s/bin/zsh username

3. 列出系统可用的 shell

chsh-l

输出示例:

/bin/sh /bin/bash /bin/rbash /bin/zsh /usr/bin/zsh /usr/bin/fish

4. 查看当前 shell

echo$SHELL

5. 交互式更改 shell

chsh

输出示例:

Changing shell for user. New shell [/bin/bash]: /bin/zsh

6. 在脚本中更改 shell

#!/bin/bash# 检查是否为 rootif["$(id-u)"-ne0];thenecho"This script must be run as root"exit1fi# 批量更改用户 shellforuserinalice bob charlie;doecho"Changing shell for$user"chsh-s/bin/zsh"$user"done

输出格式说明

成功执行

Changing shell for user. Shell changed.

错误输出示例

chsh: user 'invalid_user' does not exist chsh: '/invalid/shell' is not a valid shell

工作原理

chsh 执行流程

# 1. 用户执行 chsh 命令chsh-s/bin/zsh# 2. 检查 shell 是否在 /etc/shells 中# 3. 验证用户权限# 4. 修改 /etc/passwd 文件# 5. 提示 shell 已更改

相关文件

文件说明
/etc/passwd用户信息(包含登录 shell)
/etc/shells系统可用 shell 列表

用户信息格式

getentpasswdusername# 输出格式: username:x:UID:GID:GECOS:/home/username:/bin/bash

实用技巧

设置默认 shell

# 查看当前 shellecho$SHELL# 查看可用 shellchsh-l# 更改 shellchsh-s/bin/zsh# 验证更改echo$SHELL

限制用户登录

# 禁止用户登录(设置 nologin shell)sudochsh-s/usr/sbin/nologin username# 恢复登录权限sudochsh-s/bin/bash username

创建受限 shell 用户

# 创建受限 shell 用户sudouseradd-s/bin/rbash restricted_user

检查 shell 是否有效

#!/bin/bashSHELL_PATH="/bin/zsh"# 检查 shell 是否在 /etc/shells 中ifgrep-q"^$SHELL_PATH$"/etc/shells;thenecho"$SHELL_PATHis a valid shell"elseecho"$SHELL_PATHis not a valid shell"fi

批量更改用户 shell

#!/bin/bash# 从文件读取用户名列表并更改 shellwhilereaduser;doecho"Changing shell for$user"sudochsh-s/bin/bash"$user"done<users.txt

相关命令

  • chfn:更改用户信息
  • passwd:更改用户密码
  • usermod:修改用户信息
  • useradd:添加用户
  • whoami:显示当前用户
  • id:显示用户和组ID信息

注意事项

  1. 权限要求:更改其他用户的 shell 需要 root 权限
  2. 有效 shell:新 shell 必须在/etc/shells文件中列出
  3. 立即生效:更改后下次登录生效
  4. 当前会话:当前会话不受影响
  5. nologin:设置/usr/sbin/nologin可禁止用户登录

总结

chsh是 Linux 系统中用于修改用户登录 shell 的工具。它允许用户或管理员更改用户账户的默认 shell。chsh是系统管理员管理用户登录环境的重要工具。

http://www.jsqmd.com/news/1004542/

相关文章:

  • 2026陇南本地企业认可的 5 家电能质量评估服务机构实地测评汇总 - 中检检测集团
  • 2026最新诚信优选仪征市黄金回收白银回收铂金回收彩金回收去哪卖?五家实地探访靠谱门店汇总及联系方式推荐 - 亦辰小黄鸭
  • 冷链AGV搬运机器人锂电池完整设计方案要求【浩博电池】 - 锂电池大全
  • 2026朔州本地企业认可的 5 家电能质量评估服务机构实地测评汇总 - 中检检测集团
  • 从F12调试到QGIS图层:手把手教你‘扒’出任意在线地图的XYZ链接(以星图地球为例)
  • 别只盯着建图!用思岚A1激光雷达和ROS,5分钟实现一个动态障碍物检测Demo
  • 用spaCy给你的文本数据做‘体检’:从词性标注到依存句法分析的完整流程
  • 2026抖音去水印合法方法汇总,教你官方无水印保存及规避第三方工具风险 - 科技热点发布
  • 2026年天津合同律师避坑指南:5位靠谱专业律师推荐 - 本地品牌推荐
  • 2026年资阳市黄金回收白银回收铂金回收彩金回收 地址联系大全+支持现场结算无套路 - 前途无量YY
  • 别光会调用API!深入LVGL V8.3.9源码,图解TabView事件处理与滑动禁用的底层逻辑
  • Dismap保姆级教程:从下载到实战,5分钟搞定资产指纹识别(附避坑指南)
  • 2026怀化市民高频选择的 5 家实体水质检测饮用水检测井水检测第三方实地测评整理 - 诚金汇钻回收公司
  • 猫抓浏览器扩展完整教程:3分钟学会网页视频下载神器
  • 2026年淄博市黄金回收白银回收铂金回收彩金回收 地址联系大全+支持现场结算无套路 - 前途无量YY
  • 别再硬写代码了!用Qt Designer拖拽式设计PyQt5界面(附三种.ui文件使用方法对比)
  • 2026年更新上海宝山区有实力的麻将机维修推荐:专业服务选择与深度解析 - 品牌鉴赏官2026
  • 保姆级教程:从零在Ubuntu 20.04上为ORB_SLAM3配置ROS2 Foxy开发环境(含依赖项全解析)
  • Linux ip_rcv_finish路由缓存查找与dst_entry绑定
  • Proteus仿真DAC0832生成三角波:手把手教你用AT89C52单片机搞定(附完整代码与电路图)
  • 量子增强强化学习在6G智能超表面安全通信中的应用
  • 手里的沃尔玛购物卡不想用?线上回收沃尔玛购物卡平台来帮忙 - 团团收购物卡回收
  • 2026九江本地企业认可的 5 家电能质量评估服务机构实地测评汇总 - 中检检测集团
  • 劳力士欧米茄回收选哪家,2026 北京添价收专业鉴定报价公道 - 薛定谔的梨花猫
  • 别再死记硬背DID了!聊聊UDS 0x22服务背后的设计哲学:从单DID到Composite DID的灵活配置
  • 2026年自贡市黄金回收白银回收铂金回收彩金回收 地址联系大全+支持现场结算无套路 - 前途无量YY
  • 毕业设计避坑指南:手把手教你搞定110kV变电站电气一次部分设计(附CAD图纸)
  • 从Halcon轮廓合并到实际应用:如何用union_adjacent_contours_xld搞定PCB板断线检测?
  • CopilotKit:打造安全高效的 Agent 应用前端框架,小白也能轻松构建大模型交互界面
  • 2026绵阳本地企业认可的 5 家电能质量评估服务机构实地测评汇总 - 中检检测集团