精华内容
下载资源
问答
  • 同组用户权限
    千次阅读
    2021-10-17 22:45:19

    chmod修改文件权限

    1.chmod命令

    2.例子

    //用 chmod命令为同组用户增加读写权限
    chmod g+rw test.txt
    
    更多相关内容
  • Linux用户管理管理及权限管理

    千次阅读 2022-02-26 21:45:04
    Linux 系统是一个多用户多任务的分时操作系统,...Linux用户管理 实现用户账号的管理,要完成的工作主要有如下几个方面: (1)用户账号的添加、删除与修改; (2)用户密码的管理; (3)用户的管理。 whoami指令

    Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员(root用户)申请一个账号,然后以这个账号的身份进入系统。每个用户账号都拥有一个唯一的用户名和各自的密码。Linux 的用户需要至少要属于一个组,也可以属于多个组。

    用户在登录时输入正确的用户名和密码后,就能够进入系统和自己的主目录。

    Linux用户管理

    实现用户账号的管理,要完成的工作主要有如下几个方面:

    (1)用户账号的添加、删除与修改;
    (2)用户密码的管理;
    (3)用户组的管理。

    whoami指令

    查看当前系统当前账号的用户名,等价于who am i指令。
    在这里插入图片描述

    who指令

    查看当前所有登录系统的用户信息。
    在这里插入图片描述

    useradd指令

    功能:添加用户
    语法:useradd [选项] 用户名
    常用选项:

    (1)-c comment :指定一段注释性描述。

    (2)-d 目录 :指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。若不指定目录,默认会自动在home目录下创建一个和用户名相同的目录。

    (3)-g 用户组 :添加用户时指定用户所属的用户组。

    (4)-G 用户组,用户组 :指定用户所属的附加组。

    (5)-s Shell文件 :指定用户的登录Shell。

    (6)-u 用户密码:指定用户的密码,如果同时有-o选项,则可以重复使用其他用户的标识号。

    示例:
    创建用户名为xiaoming的用户
    在这里插入图片描述
    在这里插入图片描述

    userdel指令

    如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

    功能:删除帐号
    语法:userdel [选项] 用户名

    常用选项
    (1)-r,把用户的主目录一起删除。

    在这里插入图片描述
    默认情况下只删除用户在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,不删除用户主目录,若想一同删除用户主目录,要使用-r选项。
    在这里插入图片描述

    passwd指令

    用户管理的一项重要内容是用户密码的管理。用户账号刚创建时没有密码,但是被系统锁定,无法使用,必须为其指定密码后才可以使用(此时由root用户指定密码),即使是指定空密码。

    超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

    功能:指定用户密码或者修改用户密码
    语法:passwd [选项] 用户名
    常用选项

    (1)-l :锁定密码,即禁用账号。
    (2)-u :密码解锁。
    (3)-d :使账号无密码。
    (4)-f :强迫用户下次登录时修改密码。

    如果不写用户名,则默认修改当前用户的密码。
    在这里插入图片描述
    在这里插入图片描述

    普通用户修改自己的密码时,passwd命令会先询问原密码,验证后再要求用户输入两遍新密码,如果两次输入的密码一致,则将这个密码指定给用户;而超级用户为用户指定密码时,就不需要知道原密码。

    为了系统安全起见,用户应该选择比较复杂的密码,例如最好使用较长的密码,密码中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。

    为用户指定空密码时,执行下列形式的命令:

    此命令将用户zhangsan 的密码删除,这样用户 zhangsan下一次登录时,系统就不再允许该用户登录了。

    passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:
    在这里插入图片描述

    usermod指令 - 修改已有账号自身的信息

    功能:根据实际情况更改已有用户的有关属性,如用户号、主目录、用户组、登录Shell等。
    语法:usermod [选项] 用户名

    常用选项
    -c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

    (1)-c comment :指定一段注释性描述。

    (2)-d 目录 :指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。若不指定目录,默认会自动在home目录下创建一个和用户名相同的目录。

    (3)-g 用户组 :改变用户所在的用户组

    (4)-G 用户组,用户组 :指定用户所属的附加组

    (5)-s Shell文件 :指定用户的登录Shell。

    (6)-u 用户密码:指定用户的密码,如果同时有-o选项,则可以重复使用其他用户的标识号。

    另外,有些系统可以使用选项:-l 新用户名
    这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
    在这里插入图片描述

    id指令 - 查询用户信息

    功能:查询用户信息
    语法:id 用户名

    在这里插入图片描述
    在这里插入图片描述

    Linux用户组管理

    用户组类似于角色,系统可以对有共性的多个用户进行统一的管理。每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

    groupadd 指令

    功能:增加一个新的用户组
    语法:groupadd [选项] 用户组

    常用选项
    (1)-g GID :指定新用户组的组标识号(GID)。
    (2)-o :一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

    示例1:
    在这里插入图片描述
    此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

    示例2:
    在这里插入图片描述

    此命令向系统中增加了一个新组group2,同时指定新组的组标识号是222。

    可以在创建新用户时就指定用户组:

    useradd -g 用户组 用户名

    但是这种写法的前提是,先创建用户组,用户组已经存在。

    groupdel指令

    功能:删除一个已有的用户组
    语法:groupdel 用户组

    在这里插入图片描述

    groupmod - 修改用户组自身的属性

    功能:修改用户组自身的属性
    语法:groupmod [选项] 用户组
    常用选项

    (1)-g GID :为用户组指定新的组标识号。
    (2)-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    (3)-n 新用户组 :将用户组的名字改为新名字

    示例:
    将用户组group1重命名为group2
    在这里插入图片描述
    为用户组group2指定新的组标识号1001
    在这里插入图片描述

    groups指令 - 显示用户所属组

    默认显示当前用户的组
    groups #

    显示用户zhangsan的组
    在这里插入图片描述

    Linux权限的概念

    Linux下默认有两种用户:超级用户(root)、普通用户。

    root:超级管理员,具有非常高的权限,可以再linux系统下做任何事情,不受限制

    普通用户:具有一般权限,需要受权限约束(由root用户创建的)

    超级用户:可以在linux系统下做任何事情,不受限制
    普通用户:在linux下做有限的事情。

    超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

    用户登录时尽量少用 root 帐号登录,因为它是系统管理员,最大的权限,避免操作失误。

    退出登录使用ctrl+d或者命令行输入exit。

    su指令

    (1)普通用户切换到root用户

    su -

    在这里插入图片描述
    su也可以切换到root用户
    在这里插入图片描述

    普通用户切换到root用户,需要输入root用户的密码。

    (2)root用户切换到普通用户

    su - 普通用户名
    在这里插入图片描述
    root用户切换回普通用户不需要密码。但是,建议使用exit变回普通用户(或者快捷方式ctrl+d),因为使用su - 或者su,系统会生成一个bash。

    在这里插入图片描述
    注意一个细节:su和su - 都可以切换到root用户,那么su和su - 的区别是什么?su指令切换到root用户还在当前路径下;su - 切换到root用户在/root目录下。

    sudo指令

    普通用户权限,并没有最高 root 权限,如果普通用户需要使用 root 权限的时候, 通常都会在命令前面加上 sudo 。sudo是临时权限提升,以root身份来执行后面的命令

    以root用户的身份来创建文件root.txt在这里插入图片描述

    su和sudo的区别:su是身份完全转变,sudo是普通用户临时转变成root用户来执行命令,该命令执行完,仍为普通用户。

    第一次使用sudo时,发现无法使用,怎么解决?
    根本原因是用户没有加入到sudo的配置文件里,需要添加信任关系,以后再学习。
    在这里插入图片描述

    更改密码

    (1)普通用户更改自己的密码:
    在这里插入图片描述
    (2)超级用户更改普通用户的密码:
    在这里插入图片描述

    Linux权限管理

    什么是权限?一件事情是否允许被特定的人做,权限约束的是人,文件本身是具有天然的权限属性的(r,w,x),权限等于人+事物的属性。权限要么约束特定的人群,要么修改事物的属性,所以权限的操作,要么修改人,要么修改事物的属性

    文件访问者的分类(人)

    在 linux 中的每个用户必须属于一个组,不能独立于组外(用户组)。在 linux 中每个文件有所有者、所在组、其它组的概念(文件组)。

    Linux中的用户类别

    1.拥有者 owner
    2.所属组 group (为了组内协同
    3.其他 other

    在这里插入图片描述

    root和普通用户指的是具体的一个人。
    拥有者、所属组、other指的是一种角色身份。

    某一个人可能拥有这些身份中的一个或多个。

    文件类型和访问权限(事物属性)

    在这里插入图片描述

    1.文件类型

    Linux系统不以文件后缀作为区分文件类型的方式,以前缀(第一位)来区分文件类型。

    -:普通文件(文本、动/静态库、可执行程序、源程序)
    d:目录文件
    c:字符设备文件(键盘与显示器)
    b:块设备文件(磁盘)
    p:管道文件(通信)
    l:链接文件(软链接,类似Windows的快捷方式)
    s:套接字文件

    注意:gcc,g++是运行于操作系统之上的,它是以文件后缀来区分文件类型的。

    2.基本权限

    拥有者、所属组、其他人各自拥有3种权限,分别是 是否具有读权限、 是否具有写权限 、 是否具有可执行权限

    r:具有读权限
    w:具有写权限
    x:具有可执行权限
    -:不具有该权限

    读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

    写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除、移动目录内文件的权限

    执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

    在这里插入图片描述

    文件权限值的表示方法

    a)字符表示方法

    在这里插入图片描述
    b)8进制数值表示方法

    因为权限位置固定,而且权限只有两种可能,要么具有要么没有,所以权限可以表示成数字形式。
    在这里插入图片描述

    文件访问权限的相关设置方法(修改事物属性)

    chmod指令 - 控制用户对文件的权限

    功能:通过 chmod 指令,可以修改拥有者、所属组、其他组对文件或者目录的权限

    语法:chmod [选项] 权限 文件名

    常用选项
    (1)R -> 递归修改目录文件的权限
    说明:只有文件的拥有者和root才可以改变文件的权限

    普通用户只能修改自己是拥有者的文件的权限,修改别人的文件权限,要加上sudo,而超级用户root不受权限约束,可以随意修改所有文件的权限。

    chmod修改权限的方式:

    (1)使用+ 、-、= 变更权限

    语法格式

    chmod 用户表示符+/-/=权限字符   指定文件或目录

    用户表示符有如下选项

    • u:所有者
    • g:所在组
    • o:其他人
    • a:所有人(u、g、o 的总和)

    操作符+、-、=的含义:

    • +:为指定的用户类型增加权限
    • -:为指定的用户类型增加权限
    • =: 设置指定用户权限的设置,即将用户类型的所有权限重新设置

    权限字符有如下选项

    权限字符意思说明
    r设置为可读权限
    w设置为可写权限
    x 可执行权限设置为可执行权限
    X 特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
    s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
    t 粘滞位 设置粘滞位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (2)通过数字变更权限

      使用3位8进制数
      r=4 ;w=2 ;x=1 ;rwx = 4+2+1 = 7
    在这里插入图片描述

    修改文件的拥有者/所属组(修改人)

    上一小节已经学习了如何修改文件的拥有者、所属组、其他组对文件的权限,现在我们来学习如何修改文件的拥有者、所属组。

    chown指令

    功能:修改文件或目录的拥有者
    格式: chown [选项] 用户名 文件名
    常用选项
    (1)-R 如果是目录,则使其下所有子文件或目录递归生效

    在这里插入图片描述
    (1)普通用户改变文件拥有者,需要sudo切换到root用户
    在这里插入图片描述
    (2)root用户改变文件的拥有者,直接改即可
    在这里插入图片描述
    在这里插入图片描述

    chgrp指令

    功能:修改文件或目录的所属组
    格式: chgrp [选项] 用户组名 文件名
    常用选项
    (1) -R 递归修改文件或目录的所属组

    在这里插入图片描述
    注意一个小细节:如果文件拥有者是你自己,你想把文件拥有者变成别人,需要加上sudo(给别人需要别人同意)。

    如果想同时更改文件的拥有者和所属组,怎么办?使用chown指令:

    chown newowner:newgroup filename

    在这里插入图片描述

    目录的权限

    • 可读权限r :如果目录没有可读权限, 则无法用ls等命令查看目录中的子目录及文件内容.

    • 可写权限w : 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

    • 可执行权限x : 如果目录没有可执行权限, 则无法进入到目录中
      在这里插入图片描述

    如果某个目录本身对other具有w权限,other可以删掉目录下的任意文件;

    如果某个目录本身对other没有w权限,other不可以删掉任何文件。

    假如现在有一个需求:要求可以在某个目录下创建文件、删除自己的文件(你对该目录具有w权限和x权限),但是你不能删除别人的文件(你对该目录不具有w权限),这样就矛盾了,怎么办?下一小节的“粘滞位”就可以解决这个问题。

    粘滞位

    要删除一个文件,你不一定要有这个文件的写权限,但你一定要有这个文件的上一级目录的写权限。也就是说,你即使没有一个文件的写权限,但你有这个文件的上一级目录的写权限,你就可以把这个文件给删除;而如果你没有一个目录的写权限,也就不能在这个目录下创建、删除文件。

    我们只要对一个目录有w权限,即使我们不是这些文件的所有者,而且对这些文件也没有读或写权限,就可以删除这个目录下的任何文件和子目录,这样在同一个目录下,如果有多个用户建立属于自己的文件,任何只要对该目录有w权限的用户,都可以删除别人在这个目录下建立的属于自己的文件,这样做是很可怕的。但是,如何才能使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下其他人的文件呢?粘滞位就能起到这个作用。粘滞位一般只用在目录上,用在文件上起不到什么作用。

    粘滞位用t表示,设置了该位后,其它用户就不可以删除不属于他的文件和目录(root用户除外),这就对 所有用户都能写的目录下的用户文件 启到了保护作用。但是该目录下的子目录不继承该权限,要再设置才可使用。

    t权限:可以进入该目录,可以删除、修改该目录下自己的文件,不能修改删除该目录下别人的文件。

    chmod o+t 目录名

    粘滞位只能对目录设置,一般是限制other的权限,因为同一组内的用户即使有人误删了别人的代码,也可以追溯到,但是如果不限制other的权限,other误删文件,追溯不到哪个用户。对设置了粘滞位的目录,在该目录下,只能文件的拥有者可以删除,其他人不能删除(root用户可以随意删除)。

    某个用户将自己主目录的other组权限增加t权限,那么other能够看到该用户主目录下的所有文件,在该目录下可以创建、删除自己的文件,但是不能删除别人的文件。

    示例1:
    对/home/liuyan目录的other组设置t权限
    在这里插入图片描述
    在这里插入图片描述

    登录zhangsan用户,可以进入/home/liuyan目录
    在这里插入图片描述

    zhangsan用户在该目录下可以查看liuyan用户的文件,可以创建文件zhangsan.txt

    在这里插入图片描述
    zhangsan在该目录下尝试删除liuyan拥有的文件myfile.txt
    在这里插入图片描述
    没有权限进行删除。

    示例2:
    为/home目录添加t权限
    在这里插入图片描述
    zhangsan用户进入/home/liuyan目录,尝试删除liuyan拥有的文件,删除失败
    在这里插入图片描述

    在Linux系统中/tmp目录,用来存放系统产生的临时文件,权限为 “rwx(用户)rwx(用户所属组)rwx(其他)”,允许任意用户、任意程序在该目录中进行创建、删除、移动文件或子目录操作。若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将会造成多么严重的结果?所以/tmp目录的other组权限添加了粘滞位,other组设置了t权限后,该目录下的文件或子目录文件就会受到保护,每个用户可以进入这个目录,修改自己和他人的文件,也可以写入自己的文件,但是不能随便删除他人(root用户除外),只能删除自己的文件。

    在这里插入图片描述
    当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
    一、超级管理员删除
    二、该目录的所有者删除
    三、该文件的所有者删除

    umask指令

    功能:umask指令的作用是查看或修改文件的权限掩码

    权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。

    语法:umask [权限值]

    说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

    为什么系统中的文件(普通文件和目录),创建出来的权限是我们看到的样子?

    默认权限
    新建文件默认权限:666
    新建目录默认权限:777

    但实际上你所创建的文件和目录,看到的权限往往不是上面这个默认值。原因就是创建文件或目录的时候还要受到权限掩码umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask(权限掩码按位取反,然后和默认掩码按位与)

    示例1:

    查看权限掩码
    在这里插入图片描述
    在这里插入图片描述
    示例2:

    计算目录实际权限值
    在这里插入图片描述
    计算普通文件实际权限值
    在这里插入图片描述

    示例3:

    设置权限掩码
    在这里插入图片描述
    设置的权限掩码只在本次登录有效,如果想让修改的权限掩码全局有效,就需要改配置文件,文件持久化,但是不建议这样做!

    展开全文
  • Linux用户组用户权限

    千次阅读 2018-07-03 11:44:02
    一、用户组:在linux中每个用户必须属于一个,每个用户组其实就是多个用户的一个集合!1、添加用户组-->groupadd -g 666 group_name;(-g GID 说白了就是用户组的id)2、删除用户组-->groupdel ...

    一、用户组:在linux中每个用户必须属于一个组,每个用户组其实就是多个用户的一个集合!

    1、添加用户组-->groupadd -g 666 group_name;(-g  GID 说白了就是用户组的id)

    2、删除用户组-->groupdel  group_name;~命令 +组名

    3、修改用户组-->groupmod  -g  888 group_name;(修改组id ~密令  -g  +newId  +组名)

                           -->groupmod -n group_name2   group_name1(修改组名称 ~密令 -n +newName  oldName )

    4、查看用户组 cat /etc/group  --可以显示所有用户组和用户组Id;

    5、我们如何去查看当前的登录用户和用户所属的组?

    密令~whoami:查看登录的用户名

              groups:查看当前登录的用户属于哪个用户组

                cat /etc/passwd | grep 用户组名  或者   cat /etc/passwd | grep 用户名:查看对应用户组或用户的相信信息;

    二、权限

        1、文件权限


    如图所示,权限总共10位数字详解如下:

    第一位代表的是文件的类型:
        d  目录文件。
        l  符号链接(指向另一个文件,类似于瘟下的快捷方式)。
        s  套接字文件。
        b  块设备文件,二进制文件。
        c  字符设备文件。
        p  命名管道文件。

        -  代表普通文件

    除去第一位的字母:
        前三位代表的是:文件所拥有者对此文件的权限
        中间三位代表的是:当前用户所属的组对此文件的权限
        后三位代表的是:其他用户组对此文件的权限

    r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
    w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
    x(Execute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

    2、修改权限

    (1)、 r w x对应关系分别是------------2^2   2^1   2^0

              r : 4

              w : 2

               x : 1

    (2)、修改权限方法一:

        命令:chmod  765 file.txt;~~~给文件file.txt赋予rwx rw- r-x  ; 

        对应关系是这样的:rwx=7  rw-=6  r-x=5。

    (3)、修改权限方法二:

        u:用户权限
        g:组权限
        o:不同组其他用户权限
        r,w,x~读 、写 、执行。
        +:加入
        -:除去

        =:设置

        命令:chmod u+x file.txt ; ~~~对文件file.txt加(u:user)用户权限 x~执行;


    注:亲演如下


    展开全文
  • linux用户用户组权限

    千次阅读 2020-07-16 11:00:06
    Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录一个系统执行各自不同的任务,而互不影响。 root :系统维护 www:网页修改 ...

    Linux常规操纵 : 多用户操作

    1.1 linux的用户与用户组理论

    1.1.1 概述

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

            root :系统维护

            www:网页修改

            ftp:文件上传

            mysql:SQL查询

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

     

    1.1.2 linux的用户分类

    1. root 用户(linux的超级管理员)

    拥有最高权限,可以登录系统,进行任何操作。

    2. 虚拟用户(某项技术运行期间需要的用户)

    这类用户也被称为伪用户或假用户,以与真实用户区分开来。这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的,而非后来添加的。

    3. 普通真实用户(我们可以操作的)

    这类用户等登录系统,权限有限,由管理员添加。

    注意 :  linux是区分用户进行各种操作的,也就是说如果你想做任何操作都是必须先登录某个用户才可以做相关的操作,所以我们想要操作linux必须有自己的用户!

    那怎么创建用户呢?

    1.1.3 linux的用户组

    Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

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

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

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

    另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。

    说白了用户组就是对linux中同一类对象进行统一管理一种技术手段,将同一类用户放到一个组中去,封装成一个更大的整体;

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

     

    1.1.4 用户与组的关系

    用户和用户组的对应关系有:一对一、一对多、多对一和多对多;下图展示了这种关系:

            

    一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。

    一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。

    多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。

    多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

     

    1.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. 组信息的查询

    执行 : 

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

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

    组名:口令:组标识号:组内用户列表

    具体解释:

    组名:

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

    口令:

        口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*,有口令默认是x。

        因为涉及到对组的管理所以linux的组也是有自己的密码的

    组标识号 主键ID(可以重复的):

        组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.

    组内用户列表:

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

     

    2. 组密码的查询

    执行

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

    由冒号(:)隔开若干个字段,这些字段具体如下:

    用户组名:用户组密码:用户组管理者:支持的账号名称

    具体解释:

    用户组名:

            是用户组的名称,由字母或数字构成。

    用户组密码:

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

    用户组管理者:

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

    组成员:

    如果有多个成员,用,号分割。

    当你每次创建的时候 为了保证这个账户归属某个组 所以 创建一个账户的同时 / 创建一个与用户同名的组

    root 账户 root组

     

    1.2.1.2 GC 添加组

    groupadd

    语法 : 

    groupadd [选项] 组名

    命令功能:

    添加群组。

    选项和参数:

    -g GID:后面接某个特定的 GID ,用来直接给予某个GID;

    -h :显示此帮助信息并推出

    -r :创建一个系统群组。

    -o :允许创建有重复 GID 的组

     

    实例:

    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 关键词的那行查询出来;

     

    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:

    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;

    1.2.1.3 GU 修改组

    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:GID “996”已经存在
    [root@localhost ~]# groupmod -g 997 -n sysug1 sysop2
    groupmod:GID “997”已经存在
    [root@localhost ~]# groupmod -g 998 -n sysug1 sysop2
    groupmod:GID “998”已经存在
    [root@localhost ~]# groupmod -g 999 -n sysug1 sysop2
    groupmod:GID “999”已经存在
    [root@localhost ~]# groupmod -g 994 -n sysug1 sysop2

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

    1.2.1.4 GD 删除用户组

    groupdel

    命令格式:

    groupdel 组名

    命令功能:

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

    实例:

    删除群组名为 sysop1 sysug1 的群组和 

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

     

    1.2.2 Linux用户的CURD操作

    1.2.2.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年到现在的天数),如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

    1.2.2.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

    实例

    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 参数

    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:

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

    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)创建一个系统账户

    [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:
    

    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 5月  30 16:47 user1
    drwx------. 2 nologinuser3 nologinuser3 62 5月  30 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权限呢? 不着急我们一会再说,此处我们主要还是针对用户操作;

    useradd user1

    1.2.2.3 UU 用户修改

    usermod

    命令格式:

    usermod [选项] 使用者账号名
    

    命令功能:

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

    选项和参数:

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

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

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

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

    -h:显示帮助信息;

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

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

    -u UID:修改用户ID;

    实例:

    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

    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
    

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

    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

    4)修改用户的登录密码

    passwd

    命令格式:

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

    命令功能:

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

    root用户可以设置及修改其他用户的密码,普通修改自己的密码。

    选项:

    -d:删除密码,仅有系统管理者才能使用; 

    -f :强制执行; 

    实例:

    因为useradd的用户并没密码可以通过此命令进行设置

    1) 修改管理员密码

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

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

    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 5月  30 12:25 bin -> usr/bin
    dr-xr-xr-x.   5 root root 4096 5月  30 12:28 boot
    drwxr-xr-x.  20 root root 3220 5月  30 12:29 dev
    drwxr-xr-x.  74 root root 8192 5月  30 17:14 etc
    drwxr-xr-x.   7 root root   71 5月  30 16:36 home
    lrwxrwxrwx.   1 root root    7 5月  30 12:25 lib -> usr/lib
    lrwxrwxrwx.   1 root root    9 5月  30 12:25 lib64 -> usr/lib64
    drwxr-xr-x.   2 root root    6 4月  11 2018 media
    drwxr-xr-x.   2 root root    6 4月  11 2018 mnt
    drwxr-xr-x.   2 root root    6 4月  11 2018 opt
    dr-xr-xr-x. 112 root root    0 5月  30 12:29 proc
    dr-xr-x---.   2 root root  114 5月  30 12:28 root
    drwxr-xr-x.  23 root root  720 5月  30 12:29 run
    lrwxrwxrwx.   1 root root    8 5月  30 12:25 sbin -> usr/sbin
    drwxr-xr-x.   2 root root    6 4月  11 2018 srv
    dr-xr-xr-x.  13 root root    0 5月  30 12:29 sys
    drwxrwxrwt.   8 root root  211 5月  30 14:05 tmp
    drwxr-xr-x.   4 root root   32 5月  30 16:47 userhome
    drwxr-xr-x.  13 root root  155 5月  30 12:25 usr
    drwxr-xr-x.  19 root root  267 5月  30 12:29 var
    -bash-4.2$ su - root
    密码:
    上一次登录:四 5月 30 12:31:03 CST 2019从 192.168.92.1pts/0 上
    

    用户自己改密码

    -bash-4.2$ passwd
    更改用户 userop1 的密码 。
    为 userop1 更改 STRESS 密码。
    (当前)UNIX 密码:
    新的 密码:
    重新输入新的 密码:
    抱歉,密码不匹配。
    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

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

    1. 先输入当前密码验证

    2. 新密码要求由数字和字母组成长度要大于8位

    3. 密码中要包含大小写字母

    所以自己修改密码的时候还是要花费一定经历的

     

    1.2.2.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没有回退功能,所以删除了就是删除了,就再也找不回来了!

     

    1.2.3 Linux群组管理员功能

    gpasswd

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

    命令格式:

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

    命令功能:

    管理群组。

    选项:

    -a 用户:添加用户到组; 

    -d 用户:从组删除用户; 

    -A 用户:指定管理员; 

    -h:帮助信息;

    -r:删除密码; 

    实例:

    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

    1.3 linux的用户相关命令

    1.3.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
    上一次登录:四 5月 30 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
    上一次登录:四 5月 30 17:49:57 CST 2019pts/0 上
    [root@localhost ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

     

     

     

     

     

     

    展开全文
  • Top1 用户账户管理1.1 问题Windows Server 2008是典型的多用户、多任务系统,为实现对资源访问的...3.通过内置使用户tom有权限修改IP地址、使用户jack具有管理员权限。1.2 方案1.3 实现1.创建本地账号g...
  • linux用户组权限

    千次阅读 2021-05-09 03:58:12
    我们要想访问到系统资源,就需要以某个user身份登录进系统,这个user身份在系统中具有唯一标识符(UID),在访问某个文件资源的时候,...用户分类:管理员root,UID为0普通用户:UID范围1-65536系统用户:UID范围1-49...
  • linux 赋予普通用户管理员权限

    千次阅读 2021-05-09 03:08:13
    在Linux系统中,管理员往往不止一人,若每位管理员都用root身份进行管理工作,根本无法弄清楚谁该做什么。...一般的做法是利用权限的设置,依工作性质分类,让特殊身份的用户成为一个工作,并设置工作组权限...
  • 和属主同组用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的周详信息时,最左边的一列为文件的访问权限。 例一:$ ls -l sobsrc. tgz -rw-r–r– 1 root root 483997 ...
  • Windows用户组管理权限基础概述

    千次阅读 2019-07-11 22:05:52
    2、用户管理创建用户、为用户重置密码、重命名用户、启用、禁用用户帐户删除用户帐户(删除用户后再创建同名密用户也不具有以前用户的权限,因为SID安全标识符不同) 二、内置用户帐户用于特殊用途,一般不需更改...
  • linux修改文件权限用户组管理小结

    千次阅读 2021-05-10 20:54:51
    如何在linux下修改组权限chmod g+r path/file 加读权限 当前目录chmod -R g+r path/file 加读权限 当前目录以及子目录g-r 减读权限g+w 加写权限g-wg+x 加执行权限g-x经常会用到的命令,记一下。1.chgrp修改文件所属...
  • 普通用户chilllyn和tom同属testgroup,且两个人同时把各自的用户文件夹组权限设置成为了rwx,这时,tom尝试进入chilllyn的文件夹,被提示"Permission denied"。 接下来,我们再来仔细看: 虽然chilllyn和tom两人...
  • 创建和管理本地用户帐户和,启动或停止默认情况下不启动的服务,但不可访问NTFS分区上属于其他用户的私有文件.2:受限用户用户可操作计算机并保存文档,但不可以安装程序或进行可能对系统文件和设置有潜在的破坏性的...
  • Linux基础知识--4.LInux用户用户组以及权限管理一.Linux用户用户组Linux操作系统是一个多用户、多任务的操作系统。有时可能多个用户在linux系统上操作一个任务,有时可能完成多个任务。用户的主要作用就是完成...
  • 1、先以管理员身份创建两个测试用户:test001,test002。 [root@cent home]# useradd test001 [root@cent home]# useradd test002 移动到/home文件夹下用# ll命令查看,是否有与新建用户对应的同名文件夹 ...
  • Linux/CentOS用户用户组权限管理

    千次阅读 2018-08-20 18:04:48
    linux是一个多任务(multi-task)多用户(multi-user)的操作系统,每个用户用户组都有自己的ID号UID GID,每个用户都有自己的家目录不能随意访问其他用户的家目录,管理员root除外。  用户的分类:(以centos7.x...
  • 主要介绍了复杂系统中的用户权限数据库设计解决方案,针对大型、复杂的B/S系统,需要的朋友可以参考下
  • Linux用户组权限管理

    万次阅读 2021-08-05 16:37:40
    用户基本概念(1)用户(2)用户组(3)用户的关系(4)安全上下文 1.前言   Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的...
  • 先来个简单完整的创建用户并授权读写权限流程: #1,创建用户: useradd 用户名 useradd xiaoming #2,给用户设置密码: passwd 用户名 passwd xiaoming #3,创建文件夹: mkdir 文件夹名 mkdir /tomcat7 #4,创建...
  • Linux用户组共享权限

    千次阅读 2022-03-12 19:35:50
    首先要明确一点,当你执行ls -l指令时,输出的内容都有啥 ... 如以上的输出,分别是文件属性(文件类型,以及所有者、所在、其他...可以通过设置用户组权限来实现,结社这两个用户用户组分别是groupA,groupB。 使用现
  • 文章目录首先我们先创建一个用户查看用户群组使用root用户查看...当其他用户没有执行权的时候是进入不了目录工作的下来测试同组没有执行权返回root用户修改权限learn只有可读,没有执行权限,然后切换到test用户访问...
  • 用户管理命令1.1 useradd 添加新用户并在home目录下创建对应用户的目录1.2 passwd 设置用户密码1.3 id 查看用户是否存在1.4 cat /etc/passwd 查看创建的用户1.5 su 切换用户1.6 userdel 删除用户1.7 who 查看登录...
  • 群晖NAS用户用户组权限讲解

    万次阅读 多人点赞 2020-12-25 15:19:34
    很多朋友初次使用群晖,会被他的用户用户组所弄晕,更别说他的权限分配,完全感觉摸不着头脑。 说起用户用户组,其实我们已经不知觉就接触很多了,比如Windows系统,我们默认的账户就是administrator,而默认的...
  • 3 查看组用户的配置信息 id whowhoami w 4 用户的 附加组 和 主组 以及修改 usermod 5 切换用户 su 篇二 文件与目录权限篇 0 预备知识 1 修改文件目录的拥有者和所属组 chown chgrp 2 修改文件目录的权限 chmod
  • Linux用户权限管理

    千次阅读 2022-03-14 11:24:05
    root用户,系统管理员权限最大。 普通用户。 每个用户都有一个ID号,称为UID,操作系统通过UID识别用户。 文件/etc/passwd中有用户相关信息。 下面jym用户后面有1000:1000,分别是用户的ID和用户的GID(用户组...
  • EduCoder Linux文件/目录高级管理

    千次阅读 2021-06-08 13:17:40
    Linux 系统中的每个文件和目录都有访问许可权限,用它来确定谁能通过何种方式对文件和目录进行访问和操作。 文件的访问权限分为只读,只写和可执行...有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组
  • Linux学习(四)组管理权限管理

    千次阅读 2022-02-01 22:15:03
    1,一个文件对于不同的用户应该有不同的操作权限,linux分别在文件所有者用户,文件所在组用户,其他组用户这三类用户中设置文件的不同权限,实现每一类的权限不同。下面看看这三类的含义: 1)文件所有者:默认是...
  • 对不同用户访问一个文件的权限做出的不同的规定。 文件属性 如上图 ll命令查看查看目录下文件时,前面【drwxr-xr-x. 2 root root】就是文件的属性以及文件所属用户。 文件属性解释 Linux文件属性的第一个...
  • 2.我的电脑右键-管理-计算机管理-本地用户用户:更改管理员用户名3.手动设置IP,将ip设置在一个网段,子网掩码和DNS解析相同4.如何设置DNS解析:首先你可以使用自动获取,然后在开始-运行里面输入cmd后...
  • 2、用户管理: 角色中再分配权限,在角色的成员中加入用户。用户最终的权限取角色权限和用户权限的集合。 3、角色管理: 一组权限的集合,根据权限的大小可以定义多个。 4、模块管理: 菜单功能的管理,可以是系统中...
  • linux用户权限管理

    千次阅读 2021-05-10 03:56:12
    为了实现资源分派(系统管理员的权利)及出于安全的考虑,必须对用户进行不同权限的分配。用户组便于更高效地管理用户权限用户操作Linux需要经过三个步骤的权限认证:Authentication:认证Authorization:授权Audit....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 353,363
精华内容 141,345
关键字:

同组用户权限