You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bash脚本修改密码?已知管理员密码时如何启用远程登录与管理?

嘿,我来帮你搞定这两个Bash脚本相关的问题,都是日常运维里常用的操作,咱们一步步来:

1. 通过Bash脚本实现密码修改操作

在类Unix系统(比如Linux、macOS)里,交互式改密码用passwd就行,但脚本要自动化的话,chpasswd命令会更顺手——它支持从标准输入读取「用户名:密码」的格式,不用手动输入确认步骤。

给你两个实用例子:

  • 修改当前用户密码(需要当前用户有改自身密码的权限,或者root权限):
#!/bin/bash
# 设定新密码,建议不要直接写死在脚本里,后面说安全写法
NEW_PASSWORD="your_secure_new_pass"
# 把当前用户名和新密码传给chpasswd
echo "$USER:$NEW_PASSWORD" | sudo chpasswd
  • 指定某个用户(比如john)修改密码(必须有root权限):
#!/bin/bash
TARGET_USER="john"
NEW_PASSWORD="johns_new_secure_pass"
echo "$TARGET_USER:$NEW_PASSWORD" | sudo chpasswd

⚠️ 重要提醒:直接把密码写在脚本里有安全风险,建议用环境变量传递,比如:

#!/bin/bash
# 从环境变量读取密码
NEW_PASSWORD=$SECURE_PWD
echo "$USER:$NEW_PASSWORD" | sudo chpasswd

运行时用SECURE_PWD="your_real_pass" ./change_pass.sh,避免密码明文留在脚本里。

2. 已知管理员密码时,修改密码并启用Remote Login和Remote Management

这个场景应该是针对macOS系统吧?毕竟Remote Management是macOS的远程桌面功能,Remote Login就是开启SSH服务。咱们把这几个操作整合到一个脚本里:

#!/bin/bash
# 管理员账号信息(已知旧密码的情况)
ADMIN_USER="your_admin_account"
ADMIN_OLD_PWD="old_admin_password"
ADMIN_NEW_PWD="new_admin_secure_password"

# 1. 修改管理员密码
# 用echo传递旧密码+两次新密码给passwd,实现自动化
echo "$ADMIN_OLD_PWD
$ADMIN_NEW_PWD
$ADMIN_NEW_PWD" | sudo -S passwd "$ADMIN_USER"

# 2. 启用Remote Login(SSH服务)
sudo -S systemsetup -setremotelogin on <<< "$ADMIN_OLD_PWD"

# 3. 启用Remote Management并赋予管理员全权限
sudo -S /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
  -activate \
  -configure -access -on \
  -users "$ADMIN_USER" \
  -privs -all \
  -restart -agent -menu <<< "$ADMIN_OLD_PWD"

⚠️ 细节说明:

  • sudo -S让sudo从标准输入读取密码,这样脚本可以自动传递旧密码,不用手动输入;
  • kickstart是macOS专属的远程管理配置工具,-privs -all给管理员所有远程操作权限,-restart -agent重启服务让配置生效;
  • 同样,密码明文写脚本不安全,建议替换成环境变量或者读取加密文件的方式。

内容的提问来源于stack exchange,提问作者Lele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:43:54