尽量少使用root账号
##添加用户组
groupad 参数 用户组名
-g:#指定新建用户组的gid;
-r:#创建系统工作组,系统用户的组ID小于500;
-K:#覆盖配置文件“/ect/login.defs”;
-o:#允许添加组ID号不唯一的工作组。
##删除用户组
groupdel 用户名
#### 修改用户组
##修改用户组
groupmod 参数 用户组名
-g: #GID 为用户组指定新的组标识号。
-o: #与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n: #新用户组 将用户组的名字改为新名字
Linux用户的角色是通过UID和GID识别的。
UID用户ID:相当于各为的身份证,在系统中是唯一的
GID组ID:相当于各为的家庭或者你们的学校。
##添加用户
useradd 参数 用户名
-g #属组
-u #设置uid
-m #创建家目录
-M #没有家目录
-G #指定属于多个组
-s #指定登录shell
-d #指定家目录
-c #注释
-D #改变它默认的属性
-e #指定的日期是帐号失效的日期
##删除用户
userdel 参数 用户名
userdel -r username #-r作用吧家目录一起删除
##修改用户
usermod 参数 用户名
-c:#修改用户帐号的备注文字
-d:#修改用户登入时的目录
-e:#修改帐号的有效期限
-f:#改在密码过期后多少天即关闭该帐号
-g:#修改用户所属的群组
-G:#修改用户所属的附加群组
-l:#修改用户帐号名称
-L:#锁定用户密码,使密码无效
-s:#改用户登入后所使用的shell。
-u:#修改用户ID
-U:#解除密码锁定
passwd 参数 用户名
-l:锁定已经命名的账户名称
-u:解开账户锁定状态
-x, --maximum=DAYS:密码使用最大时间(天)
-n, --minimum=DAYS:密码使用最小时间(天)
-d:删除使用者的密码
-S:检查指定使用者的密码认证种类
--stdin:非交互式修改/设置密码,弊端是操作日志能查密码,用history -c 干掉。
usermod -s /sbin/nologin username#禁止
usermod -s /bin/bash username #允许
#切换root执行
visudo
groupadd docker #添加docker用户组
useradd -g docker -m le #添加le用户到docker用户组
root@VM-20-8-ubuntu:~# passwd le #设置密码
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
#再修改visudo
还是需要用root先安装docker 和 docker-compose
这样就新建了一个用于docker的用户le
在运行容器时把挂载卷挂载到固定路径例如/root/test01可以避免子用户“le”删除数据
(但是Ubuntu子用户的窗口编辑非常难用!)
端口非必要不使用默认端口
例如ssh默认的端口是22,这时候可以使用端口转发命令将端口改为10022
iptables -t nat -A PREROUTING -p tcp --dport 10022 -j REDIRECT --to-ports 22 # 22 ==> 10022
这样在安全组开放10022端口就可以ssh远程连接,避免使用默认的22端口
同理在部署时也要将端口映射到其他端口
docker run -d -v odoo-db:/var/lib/postgresql/data -p 17324:5432 -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name pgdb14 postgres:14 docker run -v odoo-data:/var/lib/odoo -v /root/odoo15-docker/my_addons:/mnt/extra-addons -d -p 18057:8069 --name odoo15 --link pgdb14:db -t odoo:15.0