Linux 用户和用户组管理

目录

要点: 账号管理,用户、用户组。

添加用户

添加用户的脚本,建立/home/usrname, /data/usrname 两个文件夹。需要传入用户名、密码2个参数,或至少传入用户名参数;也可以提供一个用户名列表,放到for循环中批量添加用户。

$ bash addUser.sh userNameYouLike $ cat addUser.sh #1 get username usr=$1 if [ "$1" == "" ] then echo "You must input a username" exit fi echo "add new user: "$usr #2 get passwd pass=$2 if [ "$2" == "" ] then pass=`date|md5sum |head -c 10` fi echo "password: "$pass #3 add user, add dir /data/usrname useradd -s /bin/bash -d /home/${usr} -m ${usr} mkdir /data/${usr} chown ${usr} /data/${usr} chgrp ${usr} /data/${usr} ln -s /data/${usr} /home/${usr}/data #4 set passwd #echo $pass | passwd $usr --stdin echo "${usr}:${pass}" >${pass}.log chpasswd < ${pass}.log rm ${pass}.log echo "done!"

在 docker 内添加用户名:保持容器内外uid和gid一致

为了防止容器内外的映射路径下的文件无权限互相访问,建议容器内新建普通用户,并保持内外用户的uid和gid一致。

1.在外部宿主机查 真实 uid 和 gid $ id wangjl uid=5662(wangjl) gid=1210(jinlab) groups=1210(jinlab),980(docker) 2.产生随机密码: $ pswd=`date | md5sum | cut -c 1-8` $ echo $pswd 92159e17 3.进入容器 # 启动容器 $ docker run -it --name wjl -v /datapool/wangjl/:/data0 ubuntu bash #进入已有容器 ##docker exec -it R4 bash $ docker exec -it 6626 bash # 4.新建用户组 # groupadd -g 1210 InDocker 5.新建用户(设置信息,根据步骤1宿主机的 id xxx 给出的信息确定 uid和gid) # user="wangwjl" #手工设置,和外部一致 # uid=5662 #手工设置,和外部uid一致 # gid=1210 #手工设置,和外部gid一致 # 内部用户名:最好和外部类似,但是又有区分 # userInner="${user}2" # 添加用户 # useradd -s /bin/bash -d /home/${userInner} -m ${userInner} -u ${uid} -g ${gid} # 设置密码 # passwd ${userInner} # 输入一个密码,或者按照步骤2生成的密码 # 进入家目录 # su ${userInner} 用户名设置完成。 以下是可选:设置快捷方式 $ cd $ user="wangjl" #手动指定 $ ln -s /data0/${user}/ data $ exit # exit

参考资料