命令:useradd 添加用户adduser 添加用户passwd 添加密码usermode 修改用户信息chsh 修改用户shellchage 修改账号日期chfn 修改用户信息userdel 删除用户groupadd 添加组groupmde 修改组groupdel 删除组newgrp 切换基本组
systemd-network:!!:16982::::::用户名:密码占位符:UID:基本组ID:用户备注信息:用户家目录:默认shell
当一个用户创建完成后会将/etc/skel/下的文件全部复制一份到/home/用户目录/下
[root@docker-node1 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1 用户创建非活动状态
EXPIRE= 用户过期期限
SHELL=/bin/bash 用户bash
SKEL=/etc/skel 创建家目录
CREATE_MAIL_SPOOL=yes 创建邮件缓存池。(/var/mail会有相应用户的缓冲池)
adduser:在centos中adduser是链接到useradd的
[root@docker-node1 ~]# which adduser
/usr/sbin/adduser
[root@docker-node1 ~]#
[root@docker-node1 ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Jun 30 13:17 /usr/sbin/adduser -> useradd
[root@docker-node1 ~]#
指定UID: 前提是未重复使用的UID
useradd -u 1010 mark
[root@docker-node1 ~]# tail -1 /etc/passwd
mark:x:1010:1010::/home/mark:/bin/bash
[root@docker-node1 ~]#
如果指定了UID,且在下个用户创建是,默认UID加1-u:指定UID-g:指定GID,既指定用户的基本组,担GID要事先存在
指定GID:前提是组ID必须创建或者存在
-g :创建并为其指定GID
-G :指定用户附加组,组需事先存在
首先创建组,才能添加到组groupadd linuxea
[root@docker-node1 ~]# groupadd linuxea
[root@docker-node1 ~]# tail -2 /etc/group
mark:x:1010:
linuxea:x:1011:
指定用户到组
[root@docker-node1 ~]# useradd -g linuxea linuxea1
[root@docker-node1 ~]# tail -1 /etc/passwd
linuxea1:x:1012:1011::/home/linuxea1:/bin/bash
[root@docker-node1 ~]# tail -2 /etc/group
mark:x:1010:
linuxea:x:1011:
[root@docker-node1 ~]#
[root@docker-node1 ~]# id linuxea
uid=1011(linuxea) gid=1011(linuxea) groups=1011(linuxea)
[root@docker-node1 ~]# id linuxea1
uid=1012(linuxea1) gid=1011(linuxea) groups=1011(linuxea)
[root@docker-node1 ~]#
用户类型分为管理员和普通用户,在普通用户中分为系统用户和登录用户,管理员为0,普通用户从1-65535,而系统用户:1-499,登录用户500+
组:基本组:显示在/etc/passwd中的GID字段组,为用户的基本组额外组:附加组:/etc/group
[root@docker-node1 ~]# useradd -G linuxea linuxea2
[root@docker-node1 ~]# tail -1 /etc/passwd
linuxea2:x:1013:1013::/home/linuxea2:/bin/bash
[root@docker-node1 ~]# tail -1 /etc/group
linuxea2:x:1013:
[root@docker-node1 ~]#
使用id则可以看出
[root@docker-node1 ~]# id linuxea2
uid=1013(linuxea2) gid=1013(linuxea2) groups=1013(linuxea2),1011(linuxea)
[root@docker-node1 ~]#
group中也可以看出附加组,当然,你也可以直接在文件中添加附加组
[root@docker-node1 ~]# tail -3 /etc/group
linuxea:x:1011:linuxea2
linuxea2:x:1013:
[root@docker-node1 ~]#
-d:用户目录用户指定的目录不能事先存在指定家目录和用户名不一样
[root@docker-node1 ~]# useradd -d /home/xiaoming xiaohong
[root@docker-node1 ~]# tail -1 /etc/passwd
xiaohong:x:1015:1015::/home/xiaoming:/bin/bash
[root@docker-node1 ~]#
指定家目录位置通常在home下,当然你也可自定义
[root@docker-node1 ~]# useradd -d /tmp/daxiong xiaoxiong
[root@docker-node1 ~]# tail -1 /etc/passwd
xiaoxiong:x:1016:1016::/tmp/daxiong:/bin/bash
[root@docker-node1 ~]#
-c指定备注信息
[root@docker-node1 ~]# useradd -c "linuxea" -d /tmp/user1 user1
[root@docker-node1 ~]# tail -1 /etc/passwd
user1:x:1017:1017:linuxea:/tmp/user1:/bin/bash
[root@docker-node1 ~]#
-s指定shell
[root@docker-node1 ~]# useradd -c "linuxea1" -d /tmp/user2 user2 -s /sbin/nologin
[root@docker-node1 ~]# tail -1 /etc/passwd
user2:x:1018:1018:linuxea1:/tmp/user2:/sbin/nologin
[root@docker-node1 ~]#
如果是nologin是无法登陆的,不会创建家目录,系统用户通常会使用-g指定组
[root@docker-node1 ~]# useradd -g linuxea -d /home/user8 -s /sbin/nologin user8
[root@docker-node1 ~]# id user8
uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea)
创建用户并指定附加组
[root@docker-node1 ~]# useradd -G 1018 -d /home/user4 -s /sbin/nologin user4
[root@docker-node1 ~]# tail -2 /etc/group
user2:x:1018:user4
user4:x:1019:
[root@docker-node1 ~]#
创建用户指定Uid,shell,家目录
[root@docker-node1 ~]# useradd -u 1021 -d /home/user5 -s /sbin/nologin user5
[root@docker-node1 ~]# tail -1 /etc/passwd
user5:x:1021:1021::/home/user5:/sbin/nologin
[root@docker-node1 ~]#
-m:创建用户时强制给用户创建家目录-M:创建用户是仅创建用户不创建家目录
[root@docker-node1 ~]# useradd user7 -M -s /sbin/nologin
[root@docker-node1 ~]# tail -1 /etc/passwd
user7:x:1023:1023::/home/user7:/sbin/nologin
-D:改变默认值,为useradd命令创建的用户指定新的默认值
删除用户:删除用户默认保留家目录,如果需要删除家目录-r即可:userdel -r user8
文件格式:
/etc/passwd:
username:x:UID:GID:comment:home:shell
/etc/group:
groupname:x:gid:user: list
家目录复制文件链接:/etc/skel
默认配置:/etc/default/useradd
在没有密码的情况下,是不能登录的,只能使用管理员su切换
设定密码:passwd其中,只有管理root才能修改自己的密码,使用passwd即可,如果修改其他用户则passwd 用户名即可而普通用户修改密码需要密码复杂度如果不符合则会提示
[root@docker-node1 ~]# passwd linuxea
Changing password for user linuxea.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@docker-node1 ~]# su - linuxea
[linuxea@docker-node1 ~]$ passwd
Changing password for user linuxea.
Changing password for linuxea.
(current) UNIX password: 输入当前密码
New password: 输入新密码,如果新密码复杂度不够则会提示如下:
BAD PASSWORD: The password is the same as the old one
New password:
BAD PASSWORD: The password is the same as the old one
New password:
BAD PASSWORD: The password is the same as the old one
passwd: Have exhausted maximum number of retries for service
[linuxea@docker-node1 ~]$
[root@docker-node1 ~]# tail -1 /etc/shadowuser8:!!:16999:0:99999:7:::[root@docker-node1 ~]# shadow文件说明:user8:!!:16999:0:99999:7:::username:加密密码:最近一次的修改时间(从1970年1月1号到改密码经过的天数):最短时间期限,为0不限制:最长使用期限,为99999则为不限制:警告区间,离密码过期剩下天数开始警告:非活动区间,账号密码登录则需要修改密码:账号过期期限,失效时间:预留,尚未使用
组密码设定:gpasswd 组名修改用户属性定义:chsh修改shell
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011::/home/user8:/sbin/nologin
[root@docker-node1 ~]# chsh user8
Changing shell for user8.
New shell [/sbin/nologin]: /bin/bash
Shell changed.
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011::/home/user8:/bin/bash
[root@docker-node1 ~]#
修改用户注释:chfn当然,你也可以只写一段
[root@docker-node1 ~]# chfn user8
Changing finger information for user8.
Name []: user8 backup
Office []: manila
Office Phone []: 150 8888 8888
Home Phone []: 119
Finger information changed.
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/home/user8:/bin/bash
[root@docker-node1 ~]#
如果你想直接修改信息则可以使用usermodusermod:
-u:修改uid
-g:修改gid
-G:修改附加组,如果默认有附加组,默认 -G会覆盖,如果是添加在附加组之上需添加参数-a选项
[root@docker-node1 ~]# id user8
uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea)
[root@docker-node1 ~]# groupadd test
[root@docker-node1 ~]# usermod -a -G test user8
[root@docker-node1 ~]# id user8
uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea),1024(test)
[root@docker-node1 ~]#
-c:修改用户注释
-d:修改家目录
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/home/user8:/bin/bash
[root@docker-node1 ~]# usermod -m -d /tmp/user8 user8
如果不加-m则会报su: warning: cannot change directory to /tmp/user8: No such file or directory -d是不会迁移家目录
[root@docker-node1 ~]# tail -1 /etc/passwd
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/bin/bash
[root@docker-node1 ~]# su - user8
Last login: Sun Jul 17 02:45:03 EDT 2016 on pts/0
[user8@docker-node1 ~]$ ls
-s: shell
[root@docker-node1 ~]# usermod -s /sbin/nologin user8
[root@docker-node1 ~]# tail -l /etc/passwd|grep user8
user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/sbin/nologin
[root@docker-node1 ~]#
-l:修改登录名
[root@docker-node1 ~]# usermod -l linuxeacom1 user8
[root@docker-node1 ~]# tail -l /etc/passwd|grep user8
linuxeacom1:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/sbin/nologin
[root@docker-node1 ~]#
-L:锁定用户账号
[root@docker-node1 ~]# passwd -l linuxeacom1
Locking password for user linuxeacom1.
passwd: Success
-U:解锁
[root@docker-node1 ~]# passwd -u linuxeacom1
Unlocking password for user linuxeacom1.
passwd: Warning: unlocked password would be empty.
passwd: Unsafe operation (use -f to force)
[root@docker-node1 ~]#
加锁和解锁区别去在配置文件中会多加两个!!,如下所示:
[root@docker-node1 ~]# tail -1 /etc/shadow
mark1:$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7:::
当使用-l时则会添加!!
[root@docker-node1 ~]# passwd -l mark1
Locking password for user mark1.
passwd: Success
[root@docker-node1 ~]# tail -1 /etc/shadow
mark1:!!$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7:::
-u取消
[root@docker-node1 ~]# passwd -u mark1
Unlocking password for user mark1.
passwd: Success
[root@docker-node1 ~]# tail -1 /etc/shadow
mark1:$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7:::
[root@docker-node1 ~]#
修改组属性定义:
-n:修改新组名
[root@docker-node1 ~]# tail -1 /etc/group
user9:x:1025:
[root@docker-node1 ~]# groupmod -n linuxeacom1 user9
[root@docker-node1 ~]# tail -1 /etc/group
linuxeacom1:x:1025:
[root@docker-node1 ~]#
-g: 修改gid
[root@docker-node1 ~]# groupmod -g 10250 linuxeacom1
[root@docker-node1 ~]# tail -1 /etc/group
linuxeacom1:x:10250:
[root@docker-node1 ~]#
修改账号日期属性:chage
-E:过期期限
-I:非活动期限
-m:最短使用期限
-M:最长使用期限
-W:警告区间
这些时间passwd也可以定义
示例:1,创建用户为123,其id为3000,基本组为centos(组id3003),附加组为linuxea
groupadd linuxea
groupadd -g 3003 centos
useradd u 3000 -g centos -G linuxea 123
2, 创建用户为redhat1,全名为redhat123,默认shell为nologin
useradd -c "redhat123" -s /sbin/nologin redhat1
3, 修改redhat1 ID号为4000,基本组为centos,附加组为linuxea和123
usermod -u 4000 -g centos -G linuxea,123 redhat1
4, 添加redhat1密码,并设定密码最短试用期为30天,最长为35天
passwd redhat1
chage -m 30 -M 35 redhat1
5, 将redhat1 Shell修改为bin/bash
usermod -s /bin/bash redhat1
id使用显示uid
[root@docker-node1 ~]# id -u linuxeacom1
1024显示gid
[root@docker-node1 ~]# id -g linuxeacom1
1011显示所有gid
[root@docker-node1 ~]# id -G linuxeacom1
1011 1024显示基本组组名
[root@docker-node1 ~]# id -g -n linuxeacom1
linuxea显示附加组组名
[root@docker-node1 ~]# id -G -n linuxeacom1
linuxea test
[root@docker-node1 ~]#
su切换后调用命令
[root@docker-node1 ~]# su -l -c 'ls /tmp' mark
-classpath.txt systemd-private-b6e5d402e0764baba1f123fba87fad8a-httpd.service-UCZo6x tomcat.txt
daxiong systemd-private-b6e5d402e0764baba1f123fba87fad8a-mariadb.service-cMjOIQ user1
hsperfdata_root tcp-status.txt user2
httpNUB.txt tomcat2.txt user8
lib:lib.txt tomcat3.txt zabbix_java_gateway_logback.xml.txt
[root@docker-node1 ~]#