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