Linux篇章(二)

Linux用户组

用户和用户组简介

与windows类似,Linux也有用户和用户组的概念。在Linux系统中,每次登录系统都必须以一个用户的身份登录,并且登录后的权限也会根据用户身份来确定。 每一个进程在执行时,也会有其用户,该用户也和进程所能控制的资源有关。Linux系统下的每一个目录、文件,都会有其属于的用户和用户组,我们称其为属主和属组。由此课件,用户和用户组与Linux系统的运行息息相关。在实际操作使用系统时,我们往往关注用户较多与关注用户组。

在Linux系统中,每个用户都有自己的用户ID,称为UID,每个用户组也有自己的用户组ID,称为GID,UID和GID在Linux系统中是不可重复的。Linux系统就是通过UID和GID来对用户和组进行管理的,而对于管理员来说,往往会设置用户名和组名,这样使得用户和用户组的使用管理更人性化。

三种类型用户

root用户

root用户时UID和GID都等于0的用户,是Linux系统中的“上帝”,拥有最大的权限。如果深入了解Linux系统,会发现root用户真的拥有很多特权,比如:无视Linux对权限的设置而强行读、写、执行文件,切换其他用户登录不需要密码,可以强行切换到已经所用的用户,只有root可以为普通用户修改密码等等。

系统用户

系统用户通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999。

普通用户

普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。

用户和用户组配置文件

用户和用户组关系

在Linux系统中,每个用户必定属于一个主组,默认情况下属于与其同名的用户组,最多可以有31个附属组,从用户权限的角度看,主组和附属组其实差别不大,用户也会拥有其附属组的组相关权限。

文件路径

用户:
(1)/etc/passwd # 存放的是用户;用户文件
(2)/etc/shadow # 存放的是用户的密码 ;用户的密码文件

用户组:
(1)/etc/group # 存放的是组;组文件
(2)/etc/gshadow # 存放的是组的密码 ;组的密码文件

passwd 和 group文件

这两个配置文件对用户组至关重要!

passwd文件

$ cat /etc/passwd | grep armin
armin: x:1000:1000::/home/armin:/bin/bash

armin                 用户名
x                        密码占位符
1000                   用户的UID (超级用户账号的UID号固定值为0,程序用户账号的UID号为1-499,普通用户账号的UID号为500-60000)
1000                   用户的GID (超级用户账号的GID号固定值为0,程序用户账号的GID号为1-499,普通用户账号的GID号为500-60000)
""     	               用户说明
/home/armin      用户的家目录,所有普通用户的家目录,如果在创建的时候,不指定的话,默认都在/home下;但是root的家目录在/root
/bin/bash           用户的登陆shell,如果是/bin/bash 或者/bin/sh是可以登陆系统的,如果是/sbin/nologin是不能登陆系统的

/etc/shadow文件

$ cat /etc/shadow | grep armin
armin:!!:19089:0:99999:7:::

第一列是用户名
第二列是密码:当为!!或者*表示未设置密码,不能登录系统;当为空表示密码为空
第三列是上次修改密码的天数,时间从1970年1月1日算起
第四列是密码最短有效期限,0代表无期限
第五列是密码最长有效期限,99999代表永久
第六列是密码的过期时间的警告时间
第七列是密码过期之后多少天后不能登录系统
第八列是账号失效时间,单位是天数
第九列是保留

添加删除及修改用户

添加用户

语法:useradd 用户名

选项:
-d 在创建用户的时候,指定家目录
-s 在创建用户的时候,指定登陆shell
-u 在创建用户的时候,指定UID
-g 在创建用户的时候,指定用户的基本组
-G 在创建用户的时候,指定用户的附加组
-M 在创建用户的时候不要家目录
-c 在创建用户的时候,添加用户说明

示例:创建一个名为zhangsan和lisi的用户

# 创建一个名为zhangsan的用户
useradd zhangsan

# #创建一个用户lisi,这个用户的基本组是zhangsan,附加组是lemon,指定这个用户的家目录是/lisi,不能登陆系统
useradd -g zhangsan -G lemon -d /lisi  -s /sbin/nologin  lisi

删除用户

语法:userdel 用户名;选项和useradd一致

示例:

# 删除用户(不完全删除)
userdel  用户名

# 完全删除用户(完全:指的是连同家目录一起删除)
userdel  -r  用户名

修改用户

语法:usermod 用户名

选项基于useradd又多了两项:
-L 锁定用户
-U 解锁用户

示例:

# 将/etc/passwd文件"AA"用户的登陆shell修改成/sbin/nologin
usermod -s /sbin/nologin AA

设置用户密码

passwd  用户名
passwd -d 用户名      # 设用户密码为空

添加 删除及添加移除用户组

创建组

语法:groupadd 组名

示例:

# 创建一个名为lemon的组
groupadd lemon

删除组

语法:groupdel 组名

示例:

# 创建一个名为lemon的组
groupdel lemon

用户添加到某个组

语法:gpasswd -a 用户名 组名

示例:

# 添加一个lisi用户到shuai的组
gpasswd -a lisi shuai

# 批量添加用户到组
gpasswd -M a1,a2,a3 lemon   #将名为a1、a2、a3的用户同时添加到名为lemon的组中

# 查看用户有没有添加到组
groups   用户名 或 grep   组名  /etc/group

用户从组中移除

语法:gpasswd -d 用户名 组名

示例:

# 将名为a1的用户移出去
gpasswd -d a1 lemon
posted @   ArMinLi  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示