用户组管理
1 useradd # 添加用户 2 userdel # 删除用户 3 usermod # 修改用户信息 # 创建用户 [root@localhost ~]# useradd user1 # 查看用户 [root@localhost ~]# id user1 uid=1002(user1) gid=1003(user1) 组=1003(user1) [root@localhost ~]# who # 查看所有登录的⽤户信息 [root@localhost ~]# whoami # 查看当前登录的⽤户名 '注意': 当创建⼀个⽤户时,如果没有指定⽤户的主组,将会创建⼀个同名的组作为⽤户的主组 # 删除用户 [root@localhost ~]# userdel user1 # 删除⽤户user1,但不删除⽤户家⽬录和mail [root@localhost ~]# userdel -r user1 # 要想删彻底,加-r选项
1.1 useradd命令
# 怎样在Linux系统中添加⼀个新的⽤户账户 1) 掌握useradd命令的功能:新增⼀个⽤户。 2) 了解useradd命令的常⽤选项: 3) –u:指定⽤户的UID 4) –g:指定⽤户所属的主群 –G:指定⽤户所属的附加群 5) –d:指定⽤户的家⽬录 6) –c:指定⽤户的备注信息 7) –s:指定⽤户所⽤的shell 8) -e:修改过期时间 9) -M: 不创建家⽬录 10) -r: 创建系统账户,uid处于系统⽤户范围内,默认就没有家⽬录 #灵活应⽤useradd命令的举例: a) 例如:在系统中新增⼀个fox(狐狸)⽤户的命令:useradd fox b) 例如:在系统中新增⼀个⽤户user01,属组为police以及uid为600的命令: useradd –u 600 –g police user01 ==================================================================== # 其他练习 [root@root ~]# useradd user01 [root@root ~]# useradd user02 -u 503 # 创建⽤户usr02,指定uid [root@root ~]# useradd user03 -d /aaa # 创建⽤户user03 指定家⽬录 [root@root ~]# useradd user04 -M # 创建⽤户user04,不创建家⽬录 [root@root ~]# useradd user05 -s /sbin/nologin # 创建⽤户并指定shell [root@root ~]# useradd user06 -g hr # 创建⽤户,指定主组 [root@root ~]# useradd user07 -G sale # 创建⽤户,指定附加组 [root@root ~]# useradd user08 -e 2014-04-01 # 指定过期时间 [root@root ~]# useradd user10 -u 4000 -s /sbin/nologin [root@aliyum ~]# useradd xxx -M -s /sbin/nologin # 创建普通⽤户,但是没有家⽬录,不能登录系统 [root@aliyum ~]# useradd -r yyy -s /sbin/nologin # yyy属于系统⽤户,uid处于系统⽤户uid范围内
1.2 usermod命令
# 同useradd参数基⼀致,只不过useradd是添加,usermod是修改 -u # 指定要修改⽤户的UID -g # 指定要修改⽤户基本组 -a # 将⽤户添加到补充组。仅与-G选项⼀起使⽤ -G # 指定要修改⽤户附加组,使⽤逗号隔开多个附加组, 覆盖原有的附加组 -d # 指定要修改⽤户家⽬录 -c # 指定要修改⽤户注释信息 -s # 指定要修改⽤户的bash shell [root@root ~]# usermod -e 2013-02-11 user1000 # 修改过期时间 [root@root ~]# usermod -g group1 jj # 修改主组 [root@root ~]# usermod -a -G group2 jj # 修改附加组,-a添加,不加-a代表覆盖 其他选项 -m # 将⽤户主⽬录的内容移动到新位置。如果当前主⽬录不存在,则不会创建新的主⽬录 -l # 指定要修改⽤户的登陆名 -L # 指定要锁定的⽤户 -U # 指定要解锁的⽤户
1.3 设定与修改密码
passwd # 默认给当前⽤户设定密码 passwd ⽤户名 # root⽤户可以给⾃⼰以及所有其他⽤户设定密码,普通⽤户只能设定⾃⼰的密码 echo "密码" | passwd --stdin ⽤户名 # ⾮交互式 # 补充:可以利⽤系统内置变量⽣成随机字符串来充当密码 [root@aliyum ~] # echo $RANDOM|md5sum|cut -c 1-10 70ba11a74b
2 组管理
1 创建组:groupadd 2 修改组:groupmod 3 删除组:groupdel
2.1 groupadd命令
[root@aliyum ~] # groupadd gg1 #创建基本组, 不指定gid [root@aliyum ~] # tail -1 /etc/group gg1:x:2005: [root@aliyum ~] # groupadd -g 5555 gg2 #创建基本组, 指定gid为5555 [root@aliyum ~] # tail -1 /etc/group gg2:x:5555: [root@aliyum ~] # groupadd -r gg3 # 创建系统组,gid从201-999 [root@aliyum ~] # tail -1 /etc/group gg3:x:991:
2.2 groupmod命令
[root@aliyum ~] # groupmod -g 1111 gg3 [root@aliyum ~] # tail -1 /etc/group gg3:x:1111: [root@aliyum ~] # groupmod -n new_gg3 gg3 # -n 修改组名称 [root@aliyum ~] # tail -1 /etc/group new_gg3:x:1111:
2.3 groupdel命令
# 如果⼀个组是⼀个⽤户的主组,那么该组不能被删除,删掉⽤户会默认⼀起删掉他的主组 [root@aliyum ~] # useradd egon1 [root@aliyum ~] # groupadd devops [root@aliyum ~] # usermod -G devops egon1 [root@aliyum ~] # id egon1 uid=2004(egon1) gid=2004(egon1) groups=2004(egon1),5556(devops) [root@aliyum ~] # groupdel devops # 附加组可以删除 [root@aliyum ~] # id egon1 # 查看⽤户,发现他的附加组没有了 uid=2004(egon1) gid=2004(egon1) groups=2004(egon1) [root@aliyum ~] # groupdel egon1 # ⽆法删除组egon1,因为组egon1属于egon1⽤户的主组 groupdel: cannot remove the primary group of user 'egon1'

总结
# 权限管理与用户组管理 RBAC 权限管理 可读权限组 可写权限组 可执行权限组 # id 获取当前用户的信息 # whoami 获取当前用户 ps:用户uid小于1000的是系统用户 用户uid大于等于1000的是普通用户 创建用户:useradd 删除用户:userdel 修改用户:usermod 修改密码:passwd 创建组:groupadd 修改组:groupmod 删除组:groupdel /etc/passwd 用户配置文件 /etc/shadow 用户的密码文件 /etc/group 用户组 /etc/gshadow 用户组密码文件 # 手动创建用户 1、创建用户组:/etc/group 2、创建用户组密码文件:/etc/gshadow 3、创建用户:/etc/passwd 4、创建用户密码:/etc/shadow 5、创建家目录 6、修改权限,复制隐藏文件 # 权限 自己 自己组 其他 rwx rwx rwx 421 421 421 # 用户组可以关联多个用户 文件默认初始:666 # 偶数位直接相减,奇数位相减后加1 目录默认初始:777 # 直接相减即可 root :umask 022 文件:644 目录:755 user1:umask 002 文件:422 目录:422