2019-03-10 17:15:53 qq_28474981 阅读数 109
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7143 人正在学习 去看看 良许

1.用户操作

1.1 创建用户

输入命令

useradd [UserName]

将会创建一个用户 在/home 文件夹下
在这里插入图片描述

1.2 设置用户属性

1.2.1 改名

usermod -l [newName] [oldName]

例子:
在这里插入图片描述

改名前:
改名前
改名后:
在这里插入图片描述
但是home底下的文件夹名称没有跟着改

1.2.2 设置用户密码

passwd [UserName]

例子:
在这里插入图片描述

1.2.3 修改组

(1)改变用户的附加组,会完全替换原有的附加组

usermod -G [GroupName] [UserName]

例子:
在这里插入图片描述

(2)在原有附加组的基础上追加附加组(同时存在在多个组中)

usermod -G [GroupName] -a [UserName]

在这里插入图片描述

1.3 删除用户

userdel [-r] [UserName]

-r为可选项,若带上该参数,则在删除该账户的同时,一并删除该账户对应的主目录

例子:
在这里插入图片描述

2.群组操作

2.1 创建群组

groupadd [-r] [GroupName]

若命令带有-r参数,则创建系统用户组,该类用户组的GID值小于500;若没有-r参数,则创建普通用户组,其GID值大于或等于500.

例子:
在这里插入图片描述
在这里插入图片描述

2.2 设置群组属性

2.2.1 修改群名称

groupmod -n [NewGroupName] [LearnLinuxGroup]

例子:
在这里插入图片描述

2.3 删除群组

groupdel [GroupName]
在这里插入图片描述

3.文件权限操作

3.1 查看文件/文件夹权限

分别为read(读),write(写),excute(执行)
rwx

三位为一组,分别代表着user(属于的用户),group(属于的群组),other(其他用户)三种的权限
drwxrwxrwx

(1)查看文件权限

ls -l [FileName]

在这里插入图片描述

(2)查看文件夹权限

ls -ld [DirectoryName]

在这里插入图片描述

3.2 改变文件从属

(1)改变单个文件、文件夹从属

chown [UserName]:[GroupName] 文件路径

(2)递归改变单个文件、文件夹从属

chown -R [UserName]:[GroupName] 文件路径

在这里插入图片描述

3.3 改变文件权限

chmod -R u=[rwx],g=[rwx],o=[rwx] [FileName]

-R表示递归改变,即文件夹下的文件也都改变权限

2018-02-06 15:56:31 Soul_Programmer_Swh 阅读数 1564
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7143 人正在学习 去看看 良许


实验五、用户与组群管理

一、实验要求

1掌握利用shell命令管理用户与组群的方法; 

2掌握批量新建用户账号的步骤和方法。

 

二、内容验步骤

1利用shell命令管理用户与组群的方法 

【操作要求1】新建一名为duser的用户,设置口令为“123456”,主要组群为myusers

【操作步骤】

1)进入终端,以超级用户身份登录。

2)输入命令:groupadd myusers建立组群。

3)输入命令:useradd– g myusers duser,建立新用户duser,其主要组群是myusers

4)为新用户设置口令,输入命令:passwd duser,根据屏幕提示输入两次口令,最后屏幕提示口令成功设置信息。

5)输入命令:cat /etc/passwd,查看/etc/passwd文件的内容,发现文件的末尾增加了duser用户信息。

 

6)输入命令:cat /etc/group,查看cat /etc/group文件的内容。以上步骤截图:

 


7按【Alt+F4】组合键,切换到第四个虚拟终端,输入duser用户名和口令登陆到linux系统。

8)输入命令:exitduser用户退出登陆。

【操作要求2】将duser用户设置为不需要口令就能登陆。

【操作步骤】

1按【Alt+F3】组合键,切换到正被超级用户使用的第3个虚拟终端。

2)输入命令:passwd –d duser 。

 

按【Alt+F3】组合键,再次切换到第三个虚拟终端,在Login:后输入:duser,按【Enter】键就能直接出现Shell命令提示符,说明duser用户不需要口令即可登陆。

 

【操作要求3】查看duser用户的相关信息。

【操作步骤】在第三个虚拟终端输入命令:id duser,显示duser用户的用户ID,主要组群的名称和GID

 

【操作要求4】从普通用户duser切换为超级用户。

【操作步骤】

1)第四个虚拟终端当前的Shell命令提示符为$,表明当前用户为普通用户。

2)输入命令:ls /root,屏幕上没有出现/root目录中的文件和子目录信息,而是出现提示信息,提示当前用户没有查看/root目录的权限。

3)输入命令:su– 或者是:su – root,输入超级用户口令:123456,命令提示符从$切换为#,表明已经从普通用户转换为root

4)再次输入命令:ls /root,查看/root目录中的文件和子目录信息, 

 

5)输入exit命令,回到普通用户的工作状态。

6)输入exit命令,退出duser用户登陆状态。

【操作要求5】一次性删除duser用户及其工作目录。

【操作步骤】

1)按【Alt+F3】组合键,切换到正被超级用户使用的第三个虚拟终端。

2)输入命令:userdel–r duser,删除duser用户。

处于登陆状态的用户不能删除。如果在新建这个用户时还建立了私人组群,而该私人组群当前又没有其他用户,那么在删除用户的同时也将一并删除这一私人组群。

3)输入命令:cat /etc/passwd,查看文件内容,duser的信息已消失。

 

4)输入命令:ls /home,发现duser用户的主目录/home/duser也不复存在。

 

【操作要求6】新建组群mygroup

【操作步骤】

1)在超级用户的Shell提示符后输入命令:groupadd mygroup建立组群。

2)输入命令:cat /etc/group,查看文件,发现group文件的末尾出现mygroup组群信息。


3)输入命令:cat /etc/gshadow,发现gshadow文件的末尾出现mygroup组群信息。


【操作要求7】将mygroup组群改名为newgroup

【操作步骤】

1)输入命令:groupmod–n newgroup  mygroup  //其中-n选项表示更改组群的名称。

2)输入命令:cat /etc/group,查看组群信息,发现原来mygroup所在行的第一项变为newgroup

 

【操作要求8】删除newgroup组群。

【操作步骤】超级用户输入:groupdel newgroup

2、批量新建用户账号的步骤和方法

【操作要求】为全班同学10位同学创建用户账号,用户名为“s+学号的组合,其中班级名册中第一位同学的学号为080101。所有同学都属于class0801组群。所有同学的初始口令为111111

【操作步骤】

1)以超级用户身份登录,输入命令“groupadd–g 600 class0801”(假设值为600GID未被使用),新建全班同学的组群class0801

2)输入命令“vi student”,新建用户信息文件。

3) 输入i,切换为vi文本编辑模式,输入第一行信息“s080101x601:600::/home/s080101/bin/bash”。

4)按【Esc】,切换到命令行模式,拖动鼠标,将整行选中,然后按yy,也就是将当前选中的行放到vi的暂存区域。

5)然后按p,就复制一行信息。重复此操作9次。然后部分修改每位同学用户信息不同的地方。

 

6)保存并退出vi

7)输入命令“vi stu-passwd”,新建用户口令文件。

8)按i,切换为vi的文本编辑模式,输入第一行信息:“s080101:111111”,即所有同学的初始口令为111111。按ESC,切换到命令行模式,拖动鼠标,将整行选中,然后按y2次,复制行。

9)连续按p9次,就可复制出9行信息,然后修改成正确的用户名。

 

10)输入命令“newusers < student”,批量创建用户账号。

11)输入命令“pwunconv”,暂时取消shadow加密。

12)输入命令“chpasswd < stu-passwd”,批量创建用户的口令。

13)输入命令“pwconv”,进行shadow加密,完成批量创建用户账号工作。

14)输入命令“cat/etc/passwd”,查看/etc/passwd文件将发现所有的用户账号均已建立。

 

15)用其中一个用户名登陆系统。

 

此方法批量创建的用户登录时的命令提示符,不是默认的[用户名@localhost ~]$,而是-bash-3.1$。如果希望使用默认的命令提示符,可将采用useradd命令新建的用户,如helen的用户主目录中的.bash_profile.bashrc文件复制到批量创建的用户主目录即可。

 

三、实验心得

通过这次试验,我掌握了利用shell命令管理用户与组群的方法,还掌握了批量新建用户账号的步骤和方法。在用户管理中,我熟练掌握用户多和族的维护管理工作,在软件包管理中,我熟悉了RPM包和TAR包的使用方法。

 

2019-10-30 15:37:22 HeZhiYing_ 阅读数 149
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7143 人正在学习 去看看 良许

Linux是一个多用户操作系统,可以多个用户同时使用同一计算机,不同的用户对相同的资源拥有不同的使用权限,将同一类的用户归于一个组群,可以利用组群权限来控制组群成员用户的权限。

Linux中用户分为三大类型:超级用户、系统用户和普通用户。超级用户又称root用户或根用户,拥有系统的最高权限。系统用户是与系统服务相关的用户,通常在安装相关软件包时自动创建,不用改变其默认设置。普通用户在安装后由超级用户创建,其权限只能操作其拥有的权限的文件和目录。

每个用户都有如下信息:

用户名:登录时使用的名字。

密码:用于身份验证。

用户ID(UID):用户ID是Linux中每个用户都拥有的唯一识别号码,如同每个人都拥有的身份证号,超级用的UID默认为0,1~999默认为系统用户专用UID,默认将1000及以上UID作为普通用户的UID,新建的第一个用户的UID默认为1000,第二个用户UID默认为1001,以此类推。

组群ID(GID):每位用户至少属于一个组群,组群ID是Linux中每个组群都拥有的唯一识别码,和UID类似,超级用户所属组群的GID默认为0,1~999默认为系统组群专用GID,新建一个组群的GID默认为1000,第二个组群为1001,以此类推。

用户主目录:专属于用户的目录,用于保存该用户的文件,用户登录后默认进入此目录,默认情况,超级用户root的主目录为/root,普通用户的主目录为/home,例如普通用户hzy,其主目录为/home/hzy。

全名:用户的全称,是用户账号的附加信息,可以为空。

登录shell:登录Linux后自动进入的shell环境,Linux中默认使用bash,用户一般不用修改

上面的用户信息在/etc/passwd文件保存除密码外的账户信息,密码信息用x表示,所有的用户都可以查看该文件内容,用户密码信息需要在/etc/shadow文件查看,只有超级用户才能查看其内容,这里的密码进行了加密,如果是"!!",则表示无密码。

Linux将具有相同特征的用户划归为一个组群,可以大大简化用户的管理,方便用户之间的共享,任何一个用户都至少属于一个组群,并且可以同时属于多个附加组群,用户不仅拥有其主要组群的权限,还同时拥有其附加组群的权限。

组群按章其性质分为:超级组群、系统组群和私人组群。

超级组群:超级用户所处的组群。

系统组群:安装系统服务程序时自动创建的组群。

私人组群:安装完成后,由超级用户新建的组群。

每个组群都具有如下属性信息:

组群名:组群的名称。

组群ID(GID):用于识别不同组群的唯一数字标识。

组群密码:默认情况下,组群无密码,必须进行一定操作才能设置组群密码。

用户列表:组群的所有用户,用户之间用“,”分隔。

/etc/group文件保存组群账号的信息,所有的用户都可以查看其内容,各字段从左到右依次为:族群名、组群密码、组群管理员密码和此组群为附加组群的用户列表,其中密码字段为“x”,组群密码文件在/etc/gshadow,如果是"!",则表示无密码。

添加用户格式:useradd [选项] 用户名,这里的选项如下

-c 全名                   指定用户的全称,即用户的注释信息

-d 主目录               指定的用户主目录

-g 组群ID或组群名   指定用户所属的主要组群

-G 组群ID或组群名  指定用户所属的附加组群

-u 用户ID               指定用户UID

设置或修改密码格式:passwd [选项] [用户],这里的选项如下

passwd hzy 这里以用户hzy为例,如果是没有选项,则是给hzy用户设置密码,回车后会让你输入密码

-d 用户名     删除用户的密码 

修改用户的属性格式:usermod [选项] 用户名,只有超级用户才能使用此命令,且被需改的用户当前未登录,这里的选项如下

-c 全名                     指定用户的全称

-d 主目录                 指定用户的主目录

-g 组群ID或组群名   指定用户所属的主要组群

-G 组群ID或组群名  指定用户所属的附加组群

-u 用户ID                 指定用户的UID

-l 用户名                  指定用户的新名称

删除指定的用户账号格式:userdel [-r] 用户名,只有超级用户才能使用此命令,"-r"选项系统不仅将删除此用户账号,并且还将用户的主目录也一并伤处,如果不适用-r选项,则进删除此用户账号。

新建组群格式:groupadd [选项] 组群名,只有超级用户才能使用此命令,选项如下

-g 组群ID  指定组群的GID

修改指定组群的属性格式:groupmod [选项] 族群名,只有超级用户才能使用此命令,选项如下

-g 组群ID 指定组群的GID 

-n 组群名 指定组群的新名字

删除指定的组群格式:groupdel 组群名,只有超级用户才能使用此命令 

2019-08-20 19:36:15 weixin_45172861 阅读数 44
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7143 人正在学习 去看看 良许

4.Linux常规操纵 : 多用户操作

4.1 linux的用户与用户组理论

4.1.1 概述

Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。

root :系统维护
www:网页修改
ftp:文件上传
mysql:SQL查询

不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

4.1.2 linux的用户分类

  1. root 用户(linux的超级管理员,上班的时候别人给你你也不能要,老危险了)
    拥有最高权限,可以登录系统,进行任何操作。

  2. 虚拟用户(某项技术运行期间需要的用户,根我们没啥关系)
    这类用户也被称为伪用户或假用户,以与真实用户区分开来。这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的,而非后来添加的。
    在这里插入图片描述

  3. 普通真实用户(我们可以操作的)
    这类用户等登录系统,权限有限,由管理员添加。
    在这里插入图片描述
    注意 : linux是区分用户进行各种操作的,也就是说如果你想做任何操作都是必须先登录某个用户才可以做相关的操作,所以我们想要操作linux必须有自己的用户!

那怎么创建用户呢?

4.1.3 linux的用户组

Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。

这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。

用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限。

比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理。

另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。

这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。
在这里插入图片描述
说白了用户组就是对linux中同一类对象进行统一管理一种技术手段,将同一类用户放到一个组中去,封装成一个更大的整体;

就好比 同一类学生封装到一个班级里面,学生就是用户,班级就是组;对班级进行操作其实就是对这个班级的所有学生的操作;

4.1.4 用户与组的关系

用户和用户组的对应关系有:一对一、一对多、多对一和多对多;下图展示了这种关系:
在这里插入图片描述
 一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。
 一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。
 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。
 多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

4.1.5 用户与组对linux的影响

假如 我们现在有这么几个用户 : zwm 、sjg、 wxh
假设 zwm 和 sjg 用户 是 g1 组 ,wxh 是 g2 组
我们用 zwm 用户创建了一个文件 file1
那么对于这个file1来说 就有 三种权限的设置

  1. User --> 文件所有者 完全权限 读 写 执行 4 2 1 = 7
    直接创建这个文件的用户(zwm),对这个文件享有很高的权限
  2. Group --> 文件所有者同组权限 读
    这个用户所属组(g1组),与上面用户同组的用户对这个文件有什么样的操作权限
  3. Others --> 除文件所有者和所有者组之外那些个用 0
    其他用户(wxh),除了上面的用户和上面的组以外的其他人对这个文件有什么权限操作

举个例子
在这里插入图片描述

其中:
天神:root 用户,无所不能。
王大毛家:某个用户组
王大毛:某个用户组中的用户
王大毛房间的所有者是王大毛,里面的东西,其他人不能乱动,表示为所有者权限 (User)。
王大毛家内公共区域三兄弟可以共享,表示为所有者同组权限(Group)。
对于王大毛来说,张小猪就不是他们家的人,表示为所有者非同组权限(others)。
1.2 linux的用户与用户组实战
因为用户组与用户是一对多的关系,用户肯定是要从属于某个组的,所以我们先从用户组操作起来
1.2.1 Linux用户组的CURD操作

1.2.1.1 GR 组的查询

  1. 组信息的查询
    执行 :
#cat 命令,查看某个文件的内容  /etc(配置文件目录)/group(配置文件)
[root@localhost ~]# cat /etc/group

在这里插入图片描述
用户组的所有信息都存放在/etc/group文件中。
此文件的格式是由冒号(:)隔开若干个字段,这些字段具体如下:

组名:口令:组标识号:组内用户列表
具体解释:

组名:
组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

口令:
口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*,有口令默认是x。
因为涉及到对组的管理所以linux的组也是有自己的密码的

组标识号 主键ID(可以重复的):
组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.

组内用户列表:
是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

  1. 组密码的查询
    执行
[root@localhost ~]# cat /etc/gshadow

在这里插入图片描述
由冒号(:)隔开若干个字段,这些字段具体如下:
用户组名:用户组密码:用户组管理者:支持的账号名

具体解释:
用户组名:
是用户组的名称,由字母或数字构成。

用户组密码:
这个段可以是空的或!,如果是空的或有!,表示没有密码。

用户组管理者:
这个字段也可为空,如果有多个用户组管理者,用,号分割。

组成员:
如果有多个成员,用,号分割。
当你每次创建的时候 为了保证这个账户归属某个组 所以 创建一个账户的同时 / 创建一个与用户同名的组
root 账户 root组

4.2 GC 添加组

groupadd

语法 :

groupadd [选项] 组名

命令功能:
添加群组。
选项和参数:
-g GID:后面接某个特定的 GID ,用来直接给予某个GID;
-h :显示此帮助信息并退出
-r :创建一个系统群组。
-o :允许创建有重复 GID 的组

实例:

4.2.1 创建一般群组(GID 从 1000 ! 1000以下代表是系统组)

[root@localhost ~]# groupadd group1
[root@localhost ~]# cat /etc/group | grep group1
group1:x:1000://查询的结果

| N个命令的管道连接符 ,它的意义就是在于 ,将前一个命令的结果作为原始数据传入下一个命令 ,此处我们将 cat /etc/group 命令的执行结果 ,通过 | 传入给 grep 命令 ,

grep命令的作用是,在指定内容中查找给定的关键字,因为我们要用grep查找 group1 关键词 ,所以通过上面命令的执行将包含group1 关键词的那行查询出来;

4.2.2 创建一个自定义GID的组名

GID : 和我们之间数据库的主键ID一样,用来定位一个组的有效标识,但是linux的GID可以重复(使用-o 参数指定即可);
GID的编号 : 0~999 传统上是保留给系统帐号使用。自定义的组是1000以上的,刚才我们创建的group1组的
ID就是1000;

[root@localhost ~]# groupadd -g 1003 group3
[root@localhost ~]# cat /etc/group | grep group3
group3:x:1003:
    此处需要注意一个问题,因为我们自定义的组ID已经指定到了1003, 所以按照ID递进原则之后我们如果创建group3组的话,ID不会是我们没有用到的1002 ,而是 1003+1 --> 1004
[root@localhost ~]# cat /etc/group | grep group4
group4:x:1004:

4.2.3 创建系统群组

[root@localhost ~]# groupadd -r sysop1
[root@localhost ~]# cat /etc/group | grep sysop1
sysop1:x:995:

注意
系统群组的ID是 0-999 所以此处分配了一个 995的ID
此时大家就要考虑一个问题了,如果系统保留ID用没了,但是我还是想创建系统群组怎么办呢?
这个时候我们可以使用 -o 参数来设定GID相同的群组

[root@localhost ~]# groupadd -r -o -g 995 sysop2
[root@localhost ~]# cat /etc/group | grep sysop2
sysop2:x:995:

根据观察我们可以看出,sysop2和sysop1使用了相同的GID;

4.3 GU 修改组

4.3.1 groupmod

命令格式:

groupmod [选项] 组名

命令功能:
修改群组相关参数。

选项和参数:
-g GID :将组 ID 改为 GID
-h :显示此帮助信息并退出
-n NEW_GROUP :改名为 NEW_GROUP
-o :允许使用重复的 GID

实例:
修改 sysop2 组的名称为 sysug1 并且修改这个组的ID为 996

[root@localhost ~]# groupmod -g 996 -n sysug1 sysop2
groupmod:GID996”已经存在
[root@localhost ~]# groupmod -g 997 -n sysug1 sysop2
groupmod:GID997”已经存在
[root@localhost ~]# groupmod -g 998 -n sysug1 sysop2
groupmod:GID998”已经存在
[root@localhost ~]# groupmod -g 999 -n sysug1 sysop2
groupmod:GID999”已经存在
[root@localhost ~]# groupmod -g 994 -n sysug1 sysop2

注意 系统的GID是很紧张的!

4.4 GD 删除用户组

4.4.1groupdel

命令格式:

groupdel 组名

命令功能:
删除用户组时,用户组必须存在,如果有组中的任一用户在使用中的话,则不能删除。

实例:
删除群组名为 sysop1 sysug1 的群组和

[root@localhost ~]# groupdel sysop1
[root@localhost ~]# groupdel sysug1

4.5 Linux用户的CURD操作

4.5.1 UR 用户查看

执行 :

[root@localhost ~]# cat /etc/passwd

是的,没有错,不要怀疑,这个就是查看用户信息的文件 叫 passwd
在这里插入图片描述
内容说明 :
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

用户名:
是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。

口令:
一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

用户标识号:UID
用户标识号(User ID),是一个整数,系统内部用它来标识用户。
0是系统管理员账号,1-999是系统保留账号,1000+即一般账号。useradd 命名默认生成UID=1000。

组标识号:GID
GID:用户组标识号(Group ID),是一个整数,系统内部用它来标识用户组。

注释性描述:
字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。

主目录:
也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

登录Shell:
用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。

查看用户密码可以执行 :

[root@localhost ~]# cat /etc/shadow

在这里插入图片描述
用户(user)影子口令文件,存放账户密码相关信息。该文件的权限必须设置为:400 或者600,即:Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件。
每行内容按:分隔。

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

登录名:
是与/etc/passwd文件中的登录名相一致的用户账号

口令:
存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;
星号代表帐号被锁定;
双叹号表示这个密码已经过期了。

$6$开头的,表明是用SHA-512加密的,
$1$ 表明是用MD5加密的
$2$ 是用Blowfish加密的
$5$ 是用 SHA-256加密的。 

最后一次修改时间:
表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。

最小时间间隔:
指的是两次修改口令之间所需的最小天数。

最大时间间隔:
指的是口令保持有效的最大天数。

警告时间:
字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

不活动时间:
表示的是用户没有登录活动但账号仍能保持有效的最大天数。

失效时间:
字段给出的是一个绝对的天数(1970年到现在的天数),如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

4.5.2 用户创建

useradd

命令格式:

useradd [选项] 使用者账号名

命令功能:
用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

选项和参数:

-u UID: 直接指定一个特定的 UID 给这个账号;

-g 初始群组名:该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。

-G 附加群组名:后面接的组名则是这个账号还可以加入的附加群组。这个选项与参数会修改 /etc/group 内的相关资料。

-M :强制!不要建立用户家目录!(系统账号默认值)

-m :强制!要建立用户家目录!(一般账号默认值)

-c 描述性字符串:注释性描述,这个就是 /etc/passwd 的第五栏的说明内容

-d 目录:指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径!一般情况下linux除了执行shell脚本之外 很少使用相对路径

-r :建立一个系统的账号,系统账号不建立家目录;

-s shell:后面接一个 shell ,若没有指定则预设是 /bin/bash

实例

4.5.2.1 创建一个最普通的账号(用户名 user1 用户描述 这个一个普通账户)

[root@localhost ~]# useradd -c 这是一个最普通的账户 user1
[root@localhost ~]# cat /etc/passwd | grep user1
user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash

此处我们需要关心的问题是 ,普通账户的UID起始是1000,那UID后面的 1005 的 GID是哪个组呢?我们查询一下

[root@localhost ~]# cat /etc/group | grep 1005
user1:x:1005:

通过观察我们发现创建普通用户的时候还会创建一个按用户名命名的组,并且把该用户添加到了这个同名的组里面
如果是这样的话,我们想在创建用户的时候指定组该怎么办呢?此时可以用 -G 和 -g 参数

4.5.2.2 创建一个账户归属 GID=1000 的用户组

[root@localhost ~]# useradd -g 1000 user2
[root@localhost ~]# useradd -g group1 user3
[root@localhost ~]# cat /etc/passwd | grep user*
user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash
user2:x:1001:1000::/home/user2:/bin/bash
user3:x:1002:1000::/home/user3:/bin/bash

上面的代码我们可以用-g 来初始化用户的组 -g 后面加需要归属的 组的 ID 和 名称 都可以
那么既然已经设置了基础组还会创建用户同名组么?

   [root@localhost ~]# cat /etc/group | grep user*
    users:x:100:
    user1:x:1005:

通过观察我们发现并没有!

4.5.2.3 创建一个账户归属自己同名组并归属 GID为1000的组

[root@localhost ~]# useradd -G 1000 user4
[root@localhost ~]# useradd -G group1 user5 
[root@localhost ~]# cat /etc/passwd | grep user*
user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash
user2:x:1001:1000::/home/user2:/bin/bash
user3:x:1002:1000::/home/user3:/bin/bash
user4:x:1003:1006::/home/user4:/bin/bash
user5:x:1004:1007::/home/user5:/bin/bash

通过观察我们可以发现上面的user4 和 user5 有两个不同的GID为 1006 和 1007
那么它归属 GID=1000的组了么?我们查查看

[root@localhost ~]# cat /etc/group | grep -E '1000|1006|1007'
group1:x:1000:user4,user5
user4:x:1006:
user5:x:1007:

通过观察我们发现 group1 GID=1000 这个组里添加了user4和user5两个用户
并且系统也帮助我们创建了以user4和user5命名的组
这个就是附加! -G

4.5.2.4 创建一个系统账户

[root@nn1 ~]# useradd -r sysuser1

[root@localhost ~]# cat /etc/passwd | grep sysuser1
sysuser1:x:997:995::/home/sysuser1:/bin/bash

此处我们可以发现 UID是 997(1000以下) GID 995

[root@localhost ~]# cat /etc/group | grep 995
sysuser1:x:995:

4.5.2.5 创建一个不能使用shell 并且要设置用户的家目录到其他位置

[root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user1 -c 一个特殊的普通用户 nologinuser1
useradd:无法创建目录 /userhome/user1
[root@localhost ~]# mkdir -p /userhome/user1 创建这个目录 
[root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user1 -c 一个特殊的普通用户 nologinuser1
useradd:用户“nologinuser1”已存在
[root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user1 -c 一个特殊的普通用户 nologinuser2
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。 
[root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user3 -c 一个特殊的普通用户 nologinuser3
​
[root@localhost ~]# ll /userhome/
总用量 0
drwxr-xr-x. 2 root         root          6 530 16:47 user1
drwx------. 2 nologinuser3 nologinuser3 62 530 16:47 user3
​
[root@localhost ~]# cat /etc/passwd | grep nologinuser*
nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin

此处需要注意 : 用户的默认家目录在 /home/用户名 这个目录里
举个例子 : 我创建了一个user 叫user1
那么这个用户的家目录 对应应该就是 /home/user1
那么问题来了 --> 什么是家目录呢?
家目录 和 windows中用户的我的文档类似 用户登陆成功进入的第一个目录就是自己得家目录;
家目录对于用户来说 用户具有最大的管理权限 所以家目录对于用户来说 是 700 权限的;
那啥是700权限呢? 不着急我们一会再说,此处我们主要还是针对用户操作;

4.5.3 UU 用户修改

usermod

命令格式:

usermod [选项] 使用者账号名

命令功能:
usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。

选项和参数:

-c 备注:修改用户帐号的备注文字;

-d 家目录:修改用户登入时的主目录,前提:已存在要修改的家目录;

-g 初始群组:修改用户所属的群组;

-G 附加群组;修改用户所属的附加群组;

-h:显示帮助信息;

-l 帐号名称 :修改用户帐号名称;

-s shell:修改用户登入后所使用的shell;

-u UID:修改用户ID;

实例:

4.5.3.1 将现有用户添加到现有组中

[root@localhost ~]# cat /etc/passwd | grep user1
user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash 
sysuser1:x:997:995::/home/sysuser1:/bin/bash
nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
[root@localhost ~]# cat /etc/group | grep 1005
user1:x:1005:
[root@localhost ~]# usermod -g group1 user1
[root@localhost ~]# cat /etc/passwd | grep user1
user1:x:1000:1000:这是一个最普通的账户:/home/user1:/bin/bash
sysuser1:x:997:995::/home/sysuser1:/bin/bash
nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin

上面的操作可以观察到之前user1的GID 是1005 修改了之后变成了 1000

4.5.3.2 修改用户名

[root@localhost ~]# usermod -l userop1 -c 'web管理员' user1
[root@localhost ~]# cat /etc/passwd | grep user*
user2:x:1001:1000::/home/user2:/bin/bash
user3:x:1002:1000::/home/user3:/bin/bash
user4:x:1003:1006::/home/user4:/bin/bash
user5:x:1004:1007::/home/user5:/bin/bash
sysuser1:x:997:995::/home/sysuser1:/bin/bash
nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin
userop1:x:1000:1000:web管理员:/home/user1:/bin/bash

修改了用户名 顺便也修改了备注信息

4.5.3.3 修改用户的家目录位置

    [root@localhost ~]# cat /etc/passwd | grep userop1
    userop1:x:1000:1000:web管理员:/home/user1:/bin/bash
    [root@localhost ~]# usermod -d /userhome/user4 userop1
    [root@localhost ~]# cat /etc/passwd | grep userop1
    userop1:x:1000:1000:web管理员:/userhome/user4:/bin/bash

修改完用户名及家目录之后,不能正常的登录,需要拷贝正常家目录下的三个文件,命令如下:

cp ./.bash* /home/新用户的家目录

4.5.3.4 修改用户的登录密码

passwd

命令格式:

passwd [选项] [使用者账号名]

命令功能:
passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
root用户可以设置及修改其他用户的密码,普通修改自己的密码。

选项:
-d:删除密码,仅有系统管理者才能使用;
-f :强制执行;
实例:
因为useradd的用户并没密码可以通过此命令进行设置

4.5.3.4.1 修改管理员密码
  [root@localhost ~]# passwd
    更改用户 root 的密码 。
    新的 密码:
    无效的密码: 密码是一个回文
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

passwd 如果不带参数就是修改当前用户的,所以root身份登录修改的也是root的密码,此处需要注意当你在输入密码的时候是不会显示密码的

4.5.3.4.2 修改其他用户密码
[root@localhost ~]# passwd userop1
更改用户 userop1 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -f userop1
更改用户 userop1 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

切换验证

[root@localhost ~]# su - userop1
su: 警告:无法更改到 /userhome/user4 目录: 没有那个文件或目录
-bash-4.2$ ll
ls: 无法打开目录.: 权限不够
-bash-4.2$ cd /
-bash-4.2$ ll
总用量 16
lrwxrwxrwx.   1 root root    7 530 12:25 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 530 12:28 boot
drwxr-xr-x.  20 root root 3220 530 12:29 dev
drwxr-xr-x.  74 root root 8192 530 17:14 etc
drwxr-xr-x.   7 root root   71 530 16:36 home
lrwxrwxrwx.   1 root root    7 530 12:25 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 530 12:25 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 411 2018 media
drwxr-xr-x.   2 root root    6 411 2018 mnt
drwxr-xr-x.   2 root root    6 411 2018 opt
dr-xr-xr-x. 112 root root    0 530 12:29 proc
dr-xr-x---.   2 root root  114 530 12:28 root
drwxr-xr-x.  23 root root  720 530 12:29 run
lrwxrwxrwx.   1 root root    8 530 12:25 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 411 2018 srv
dr-xr-xr-x.  13 root root    0 530 12:29 sys
drwxrwxrwt.   8 root root  211 530 14:05 tmp
drwxr-xr-x.   4 root root   32 530 16:47 userhome
drwxr-xr-x.  13 root root  155 530 12:25 usr
drwxr-xr-x.  19 root root  267 530 12:29 var
-bash-4.2$ su - root
密码:
上一次登录:四 530 12:31:03 CST 2019192.168.92.1pts/0 上
​
用户自己改密码
-bash-4.2$ passwd
更改用户 userop1 的密码 。
为 userop1 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

用户自己修改密码的时候必须遵守密码修改原则

  1. 先输入当前密码验证
  2. 新密码要求由数字和字母组成长度要大于8位
  3. 密码中要包含大小写字母
    所以自己修改密码的时候还是要花费一定经历的

4.5.4 UD 用户删除

userdel

命令格式:

userdel [选项] 使用者账号名

命令功能:
userdel删除一个用户账号和相关的文件。 userdel命令修改系统账号文件/etc/passwd,删除所有条目有关用户登录名。该用户名必须存在。
选项和参数:
-f,–force 该选项强制删除用户账号,即使该用户仍在登录。
-r, --remove 在用户家目录里面的文件将被删除并且家目录本身和用户的邮件池也会被删除。文件位于其他文件系统的必须手动搜索和删除。
建议不要用 -r 直接删除,用普通删除,家目录先保留一段时间,然后在手动删除,以免家目录内的文件找不回来。
实例:
删除指定的用户

[root@localhost ~]# cat /etc/passwd | grep user
user2:x:1001:1000::/home/user2:/bin/bash
user3:x:1002:1000::/home/user3:/bin/bash
user4:x:1003:1006::/home/user4:/bin/bash
user5:x:1004:1007::/home/user5:/bin/bash
sysuser1:x:997:995::/home/sysuser1:/bin/bash
nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin
userop1:x:1000:1000:web管理员:/userhome/user4:/bin/bash
[root@localhost ~]# userdel userop1
userdel: user userop1 is currently used by process 9251

上面提示userop1 正在使用不能删除;
那么要是就想删呢?

[root@localhost ~]# userdel -rf userop1
userdel: user userop1 is currently used by process 9251
userdel:未找到 userop1 的主目录“/userhome/user4”
[root@localhost ~]# cat /etc/passwd | grep user
user2:x:1001:1000::/home/user2:/bin/bash
user3:x:1002:1000::/home/user3:/bin/bash
user4:x:1003:1006::/home/user4:/bin/bash
user5:x:1004:1007::/home/user5:/bin/bash
sysuser1:x:997:995::/home/sysuser1:/bin/bash
nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin

强制删除了userop1
注意 : linux没有回退功能,所以删除了就是删除了,就再也找不回来了!

4.6 Linux群组管理员功能

gpasswd
gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow管理工具。
命令格式:

gpasswd [选项] 要管理的工作组

命令功能:
管理群组。
选项:
-a 用户:添加用户到组;
-d 用户:从组删除用户;
-A 用户:指定管理员;
-h:帮助信息;
-r:删除密码;

实例:

4.6.1 给组设置密码

[root@localhost ~]# gpasswd group1
正在修改 group1 组的密码

新密码:
请重新输入新密码:
1)指定组的管理员

  [root@localhost ~]# gpasswd -A user4 group1

2)添加新用户到组

[root@localhost ~]# su - user4
[user4@localhost ~]$ gpasswd -a user2,user3 group1
gpasswd:用户“user2,user3”不存在
[user4@localhost ~]$ gpasswd -a user2 group1
正在将用户“user2”加入到“group1”组中
[user4@localhost ~]$ gpasswd -a user3 group1
正在将用户“user3”加入到“group1”组中
[user4@localhost ~]$ cat /etc/group | grep group
group1:x:1000:user4,user5,user2,user3
group3:x:1003:
group4:x:1004:

3)将用户移出组

[user4@localhost ~]$ gpasswd -d  user2 group1
正在将用户“user2”从“group1”组中删除
[user4@localhost ~]$ cat /etc/group | grep group1
group1:x:1000:user4,user5,user3

4.7 linux的用户相关命令

4.7.1 id 命令 查看用户信息

命令格式:

id [选项][用户名称]

命令功能:
id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。
id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。
选项:
-g 显示用户所属群组的ID。
-G 显示用户所属加群组的ID。
–help   显示帮助。
实例:

1)查看当前信息
[user4@localhost ~]$ id
uid=1003(user4) gid=1006(user4)=1006(user4),1000(group1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
2) 查看其他用户
[root@localhost ~]# id user2
uid=1001(user2) gid=1000(group1)=1000(group1),1003(group3)
[root@localhost ~]# id -g user2
1000
[root@localhost ~]# id -G user2
1000 1003

1.3.2 su 命令 用户切换
命令格式:

su [-] [要切换的用户名称]

命令功能:
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
选项:

  • :切换用户后,环境变量也切换成用户的环境变量;
    不加- :切换用户,不切换环境变量
    实例:
1)切换到目标用户
su - 会随着用户的切换环境变量
su  不会随着用户的切换环境变量
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# su - user4
上一次登录:四 530 17:33:47 CST 2019pts/0[user4@localhost ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user4/.local/bin:/home/user4/bin
[user4@localhost ~]$ su root
密码:
[root@localhost user4]# echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user4/.local/bin:/home/user4/bin
[root@localhost user4]# su - root
上一次登录:四 530 17:49:57 CST 2019pts/0[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2017-05-24 15:15:51 Ayhan_huang 阅读数 7654
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7143 人正在学习 去看看 良许

  • 在linux中,一切皆文件,当我们创建一个用户时,其实是创建了以下文件:
/etc/passwd 用户配置信息
/etc/shadow 用户密码
/etc/group 组信息
/etc/gshadow 组密码
/home 家目录

/var/spool/email/ 用户邮箱

  • /opt/passwd 用户配置信息

以:为分隔符,包含7个信息,分别是

用户名:

密码占位符:x,密码在/etc/shadow中;若没有密码,空着

uid:用户id 相当员工的工号

gid:组id 相当于员工的部门代号

comments:用户描述信息,写啥都行

用户家目录:root用户为 /root ;普通用户为/home/用户名
用户登录shell:执行bin/bash相当于登录一个用户终端(执行了几次就需要几次退出);/sbin/nologin 不能登录shell
新增用户的配置信息在passwd文件的最下面,可以用tail -1 命令来查看
  • /etc/shadow 用户密码


以:为分隔符,包含9个信息,分别是用户名:加密的密码(如果没有密码是!):上次修改密码时间:0最短密码期限:99999最长密码期限:7密码警告期限:密码非活动期限:账号到期时间:保留域

  • /etc/group 组信息

以:为分隔符,包含4个信息:

组名:相当于部门名称
组密码占位符X:组密码信息在/etc/gshadow中,一般不设置组密码,但可以通过gpasswd 组名 命令来设置
gid:组id 相当于部门代号
组成员:可通过vim /etc/group 命令往组内加成员
  • /etc/gshadow 组密码


以:为分隔符,包含4个信息 组名:组密码(没有就!):组管理者:组成员

  • /home 家目录
并不是空的,隐藏的用户初始配置文件 可以用 ls -a 命令查看。手动新建用户时也可以在/etc/skel/下拷贝隐藏文件。

  • 我们可以通过在以上6个文件中添加新的用户信息,来进行新增用户的操作。删除用户时,通过userdel -r 命令可以删除用户及其残留文件。但是对于手动新增的用户,由于该用户的家目录和mail下的用户名文件是复制的的其他用户的,所以其属主、属组信息也是其他用户的,需要先更改其属主、属组为该用户,才能通过这个命令顺利删除。
  • id 用户名 命令可以查看用户的属主和属组信息:

上图的前两个为用户的uid和gid,‘组=...' 那一串是该用户首先在自己的组,也附属于其他组,如wheel、 test、 sbb

  • 权限信息


如上图,a.txt的权限信息:

第一位的 - :表示普通文件(d表示目录文件,b表示块文件,p表示管道文件,l表示软链接,相当于windows的快捷方式)
rw- r-- r-- :三位一组,分别表示属主、属组、其他用户对a.txt的权限, r可读,w可写,x可执行 -无权限
1: 文件的硬链接数; root root 分别是该文件的属主和属组;87为大小,单位是byte字节(也可以通过 ll -h 命令来更直观的显示文件大小;再后面是文件创建日期和文件名
  • chown 属主:属组 /路径 命令可以更改文件或文件夹的属主、属组信息 -R 可以递归的修改

如上图,已更改a.txt的属主和属组信息为ayhan
  • chmod u=rwx,g=rwx,o=rwx /oldboy/a.txt 命令修改权限rwx-权限:

通过 -R 递归的修改:


如上图,-R 递归更改该目录下的所有文件权限信息。更改权限也可以通过数值这种更简单的方式:r=4, w=2, x=1 通过数值相加来赋予权限,如上图中774,(7=4+2+1),于是为属主和属组添加了可读、可写、可执行的权限 ;4,为其它用户添加了可读权限。另外,也可以通过u-w, g-w,o+x 这样加减的方式来修改权限

  • useradd 用户名 -u -g -c  -d -s -G命令 新建用户时指定其uid、gid、描述信息、家目录、shell、附加组:

注意,用这种方式新建用户时,-g指定的组id必须是已经存在的,否则新建不成功

  • groupmod 组名 -n 新组名 命令 更改组名

  • groupadd 组名 -g 数值 命令 新建组,并指定gid
  • groupdel 组名 删除组


  • usermod 用户名 -u -g -c  -d -s 命令更改用户信息,用法同上。我们也可以通过 -G 组名来把该用户加入另一个组,但是多次执行的话是覆盖的方式,即新加入的附加组信息会覆盖之前的附加组信息,如果想加入多个附加组,可以通过-aG 命令(append)。另外,更改了属组信息后,必须重新登录用户才能更新属组并获取属组的权限。

如上图,再次将tester加入附加组1000,覆盖了之前加的的组1024. 下图中用 -aG 的方式,就可以追加组。

  • 文件的权限 & 目录的权限

文件的可读(R):读文件内容

文件的可写(W):修改内容

文件的可执行(X):把文件当程序执行

目录的可读(R):可浏览该目录下的文件名/子文件名

目录的可写(W):可在该目录下新建删除重命名

目录的可执行(X):可以cd到该目录下

root用户不受权限的限制,只要一个文件的属主属组或其他人中的任何一个拥有X权限,root都可以执行。如果都没权限,root用户可以加权限。

  • 新建文件的过程是先CD进去,光对目录有W权限是不行的,所有要同时拥有WX权限,才能在目录下新建文件。另外,虽然文件建好了,但是没有R权限是看不到目录下建的文件名
  • 假设/test目录对others的权限为RWX,/test目录下有a.txt文件,对others的权限为R--,某用户属于others,用vim编辑器 vim /test/a.txt 试图修改并保存a.txt,表面上成了,其实并没有修改a.txt 。因为该用户对/test目录有W权限,vim编辑器工作于内存中,编辑完内容,执行保存时,相当于在/test目录下新建了a.txt,并把内存中编辑的内容写入了新建的这个文档。而新建的a.txt把之前的a.txt覆盖了。
  • . 文件 命令(. 后面加空格,再跟文件) 把文件当命令来执行(前提是要有R权限才行) 可以用来测试X权限


  • .sh 命令(或者sh) 解释执行文件内容,效果和上面的 . 一样。工作方式是读一行,执行一行(跟Python一样),因此和X权限无关,只要有R权限就行

Linux-用户与组群

阅读数 582

没有更多推荐了,返回首页