用户和组简介
在使用Linux操作系统时,需要使用用户登录后才能使用,在Linux上运行程序同样需要用户运行;
- 用户限制使用者或进程可以使用或不可以使用哪些资源。
- 组用来方便组织管理用户。
- 用户ID为32位,从0开始,但是为了和老式系统兼容,用户ID限制在60000以下
- 用户分为以下三种
bash
-root用户(ID为0的用户为root)
-系统用户(1-499)
-普通用户(500以上)
-
系统中的文件都有一个所属用户及所属组
-
使用
id命令可以显示当前用户的信息 -
使用
passwd命令可以修改当前用户密码 -
每个用户拥有一个
UserID,操作系统实际使用的是用户ID,而非用户名 -
每个用户属于一个主组,属于一个或多个附属组(一个用户最多有31个附属组)
-
每个组拥有一个
GroupID -
每个进程以一个用户身份运行,并受该用户可访问的资源限制
-
每个可登陆用户拥有一个指定的shell环境
用户和组的创建和删除
- 相关文件介绍
bash
/etc/passwd # 保存用户信息
/etc/shadow # 保存用户密码(以加密形式保存)
/etc/group # 保存组信息
/etc/login.defs
/etc/default/useradd
创建用户useradd
- 这个命令会执行以下操作
- 在
/etc/passwd中添加用户信息 - 如果使用
passwd命令创建密码,则将密码加密保存在/etc/shadow中 - 为用户建立一个新的家目录
/home/huaqiang - 将
/etc/skel中的文件复制到用户的家目录中 - 建立一个与用户名相同的组,新建用户默认属于这个同名组
bash
[root@iZ2ze81kvcsugfg1pd7872Z ~]# useradd itocean
[root@iZ2ze81kvcsugfg1pd7872Z ~]# cat /etc/passwd | grep itocean
itocean:x:1001:1001::/home/itocean:/bin/bash
[root@iZ2ze81kvcsugfg1pd7872Z ~]# cat /etc/shadow | grep itocean
itocean:!:20593:0:99999:7:::
[root@iZ2ze81kvcsugfg1pd7872Z ~]# ls -l /home/
total 8
drwx------ 2 itocean itocean 4096 May 20 09:23 itocean
[root@iZ2ze81kvcsugfg1pd7872Z ~]# cat /etc/gro
groff/ group group-
[root@iZ2ze81kvcsugfg1pd7872Z ~]# cat /etc/group | grep itocean
itocean:x:1001:
- 命令useradd支持以下参数:
bash
-d # 指定家目录
-s # 登陆shell
-u # 指定UID
-g # 主组
-G # 附属组(最多31个,用","分割)
也可通过直接修改/etc/passwd方式实现,但是不建议
修改用户信息usermod
text
命令usermod支持以下参数:
-l 新用户名
-u 新userID
-d 用户家目录位置
-g 用户所属主组
-G 用户所属附属组
-L 锁定用户使其不能登陆-U解除锁定
删除用户userdel
bash
userdel itocean # 保留用户的家目录
userdel -r itocean # 同时删除用户的家目录
组管理
前言:几乎所有OS都有组的概念,通过组,我们可以更加方便的归类、管理用户,一般来讲,我们会使用部门、职能或地理区域的分类方式来创建使用组。
每个组有一个组ID
组信息保存在
/etc/group中每个用户拥有一个主组,同时还可以拥有31个附属组
创建组groupadd
bash
[root@iZ2ze81kvcsugfg1pd7872Z ~]# groupadd itocean1
[root@iZ2ze81kvcsugfg1pd7872Z ~]# cat /etc/group | grep itocean1
itocean1:x:1002:
修改组groupmod
bash
命令groupmod用以修改组信息:
[root@iZ2ze81kvcsugfg1pd7872Z ~]# groupmod -n cloud1 itocean1
[root@iZ2ze81kvcsugfg1pd7872Z ~]# cat /etc/group | grep itocean1
[root@iZ2ze81kvcsugfg1pd7872Z ~]# cat /etc/group | grep cloud1
cloud1:x:1002:
groupmod --n newname oldname # 修改组名
groupmod --g newGid oldGid # 修改组ID
删除组groupdel
bash
groupdel itocean1