前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一行代码修改Linux机器密码和Samba服务密码

一行代码修改Linux机器密码和Samba服务密码

作者头像
GH
发布2021-03-18 11:12:37
1.9K0
发布2021-03-18 11:12:37
举报
文章被收录于专栏:python、mysql、go知识点积累

当我们需要用命令代替我们往Linux窗口输入东西时,可以考虑使用Linux文件描述符里的标准输入,而passwd、smbpasswd命令均有自己对应的标准输入参数,我们可以通过查看它们的帮助信息获取相应参数。

代码语言:javascript
复制
passwd=**** && (echo $passwd;echo $passwd) | sudo -A smbpasswd username -s
options:
  -L                   local mode (must be first option)
  -h                   print this usage message
  -s                   use stdin for password prompt #-s就是标准输出
  -c smb.conf file     Use the given path to the smb.conf file
  -D LEVEL             debug level
  -r MACHINE           remote machine
  -U USER              remote username (e.g. SAM/user)
extra options when run by root or in local mode:
  -a                   add user
  -d                   disable user
  -e                   enable user
  -i                   interdomain trust account
  -m                   machine trust account
  -n                   set no password
  -W                   use stdin ldap admin password
  -w PASSWORD          ldap admin password
  -x                   delete user
  -R ORDER             name resolve order

上面的脚本分解步骤是:

  1. 设置一个临时变量passwd,其意义是需要设置smb密码
  2. 通过echo或printf输出passwd的值两次并通过管道传递给smbpasswd命令。(此处输出两次,是因为在smbpasswd
  3. 时候需要输入两次密码来确认)
  4. 通过sudo -A参数来避免sudo时输入密码
  5. 通过smbpasswd nferzhuang -s参数来使用上面echo的输出作为smbpasswd的输入
代码语言:javascript
复制
echo "password" |passwd --stdin user
Usage: passwd [OPTION...] <accountName>
  -k, --keep-tokens       keep non-expired authentication tokens
  -d, --delete            delete the password for the named account (root only)
  -l, --lock              lock the password for the named account (root only)
  -u, --unlock            unlock the password for the named account (root only)
  -e, --expire            expire the password for the named account (root only)
  -f, --force             force operation
  -x, --maximum=DAYS      maximum password lifetime (root only)
  -n, --minimum=DAYS      minimum password lifetime (root only)
  -w, --warning=DAYS      number of days warning users receives before password expiration (root only)
  -i, --inactive=DAYS     number of days after password expiration when an account becomes disabled (root only)
  -S, --status            report password status on the named account (root only)
  --stdin                 read new tokens from stdin (root only)

不过,当使用该命令进行批量修改机器密码时可以通过history查看到。

代码语言:javascript
复制
   70  echo "zgh234" |passwd --stdin root
   71  history
   72  passwd --help
   73  history

参考链接:https://blog.csdn.net/nfer_zhuang/article/details/42454283

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档