用户组

群组是大家都熟悉的东西,群组有群主,也就是创建者。群管理员有一定的管理权限,比如上传群文件、管理成员等权限;群成员也有一定的权限,比如下载群文件。

私有组

一般来说,每一个用户都有自己的一个初始组,指的是与用户同名、同 ID 的一个用户组,称之为某用户的私有组。在 Linux 中,用户都不是独立存在的,总是有一个与之绑定的私有组(初始组)。

属主和属组

一个文件(目录)都有它的所属权,通过ls -l命令可以查看某目录下的属主、属组两个字段。

monitor@ubuntu:/tmp$ ls -l
total 1
drwxr-x--- 2 teacher teacher 4096 10月 7 17:31 class-work

一般来说,属主有对这个文件的所有权。按照从左到右的顺序:

  1. teacher:文件的属主,也就是它的创建者、所属者。
  2. teacher:文件的属组,也就是它属于的用户组。

属主和属组要结合文件的权限字符drwxr-x---,它说明了属主有什么权限,属组有什么权限,以及其他人有什么权限:

  1. 属主:有读、写、执行权限;
  2. 属组:有读、执行权限;
  3. 其他人:没有权限。

属于 teacher 用户组的成员拥有查看该目录的权限,不属于该用户组下的用户就没有任何权限。group 文件,组与组成员的信息:

teacher:x:1001:monitor
monitor:x:1002:student
student:x:1003:

当前登入的用户是 monitor,monitor 属于 teacher 用户组的成员。所以,teacher、monitor 用户都可以访问该目录。值得注意的是 student 属于 monitor 用户组的成员,但 student 不能访问该目录,因为只能直接继承用户组的权限,而不能间接继承用户组的权限:teacher <= monitor <≠ student

student 可以有 monitor 的权限,也就是说,除非 class-work 的属组修改为 monitor,否则 student 永远都是“其他人”范畴,也就没有任何权限。

注意:更改权限之后,记得重新开一个终端,否则不起效果。

读懂文件的权限

在上面已经提到了这种权限的符号,它由三个部分组成:rwx、r-x、r-x,分别表示属主、属组和其他人。r、w、x 是 read、write、execute 的简写形式,而最前面的 d 字母代表的是该文件的类型,d 表示目录(注意:目录也是文件,一切皆文件):

表1:文件类型以及符号

文件类型 符号 文件类型 符号
普通文件 - 本地域套接口 s
目录 d 有名管道 p
字符设备文件 c 符号链接 l
块设备文件 b

表2:ls -l 列出的信息对照表

列数 内容 描述
1 drwxr-xr-x 文件权限
2 2 文件硬链接数
3 zrf 文件或目录所属者,即属主
4 zrf 文件或目录所属的组,即属组
5 4096 占用的存储空间,单位字节(KB)
6 9月30 最后创建或修改的时间
7 2022 最后创建或修改的时间
8 Desktop 文件或目录名

八进制的文件权限

虽然已经有了如上的文件权限的字符串表示形式,但在实际运用中是以八进制来表示文件的权限的。先通过二进制来理解文件的权限,例如:rwx 代表 111、-wx 代表 011、--x 代表 001,依次类推。111 已经是权限的最大二进制数了,二进制对应的八进制如下表格:

表3:八进制、二进制、文件权限的对应关系

八进制 二进制 权限 八进制 二进制 权限
0 000 --- 4 100 r--
1 001 --x 5 101 r-x
2 010 -w- 6 110 rw-
3 011 -wx 7 111 rwx

其实,不需要记住上面这些数字的排列组合。在实际使用中,只要记住 1 代表 x,2 代表 w,4 代表 r,简单地做加法就可以了。例如:rwx = 4+2+1=7、r-x=4+0+1=5、--x=0+0+1=1,相连起来 751 就是这个目录的权限。

更新文件的权限

更新文件的权限通过chmod指令,以下是两种修改文件权限的方式。根据自己的喜好选择,我推荐使用第一种方式来修改,因为是最简单和最直观的。

修改方式一

更新文件权限最直观、最简单的就是通过权限的字符,即 r、w、x。属主、属组、其他人、所有人分别用 u、g、o、a 来表示。

1️⃣ 修改目录的属组权限为 r、x,其他人为 ---:

zrf@ubuntu:/tmp$ ls -l
total 1
d--------- 2 teacher monitor 4096 10月 20 18:11 class-work
zrf@ubuntu:/tmp$ sudo chmod g=rx,o=- class-work/
zrf@ubuntu:/tmp$ ls -l
total 1
d---r-x--- 2 teacher monitor 4096 10月 20 18:11 class-work

2️⃣ 修改目录的属主和属组的权限为 r、w、x:

zrf@ubuntu:/tmp$ sudo chmod ug=rwx class-work
zrf@ubuntu:/tmp$ ls -l
total 1
drwxrwx--- 2 teacher monitor 4096 10月 20 18:11 class-work

3️⃣ 删除属组的 w 权限,添加就用符号+,删除就用符号-

zrf@ubuntu:/tmp$ sudo chmod g-x class-work
zrf@ubuntu:/tmp$ ls -l
total 1
drwxrw-r-x 2 teacher monitor 4096 10月 20 18:11 class-work

修改方式二

这种方式修改文件的权限是通过八进制来修改的,比如,750 代表 rwxr-x---。上面说的“八进制的文件权限”。

把 class-work 目录的权限修改为:rwxr-xr-x。rwx = 4+2+1=7、r-x=4+0+1=5、r-x=4+0+1=5,相连起来 755 就是这个目录的权限:

zrf@ubuntu:/tmp$ sudo chmod 755 class-work
zrf@ubuntu:/tmp$ ls -l
total 1
drwxr-xr-x 2 teacher monitor 4096 10月 20 18:11 class-work

更新文件的所属

通过chown指令可以改变文件的属主和属组,:的左边是属主,右边是属组:

zrf@ubuntu:/tmp$ ls -l
total 2
drwxr-x--- 2 teacher monitor 4096 10月 7 17:31 class-work
drwxrwxr-x 2 monitor monitor 4096 10月 7 21:48 monitor-work
zrf@ubuntu:/tmp$ sudo chown teacher:teacher class-work/
zrf@ubuntu:/tmp$ ls -l
total 2
drwxr-x--- 2 teacher teacher 4096 10月 7 17:31 class-work
drwxrwxr-x 2 monitor monitor 4096 10月 7 21:48 monitor-work

用户组成员管理

usermod

用户组 GroupB 添加用户 UserA:

sudo usermod -G GroupB UserA
sudo cat /etc/group | grep UserA
GroupB:x:1000:UserA

gpasswd

用户组 GroupB 添加用户 UserA:

sudo gpasswd -a UserA GroupB
sudo cat /etc/group | grep UserA
GroupB:x:1000:UserA

用户组 GroupB 删除用户 UserA:

sudo gpasswd -d UserA GroupB
sudo cat /etc/group | grep GroupB
GroupB:x:1000:

Linux 用户组管理的更多相关文章

  1. linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解

    linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...

  2. Linux用户组管理及用户权限2

    用户.组和权限管理    Multi-tasks,Multi-Users,多任务,多用户的计算机    每个使用者:        用户标识.密码:            Authentication ...

  3. Linux用户组管理

    用户组信息存放:/etc/group 当组内只有一个用户,并且用户名和用户组名一致时默认不显示:组号1-499是系统预留的用户组,>=500的用户组是管理员手动创建的,组密码占位符用x表示   ...

  4. Linux用户组管理及用户权限4

    权限管理:    ls -l        rwxrwxrwx:            左三位:定义user(owner)的权限            中三位:定义group的权限           ...

  5. Linux用户组管理及用户权限3

    用户.组管理命令 安全上下文:        进程以其发起者的身份运行:            进程对文件的访问权限,取决于发此进程的用户的权限 系统用户:为了能够让那些后台进程或服务类进程以非管理员 ...

  6. Linux 用户组管理命令

    groupadd 组名,可以添加用户组 groupmod -n 新组名 老组名,可以修改组名 groupdel 组名,可以删除组(组中不能有初始用户存在,附加用户无所谓) gpasswd -a 用户名 ...

  7. Linux用户组管理及用户权限1

    bash的基础特性:    globbing:文件名通配(整体文件名匹配,而非部分)        匹配模式:元字符            *:匹配任意长度的任意字符                例 ...

  8. Linux常用命令学习8---(用户和用户组管理)

    1.用户和用户组     用户和用户组概念        用户:使用操作系统的人(Linux支持多个用户在同一时间登陆同一个操作系统)        用户组:具有相同权限的一组用户(Linux系统中可 ...

  9. Linux 用户和用户组管理

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  10. Linux学习笔记(12)用户和用户组管理

    越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范.在Linux中主要是通过用户配置文件来查看和修改用户信息. 1 用户信息文件 (1)用户信息文件/etc/passw ...

随机推荐

  1. 20W,PD快充协议芯片,带有PPS控制器的USB-PD3.0

    JD6621是高度集成的USB供电(PD)控制器,支持USB PD 3.0 ,该USB PD 3.0 具有针对USB Type-C下游接口(源)设计的可编程电源( PPS)规范. 它监视CC引脚以检测 ...

  2. 单一接口优化过程全记录(主要涉及Redis)

    接口优化过程记录 问题背景 某个接口耗时长(247ms),但里面逻辑不算复杂,只进行了简单的对象引用以及操作了多次Redis 步骤1:链路追踪,确定业务耗时点 接口里通过链路追踪以及日志查询发现主要是 ...

  3. intel Pin:动态二进制插桩的安装和使用,以及如何开发一个自己的Pintool

    先贴几个你可能用得上的链接 intel Pin的官方介绍Pin: Pin 3.21 User Guide (intel.com) intel Pin的API文档Pin: API Reference ( ...

  4. 痞子衡嵌入式:国内外串行NOR Flash厂商官网Cross Reference功能使用体验

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是国内外串行NOR Flash厂商官网Cross Reference功能. 串行 NOR Flash 是一个相对发展稳定的市场,目前全球市场 ...

  5. Hexo+Gitee免费搭建静态博客

    前言 这是一篇利用 Gitte Pages + hexo 搭建属于自己博客的教程,也是自己这个博客搭建好以后的第一篇文章,搭建的过程中也参考了各路大佬的文章,期间遇到了一些问题,所以写这一篇文章即是记 ...

  6. 《MySQL必知必会》之快速入门游标和触发器

    第二十四章 使用游标 本章将介绍什么是游标以及如何使用游标 游标 之前的select语句检索出来的数据,没有办法得到第一行或者下一行 有时,需要在检索出来的行中前进或后退一行或多行.这就是使用游标的原 ...

  7. 同步与异步 multiprocessing 进程对象多种方法

    目录 同步与异步 阻塞与非阻塞 综合使用 创建进程的多种方式 前言 windows系统创建进程的问题(重要) multiprocessing模块之Process 展现异步 创建进程的方式(一):使用P ...

  8. Windows11家庭中文版——启用或关闭Windows功能中找不到hyper解决方法

    Windows11家庭中文版找不到hyper解决方法: 1.将如下代码添加到记事本中,并另存为[Hyper-V.bat]文件,代码如下: pushd "%~dp0" dir /b ...

  9. Jmeter 之 switch 控制器

    switch 控制器作用: switch 控制器起到了分流作用,具体应用在并发时,一部分用户执行某个场景,一部分用户执行另外一种场景,就像吞吐量控制器进行分流操作 switch 控制器字段介绍: 实例 ...

  10. 用了这么多年的 SpringBoot 你知道什么是 SpringBoot 的 Web 类型推断吗?

    用了这么多年的 SpringBoot 那么你知道什么是 SpringBoot 的 web 类型推断吗? 估计很多小伙伴都不知道,毕竟平时开发做项目的时候做的都是普通的 web 项目并不需要什么特别的了 ...