|
|
楼主 |
发表于 2018-10-12 13:11:28
|
显示全部楼层
有时候我们从网上下载的共有镜像,需要修改密码,可以通过guestfish很简单的就能够实现
$ `' P1 V2 D* ~( d5 {9 q7 z& O" F1 j/ t
软件安装
% o% ~1 y( o3 s: _! `' g) L. X( y/ C5 m3 S& Q: r' O
! t- F. K" b4 L. n& X## Centos7:
' z9 N/ l; x4 d$ m- b/ j! X: P; g# yum -y install guestfish
! `2 s3 {/ _+ ~; \## ubuntu
5 ?6 v5 \) y. `* |# f# yum -y install libguestfs-tools8 w9 T4 }4 R4 ~- P( j4 P
升级加密密码% l I6 _4 k% E4 D5 B- b- _
- Z7 ]5 Q- w5 K
# openssl passwd -1 PASSWORD # 这里把 PASSWORD 替换为自己想要设置的密码; W+ ^/ [: t6 G3 [' @
$1$/jCcCUMM$rU8XqMS6kVuZ7zxn.PQCs. # 生成的加密密码,会写入到镜像中
$ ~* C) a8 s2 y挂载镜像并修改密码: t, }, V9 \; W5 J8 j% M0 D# N
6 R- B1 J, r( X' N* j
% c% C" N: G1 l! }& {
# guestfish --rw -a /root/CentOS-7.2-1511.img
$ A" R7 e5 w! B; p><fs> ## 提示符变成了这样,进入了 guestfish 会话
# _. T5 L' W5 F: S/ r" t7 A8 s8 B; u><fs> run ## 它会启动一个虚拟机,用于完成我们所以的对文件的操作! e8 y6 o& o* V P
><fs> list-filesystems ## 通过list-filesystems命令,我们可查看镜像内的文件系统列表:
0 z ^, b9 @: \+ |; P( s/dev/vda1: xfs
% \4 |" T( d& s5 z2 g" q, C% k><fs> mount /dev/vda1 / ## 挂载上述分区
* N- h* H" g: o1 ~" k8 R><fs> vi /etc/shadow ## 把前面通过openssl 生成的加密密码替换root后面的密码. b R- t" y; C* @# u/ o
vi /etc/shadow:8 t1 H1 P+ {" D9 @% M- W! Q
9 m6 A$ f# H6 F" o
* B! o% X: p7 oroot:$1$TwYla0akghaspfkshg98shdlknlksgsahsghlsklksjlkjk::0:99999:7:::
; y: r* ?% A, q- X... s+ i4 G+ R/ \0 t$ M/ B2 l$ X0 z. |
...
1 a2 d: u% N6 V2 {+ A* ]..., ~& q" |$ B( K0 a; o
把从 root: 到 ::0: 之间的字符替换:
: A) o7 f/ m ?0 O: N9 h: j/ X/ @3 \+ w# ?. }( I
. \4 A1 ]& x% Z; @root:$1$/jCcCUMM$rU8XqMS6kVuZ7zxn.PQCs.::0:99999:7:::
8 W9 q+ |& \% I1 u) T% N/ K: x...6 w& `0 R* Z9 o: H) `! L0 B; L
...
& [. A4 z! f; V& r2 ?* t...1 z/ x9 J1 ^4 @4 I% V
这样root的密码就替换为新密码# b" ~8 l/ p0 w. W& ^* r
5 ?& s+ C- Z7 _! E, `
+ c6 I$ K# v- d4 U7 E><fs> quit ## 退出
" Y9 @: a9 v3 F然后上传该镜像即可(glance image-create –disk-format raw –visibility public –container-format bare –name CentOS7.2-1511-base-v1.0 –file CentOS-7.2-1511.img –progress)* `+ ? w n6 P/ H; r% \, Z0 Q9 K
z4 A9 _% P$ r其实guestfish可以做很多事:删除文件等 |
|