03-linux学习之旅之linux用户与组管理
linux学习之旅之linux用户与组管理
一、用户基础
1、普通用户
普通用户是Linux系统中除了root用户之外的所有用户。它们的权限受到限制,只能访问和操作自己被 授权的文件和目录。普通用户的UID通常大于0,且每个用户都有一个唯一的UID和用户名。 Centos6的普通用户是从 500的id开始,而Centos7|ubuntu之后的普通用户id是从1000开始的。2、管理员用户(root)
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。它可以执行系统中的任何命令,访问 任何文件,以及更改系统配置。在Linux系统中,root用户的用户ID(UID)是0。3、系统用户配置文件/etc/passwd
/etc/passwd:存放系统用户信息 格式: 用户名:占位符【X】:用户id【UID】:所属组id【gid】:用户描述:家目录:默认Shell xyx :x :1000 :1000 :xyx,,, :/home/xyx :/bin/bash4、系统组配置文件/etc/group
/etc/group:存放系统组信息 格式: 组名:占位符【X】:组id[gid]:组内成员列表 xyx:x :1000 :5、系统用户密码配置文件/etc/shadow
/etc/shadow:存放系统用户密码信息 格式: 用户名:加密的密码::::::: xyx:$y$j9T$sxIaubscairy.OCsbjdasdhuhbJ.1w1zyPRSIkamksfnasfgnaskfbscbaUnn2f9:20636:0:99999:7:::二、组管理命令
1、groupadd 创建组
-r:创建系统组 -g:指定GID --help:查看详细选项#创建组[root@rockyser ~]# groupadd devops[root@rockyser ~]# groupadd op#创建时指定GID[root@rockyser ~]# groupadd -g 3000 dba#验证是否创建[root@rockyser ~]# tail -3 /etc/groupdevops:x:1001: op:x:1002: dba:x:3000:2、groupmod 修改组
#修改组名 -n 后面必须跟新组名[root@rockyser ~]# groupmod -n ops op#修改GID[root@rockyser ~]# groupmod -g 4000 devops[root@rockyser ~]# tail -3 /etc/groupdevops:x:4000: dba:x:3000: ops:x:1002:3、groupdel 删除组
#删除组时组内不能有用户以该组为主组[root@rockyser ~]# groupdel ops[root@rockyser ~]# tail -3 /etc/groupnginx:x:991: devops:x:4000: dba:x:3000:4、groups - 查看用户所属组
# 查看用户所属组[root@rockyser ~]# groups xyxxyx:xyx wheel[root@rockyser ~]# id xyxuid=1000(xyx)gid=1000(xyx)组=1000(xyx),10(wheel)5、getent - 查看组中的成员
# 查看组信息 [root@rockyser ~]# getent group wheel wheel:x:10:xyx三、用户管理命令
主组:用户的主要组,每个用户必须有且只有一个
附加组:用户额外加入的组,可以有0个或多个
1、useradd 创建用户
#Ubuntu创建用户时必须加-m和-s #创建xyx520用户并创建家目录-m,指定shell为/bin/bash -s [root@rockyser ~]# useradd xyx520 -m -s /bin/bash #查看创建情况 [root@rockyser ~]# grep 'xyx520' /etc/passwd /etc/shadow /etc/group /etc/passwd:xyx520:x:1001:1001::/home/xyx520:/bin/bash /etc/shadow:xyx520:!:20662:0:99999:7::: /etc/group:xyx520:x:1001: #指定UID2000和主组devops(不推荐) [root@rockyser ~]# useradd -u 2000 -g devops -m -s /bin/bash xyy [root@rockyser ~]# id xyy uid=2000(xyy) gid=4000(devops) 组=4000(devops) #指定附属组dba,devops [root@rockyser ~]# useradd -m -s /bin/bash -G dba,devops myy [root@rockyser ~]# id myy uid=2001(myy) gid=2001(myy) 组=2001(myy),4000(devops),3000(dba) #创建系统用户(无法登陆) [root@rockyser ~]# useradd -r -s /sbin/nologin nginx #指定家目录/opt/nyy [root@rockyser ~]# useradd -m -s /bin/bash -d /opt/nyy nyy [root@rockyser ~]# ls -d /opt/nyy/ /opt/nyy/ [root@rockyser ~]# grep 'nyy' /etc/passwd nyy:x:2002:2002::/opt/nyy:/bin/bash常见选项
| 参数 | 全称 | 作用 |
|---|---|---|
-r | –system | 创建系统用户,UID 1-999,无家目录、禁止登录 |
-u | –uid | 指定自定义 UID,例:-u 1500 |
-g | –gid | 指定主组(组必须提前存在) |
-G | –groups | 指定附加组,多组逗号分隔 |
-d | –home-dir | 手动指定家目录路径 |
-m | –create-home | 自动创建家目录(普通用户默认开启;系统用户 - r 默认不创建) |
-s | –shell | 指定登录 shell,/bin/bash可登录,/sbin/nologin禁止登录 |
2、usermod 修改用户
#修改shell [root@rockyser ~]# usermod -s /bin/false xyx520 [root@rockyser ~]# grep 'xyx520' /etc/passwd xyx520:x:1001:1001::/home/xyx520:/bin/false #添加附加组-a必须加否则会覆盖 [root@rockyser ~]# usermod -aG dba xyx520 [root@rockyser ~]# id xyx520 uid=1001(xyx520) gid=1001(xyx520) 组=1001(xyx520),3000(dba) #修改家目录 [root@rockyser ~]# usermod -d /opt/xyx520 -m xyx520 [root@rockyser ~]# grep 'xyx520' /etc/passwd xyx520:x:1001:1001::/opt/xyx520:/bin/false #修改密码 [root@rockyser ~]# passwd xyx520 新的密码: 无效的密码: 密码少于 8 个字符 重新输入新的密码: passwd:已成功更新密码 #锁定用户,,可以观察shadow文件多了一个! [root@rockyser ~]# usermod -L xyx520 [root@rockyser ~]# grep 'xyx520' /etc/shadow xyx520:!$y$j9T$5YYmAuWoMkvtPxzoNU1W.1$TVJ/HTUKIXrebI6XtPaCUQr2ygD/ITw6piSoN7qlTu4:20662:0:99999:7::: #解开用户 [root@rockyser ~]# usermod -U xyx520 [root@rockyser ~]# grep 'xyx520' /etc/shadow xyx520:$y$j9T$5YYmAuWoMkvtPxzoNU1W.1$TVJ/HTUKIXrebI6XtPaCUQr2ygD/ITw6piSoN7qlTu4:20662:0:99999:7::: #修改用户名 [root@rockyser ~]# usermod -l xyx530 xyx520 [root@rockyser ~]# id xyx530 uid=1001(xyx530) gid=1001(xyx520) 组=1001(xyx520),3000(dba) #修改UUID [root@rockyser ~]# usermod -u 3000 xyx530 [root@rockyser ~]# id xyx530 uid=3000(xyx530) gid=1001(xyx520) 组=1001(xyx520),3000(dba) [root@rockyser ~]#3、userdel 删除用户
[root@rockyser ~]# useradd user1 [root@rockyser ~]# useradd user2 [root@rockyser ~]# tail -2 /etc/passwd user1:x:3001:3001::/home/user1:/bin/bash user2:x:3002:3002::/home/user2:/bin/bash #删除用户user1,会保留家目录 [root@rockyser ~]# userdel user1 [root@rockyser ~]# ls /home/ myy user1 user2 xyx xyy [root@rockyser ~]# rm -rf /home/user1 #删除用户user2,不好保留家目录(推荐-r) [root@rockyser ~]# userdel -r user2 [root@rockyser ~]# ls /var/spool/mail/user2 ls: 无法访问 '/var/spool/mail/user2': 没有那个文件或目录 [root@rockyser ~]# ls /home/user2 ls: 无法访问 '/home/user2': 没有那个文件或目录 [root@rockyser ~]#4、修改密码
#交互式 [root@rockyser ~]# passwd xyx530 新的密码: 无效的密码: 密码少于 8 个字符 重新输入新的密码: passwd:已成功更新密码 #非交互式 [root@rockyser ~]# echo "xyx530:123" | chpasswd5、rocky与ubuntu目录差异
#创建用户 rocky:useradd xyx ubunt:useradd -m -s /bin/bash xyx #加入管理员组 rocky:usermod -aG wheel xyx ubunt:usermod -aG sudo xyx四、组成员管理
gpasswd 组成员管理
[root@rockyser ~]# id lyy uid=991(lyy) gid=990(lyy) 组=990(lyy) #添加组dba [root@rockyser ~]# gpasswd -a lyy dba 正在将用户“lyy”加入到“dba”组中 [root@rockyser ~]# id lyy uid=991(lyy) gid=990(lyy) 组=990(lyy),3000(dba) #删除组dba [root@rockyser ~]# gpasswd -d lyy dba 正在将用户“lyy”从“dba”组中删除 [root@rockyser ~]# id lyy uid=991(lyy) gid=990(lyy) 组=990(lyy)五、su与sudo权限委派
1、su切换用户
#切换用户不切换环境 [root@rockyser ~]# su xyx530 #切换用户和环境(推荐) [root@rockyser ~]# su - xyx530 # 切换并执行一条命令 [root@rockyser ~]# su - xyx -c "ls -la" # 切换为root [root@rockyser ~]# su -2、sudo权限委派
普通用户临时获取管理员(root)权限执行命令,不用切换 root 账号,更安全。(可修改赋予哪些权限)
更多sudo可查看链接08-linux学习之旅之进阶sudo-CSDN博客
