用户组

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

私有组

一般来说,每一个用户都有自己的一个初始组,指的是与用户同名、同 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. 【Java SE进阶】Day01 Object类、日期时间类、System类、StringBuilder类、包装类

    一.Object类 1.概述:Java语言的根类/超类,默认继承自Object类 2.常用方法 toString():返回对象的字符串表示--对象类型@内存地址值 可以对其重写@Override eq ...

  2. MongoDB数据库与Python的交互

    一.缘由 这是之前学习的时候写下的基础代码,包含着MongDB数据库和Python交互的基本操作. 二.代码实现 import pymongo #连接数据库 client=pymongo.MongoC ...

  3. MySQL事务(四大特性)-存储过程

    目录 一:事务 1.四大特性(ACID) 2.事物存在的必要性(真实比喻) 3.如何使用事务 4.开启事务-回滚-确认 二:事务案例实战 1.模拟消费 2.创建 3.插入数据 4.开启事务 5.修改操 ...

  4. Jmeter 之随机控制器与随机顺序控制器

    一.随机控制器 随机控制器相当于python 中的 random.choice(),随机选取其中的一个取样器(业务执行) 实例中随机运行了其中的一个请求 二.随机顺序控制器 随机顺序控制器相当于pyt ...

  5. python安装过程

    1.在官网下载,点击进入安装包. 2.把Add勾上,会自动配置环境变量. 3,这些是要下载的东西,要全部勾上. 4.这里特别注意路径,把路径改成自己想放的盘里面. 5.配置环境变量,在此电脑搜索 编辑 ...

  6. 1、debug调试

    Debug断点调试: Debug调试界面图: 利用Debug功能来追踪代码的运行流程,分析与定位异常发生的位置,观察运行中数据的变化. 1.Step Over(F8):进入下一步,如果当前行断点是一个 ...

  7. 模型驱动设计的构造块(下)——DDD

    3. 领域对象的生命周期 每个对象都有生命周期,如下图所示.对象自创建后,可能会经历各种不同的状态,直至最终消亡--要么存档,要么删除.当然很多对象是简单的临时对象,仅通过调用构造函数来创建,用来做一 ...

  8. Asp-Net-Core权限认证

    title: Asp.Net Core权限认证 date: 2022-10-27 16:17:52 tags: - .NET 翻了很多的博客,文档,发现asp.net core自带的权限认证还是比较复 ...

  9. ABC193F Engines

    简要题意 给出 \(n\) 个向量,求其子集的和的最大模长. \(1 \leq n \leq 100\) 思路 先说结论:选出的几个向量,一定是极角排序后的某一段(环形)区间. 这个不难感性理解,比如 ...

  10. 03-逻辑综合工具 - Design Compiler

    逻辑综合工具DC IC设计流程,市场-->制定spec-->RTL(同时进行sim,通过alint检查RTL有没有错误)-->systhesis(逻辑综合)-->PR(STA) ...