【Linux】学习笔记:(⼆)⽤户和组账户管理
⽬录
前⾔
在Linux系统中,⽤户账户是登录系统的唯⼀凭证,其中root⽤户是系统的最⾼管理者,该⽤户的UID是0,与⽤户和组账户相关的配置⽂件有/etc/passwd,/etc/shadow,/etc/group和/etc/gshadow。
⼀、⽤户账户简介
1、⽤户账户分类
root⽤户
root⽤户UID为0。root⽤户的权限是最⾼的,普通⽤户⽆法执⾏的操作,root⽤户都能完成,所以也称之为超级⽤户系统⽤户
系统⽤户的UID为1~999
这类⽤户不具有登录Linux的能⼒,但却是系统运⾏不可缺少的⽤户。
普通⽤户
系统⽤户的UID为1000~60000
在Linux系统上进⾏普通操作,其使⽤系统的权限受限制。
2、 /etc/passwd⽂件
假设以账户zhangsan登录系统时,系统⾸先会检查/etc/passwd⽂件,存在zhangsan账户,然后确定⽤户zhangsan的UID,通过UID确认⽤户⾝份,如果存在,则读取/etc/shadow⽂件中对应的密码,核实⽆误,则登录系统,读取⽤户的配置⽂件
[root@centos83 home]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
..............(省略)..........
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rngd:x:994:991:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash
字段字段含义
⽤户名在系统中⽤户名应该具有唯⼀性
密码存放加密⽤户的密码,看到的是⼀个x,其实密码已经被映射到/etc/shadow⽂件中
⽤户标识号(UID)每个⽤户的UID都是唯⼀的,root⽤户的UID是0,普通⽤户的UID默认从1000开始
组标识号(GID)在系统内⽤⼀个整数标识⽤户所属的主要组ID号,每个组ID都是唯⼀的
⽤户名全称⽤户名描述,可以不设置
主⽬录⽤户登录系统后⾸先进⼊的⽬录
登录shell⽤户使⽤的Shell类型,Linux系统默认使⽤的Shell是/bin/bash
2、 /etc/shadow⽂件
/etc/shadow⽂件内容包括⽤户及被加密的密码以及其他/ect/passwd不能包括的信息,⽐如账户有效期等
/etc/shadow⽂件只有root⽤户可以读取和操作,确保系统安全
[root@centos83 home]# cat /etc/shadow
root:$6$Uq9EeN5GfNDLF83M$csUva0exzO/n3PIvhKv5D1Xs3Ga06G2whjfagtEtJUW1wlQbREEd6HkOjTRCTqGuZCXvg2WQ1wdyzqY.qfAzE1::0: 99999:7:::
bin:*:18397:0:99999:7:::
..............(省略)..........
sshd:!!:18625::::::
rngd:!!:18625::::::
zhangsan:$6$HMTy.raoMPbhboQn$71FPRHyRycVf3AcenfNW1n7/qD7ep.x5vSeBSSxzJdWmvjoQ98oDhfA8Kz/6PlOgKe/ksj58AXeWBPOGAm/dl1 :
18625:0:99999:7:::
字段字段含义
⼆、 ⽤户账户设置
1、useradd :创建⽤户
创建⽤户
useradd moon
创建⽤户并设置UID 为1010
useradd -u 1010 moon
创建⽤户并设置⽤户所属组为root
useradd -g root moon
创建系统⽤户mysql 并设置所属组
useradd -r -g mysql mysql
2、 usermod :修改⽤户账户修改⽤户pp 的登录名为moon
usermod -l moon pp
修改⽤户moon 账户过期时间为2028年11⽉23⽇
usermod -e 11/23/2028 moon
修改⽤户moon 的主⽬录到/home/oopp ,并⾃动创建⽬录
usermod -d /home/oopp -m moon ⽤户名
这⾥的⽤户名和/etc/passwd 中的相同加密密码
密码已经加密,如果由⽤户显⽰"!!",则表⽰这个⽤户还没有设置密码,⽆法登录到系统⽤户最后⼀次更改密码的⽇
从1970年1⽉1⽇算起到最后⼀次修改密码的时间间隔天数密码允许更换前的天数
如果设置为0,则禁⽤此功能。该字段指定⽤户可以更改密码的天数密码需要更换的天数
如果设置为0,则禁⽤此功能。该字段指定⽤户必须更改密码的天数密码更换前警告的天数
⽤户登录系统后,系统登录程序提醒⽤户密码即将过期账户被取消激活前的天数
表⽰⽤户密码过期多少天后,系统会禁⽤此⽤户⽤户账户过期⽇期
指定⽤户账户禁⽤的天数(从1970年1⽉1⽇开始到账户被禁⽤的天数),如果这个字段的值为空,账户可以永久使⽤保留字段⽬前为空,为将来发展做预留选项
选项含义-d <;主⽬录>
新账户每次登录时所使⽤的主⽬录-e <;过期⽇>
设置账户的有效期限,⽇期格式为MM/DD/YY -f <;失效⽇>
设置密码过期多少天后为失效状态-c <⽤户名全称>
设置⽤户账户的⽤户名全称(描述)-g <;主要组名>
指定⽤户账户所属的主要组。-G <;次要组名>
指定⽤户账户为多个次要组的成员,每个组使⽤“,”来分隔-m
⽤户主⽬录如果不存在则⾃动建⽴-r
创建系统⽤户账户,不会创建⽤户主⽬录,也不会响应在⽂件/etc/login.defs 中定义的值-u <⽤户UID>
⽤户的UID ,数字不可以为负值
选项
选项含义-m
移动主⽬录的内容到新的位置-l <;新登录名>
修改⽤户账户名称-u <⽤户UID>
修改⽤户UID -c <⽤户名全称>修改⽤户账户的⽤户名全称
-d <;主⽬录>修改⽤户登陆时的主⽬录,如果指定-m选项,⽤户旧⽬录会移动到新的⽬录中,如果旧⽬录不存在,则创建新⽬录-e <;过期⽇>修改账户的有效期限,⽇期格式为MM/DD/YY
-f <;失效⽇>修改在密码过期后多少天即设定密码为失效状态
-g <;主要组名>修改⽤户所属的主要组
-G <;次要组名>修改⽤户所属的次要组(附加组)
3、 userdel:删除⽤户账户
删除⽤户moon
userdel moon
删除⽤户的同时删除⽤户主⽬录
userdel -r moon
选项选项含义
-r删除⽤户时,把⽤户的主⽬录和本地邮件存储的⽬录或⽂件⼀同删除
-f强制删除⽤户
三、组账户简介
1、组账户分类
分类法⼀
私有组
创建新⽤户时,如果没有指定该⽤户所属那⼀组,则Linux会⾃动创建同名组,此时这个组就是私有组
将其他⽤户加⼊到这个私有组中,会使这个组变为标准组
标准组
也称为普通组,可以包含多个⽤户账户
如果使⽤标准组,则在创建新⽤户时,应该指定该⽤户所属组
分类法⼆
主要组
当⼀个账户属于多个组成员时,登录后所属组便是主要组,其他组是次要组,⼀个⽤户账户智能属于⼀个主要组次要组
也称之为附加组,⼀个⽤户账户可以属于多个次要组
2、 /etc/group⽂件
⽂件简介
内容包括组名、组密码、GID及该组所包含的⽤户
⽐如把某⼀⽤户加⼊到root组,那么这个⽤户就可以浏览root⽤户主⽬录的⽂件
如果root⽤户把某个⽂件的读写执⾏权限开放,root组的所有⽤户就都可以修改此⽂件
如果是可执⾏⽂件,root组的⽤户也是可以执⾏的
[root@centos83 home]# cat /etc/group
root:x:0:
bin:x:1:
..............(省略)..........
sshd:x:74:
rngd:x:991:
zhangsan:x:1000:
字段字段含义
组名组名称
组密码存放加密的组密码,看到⼀个x,密码已经被映射到/etc/gshadow⽂件中
组标识号(GID)在系统内⽤⼀个整数标识组GID,每个GID都是唯⼀的,默认普通组GID从1000开始,root组GID是0组成员属于这个组的成员,如root组的成员有root⽤户
组GID范围查看
//查看系统创建组默认的GID范围
[root@centos83 ~]# cat /etc/login.defs |grep GID
GID_MIN                  1000
GID_MAX                60000
3、 /etc/gshadow⽂件
/etc/gshadow是/etc/group的加密⽂件,组密码存放在此⽂件中
/etc/gshadow和/etc/group是互补的两个⽂件
对于⼤型服务器,需要针对很多⽤户和组,定制⽐较复杂的权限模型。设置组密码是很有必要的[root@centos83 ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
..............(省略)..........
zhangsan:!::
字段字段含义
组名组的名称
组密码密码已加密,如果组显⽰的是“!”,表⽰这个组没有密码
组管理者组的管理者有权在该组中添加、删除⽤户
linux系统登录
组成员属于该组的⽤户成员列表,如有多个⽤户则⽤逗号分隔
四、组账户设置
1、 groupadd:创建组账户
创建组china
groupadd china
创建GID为1300的组ous
groupadd -g 1300 ous
创建系统族chinese
groupadd -r chinese
// cat /etc/group |grep chinese命令查看⽤户gid为978,1000以内均为系统组
选项选项含义
-g为组设置GID
-r创建系统组
-o允许使⽤和别的组相同GID创建组
-f即使组存在,还是强制创建组
-p <;密码>为新组设置加密的密码
2、 groupmod:修改组账户
修改china的GID为1400(修改的GID必须是新的。否则使⽤-o)
groupmod -g 1400 china
修改组名称为suhai
groupmod -n suhai china
选项选项含义
-g设置GID
-o重复使⽤组GID
-n <;新组名>更改组名称
3、 groupdel:删除组账户
删除时,如果该组中仍旧包括某些⽤户,必须先删除这个⽤户后才能删除组
删除组china
groupdel china
五、⽤户和组账户维护
1、 passwd:设置⽤户密码
为⽤户china添加密码
passwd china
删除⽤户china密码
passwd -d china
2、 gpasswd:组管理
把⽤户china添加到已有的组group1中
gpasswd -a china group1
从组group1中删除china⽤户
gpasswd -d china group1
选项选项含义
-a <⽤户>将⼀个⽤户加⼊到⼀个组中
-d <⽤户>将⼀个⽤户从⼀个组中移除
3、 su:切换⽤户
切换⽤户china,但是不切换环境
su china
切换⽤户china,并切换环境
su - china
从china⽤户切换到root⽤户
su 或者 su -
切换root⽤户不需要写root名称
ps:加了"-",是以login shell登陆的,所以会设置环境变量,也会将⽬录变更到⽤户所属⽬录下;如果不加,使⽤的还是切换前⽤户的环境变量,有时候会出错,看情况使⽤
4、 groups:显⽰组成员
[wuyiz@centos83 ~]$ groups wuyiz
wuyiz : wuyiz suhai
5、 id:显⽰⽤户UID及该⽤户所属组的GID
[wuyiz@centos83 ~]$ id
uid=1000(wuyiz) gid=1000(wuyiz) 组=1000(wuyiz),1001(suhai) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。