最近管理的一批機(jī)器,有個(gè)需求是要統(tǒng)一修改一個(gè)帳號(hào)的用戶名密碼,比如將qa帳號(hào)的密碼改為1234,后來(lái)還為了腳本化,很方便的執(zhí)行,還使用了非交互式地修改用戶的密碼。簡(jiǎn)單記錄一下吧。
1. 交互式配置本地用戶的密碼:passwd 命令
復(fù)制代碼 代碼如下:
[root@host_221-81 ~]# passwd qa
Changing password for user qa.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
2. 非交互式修改本地用戶的密碼:chpasswd
復(fù)制代碼 代碼如下:
# chpasswd命令使用起來(lái)很簡(jiǎn)潔
[root@host_221-81 ~]# echo "qa:1234" | chpasswd
# 使用passwd命令,也可以實(shí)現(xiàn)非交互式修改密碼
[root@host_221-81 ~]# echo "1234" | passwd --stdin "qa"
Changing password for user qa.
passwd: all authentication tokens updated successfully.
3. 使用expect來(lái)處理交互式輸入,從而實(shí)現(xiàn)非交互式的密碼修改。
復(fù)制代碼 代碼如下:
#!/bin/sh
# \
exec expect -f "$0" "$@"
if { $argc != 2 } {
puts "Usage: $argv0 username> passwd>"
exit 1
}
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
sleep 1
expect "assword:"
send "$password\r"
expect "assword:"
send "$password\r"
expect eof
注意:腳本的第二行,這種寫(xiě)法可能比較陌生,這是在TCL語(yǔ)言中的語(yǔ)法,The backslash is recognized as part of a comment to sh, but in Tcl the backslash continues the comment into the next line which keeps the exec command from executing again.
該腳本的執(zhí)行結(jié)果為:
復(fù)制代碼 代碼如下:
[root@smilejay ~]# ./change-pwd-expect.sh qa 1234
spawn passwd qa
Changing password for user qa.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
您可能感興趣的文章:- Linux 入門常用命令 password — 修改密碼,改變用戶
- linux下passwd命令設(shè)置修改用戶密碼的方法
- linux查看所有用戶和查看用戶組的方法(修改用戶組)
- Linux下SFTP用戶權(quán)限設(shè)置條件及實(shí)現(xiàn)命令
- 更改linux用戶登錄shell的操作方法
- Linux給普通用戶加超級(jí)用戶權(quán)限的方法
- linux中如何添加用戶并賦予root權(quán)限詳解
- linux服務(wù)器下添加用戶和刪除用戶的命令
- LINUX下Oracle數(shù)據(jù)庫(kù)用戶創(chuàng)建方法詳解
- 如何在Linux下修改Mysql的用戶(root)密碼
- Linux 怎么實(shí)現(xiàn)添加FTP用戶并設(shè)置權(quán)限的方法
- 在Linux系統(tǒng)的命令行中為MySQL創(chuàng)建用戶的方法
- linux嘗試登錄失敗后鎖定用戶賬戶的兩種方法
- Linux中不同用戶之間復(fù)制文件的兩個(gè)方法
- linux之普通用戶與root用戶之間切換方法
- Linux用戶在第一次登錄時(shí)強(qiáng)制更改初始密碼
- Linux下Oracle刪除用戶和表空間的方法
- Unix/Linux系統(tǒng)下的nobody用戶與nologin詳細(xì)介紹