当前位置: 首页 > 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.gsyq.cn/news/1516322.html

相关文章:

  • 冷链AGV搬运机器人锂电池完整设计方案要求【浩博电池】 - 锂电池大全
  • Dismap保姆级教程:从下载到实战,5分钟搞定资产指纹识别(附避坑指南)
  • 用spaCy给你的文本数据做‘体检’:从词性标注到依存句法分析的完整流程
  • 2026年天津合同律师避坑指南:5位靠谱专业律师推荐 - 本地品牌推荐
  • 2026怀化市民高频选择的 5 家实体水质检测饮用水检测井水检测第三方实地测评整理 - 诚金汇钻回收公司
  • 量子增强强化学习在6G智能超表面安全通信中的应用
  • 手里的沃尔玛购物卡不想用?线上回收沃尔玛购物卡平台来帮忙 - 团团收购物卡回收
  • 保姆级教程:从零在Ubuntu 20.04上为ORB_SLAM3配置ROS2 Foxy开发环境(含依赖项全解析)
  • Linux ip_rcv_finish路由缓存查找与dst_entry绑定
  • Proteus仿真DAC0832生成三角波:手把手教你用AT89C52单片机搞定(附完整代码与电路图)
  • 2026九江本地企业认可的 5 家电能质量评估服务机构实地测评汇总 - 中检检测集团
  • 2026年自贡市黄金回收白银回收铂金回收彩金回收 地址联系大全+支持现场结算无套路 - 前途无量YY
  • CopilotKit:打造安全高效的 Agent 应用前端框架,小白也能轻松构建大模型交互界面
  • 毕业设计避坑指南:手把手教你搞定110kV变电站电气一次部分设计(附CAD图纸)
  • ChatGLM2-6B的‘瑞士军刀’:拆解GLMBlock里的SwiGLU与RMSNorm
  • 嵌入式开发避坑指南:汽车ECU刷写中Flash Driver的RAM地址分配与安全设计要点
  • 2026最新诚信优选深圳市黄金回收白银回收铂金回收彩金回收去哪卖?五家实地探访靠谱门店汇总及联系方式推荐 - 亦辰小黄鸭
  • DLOS:面向大语言模型输出的治理操作系统
  • 2026广西市民高频选择的 5 家实体水质检测饮用水检测井水检测第三方实地测评整理 - 诚金汇钻回收公司
  • 百度网盘提取码查询终极指南:3步告别繁琐搜索的免费神器
  • 2026最新诚信优选瑞安市黄金回收白银回收铂金回收彩金回收去哪卖?五家实地探访靠谱门店汇总及联系方式推荐 - 亦辰小黄鸭
  • Pandas DataFrame核心原理:索引与向量化操作实战指南
  • 2026 年 6 月 13 日 房贷压力大,跌势里卖金还月供值不值?永康黄金回收靠谱实体店 - 回收测评
  • AMD AI 开发者计划学习笔记:从 ROCm 到 Ryzen AI,理解 AMD 的 AI 开发生态
  • 2026音频转文字大师合集,电脑手机免费工具专业软件使用教程
  • 绕过GetProcAddress检测:手写PE解析器实现安全的LdrLoadDll挂钩(含x64汇编细节)
  • FPGA设计提速:利用Vivado时序路径报告中的‘Logic Levels’和‘Cell Delay’优化关键路径
  • 2026最新诚信优选咸宁市黄金回收白银回收铂金回收彩金回收去哪卖?五家实地探访靠谱门店汇总及联系方式推荐 - 亦辰小黄鸭
  • paperxie 科研提速神器!分档适配普通 / 核心 / SCI,期刊论文 AI 创作全流程拆解
  • 2026甘肃省市民高频选择的 5 家实体水质检测饮用水检测井水检测第三方实地测评整理 - 诚金汇钻回收公司