Linux 用户组管理
用户组
群组是大家都熟悉的东西,群组有群主,也就是创建者。群管理员有一定的管理权限,比如上传群文件、管理成员等权限;群成员也有一定的权限,比如下载群文件。
私有组
一般来说,每一个用户都有自己的一个初始组,指的是与用户同名、同 ID 的一个用户组,称之为某用户的私有组。在 Linux 中,用户都不是独立存在的,总是有一个与之绑定的私有组(初始组)。
属主和属组
一个文件(目录)都有它的所属权,通过ls -l命令可以查看某目录下的属主、属组两个字段。
monitor@ubuntu:/tmp$ ls -l
total 1
drwxr-x--- 2 teacher teacher 4096 10月 7 17:31 class-work
一般来说,属主有对这个文件的所有权。按照从左到右的顺序:
- teacher:文件的属主,也就是它的创建者、所属者。
- teacher:文件的属组,也就是它属于的用户组。
属主和属组要结合文件的权限字符drwxr-x---,它说明了属主有什么权限,属组有什么权限,以及其他人有什么权限:
- 属主:有读、写、执行权限;
- 属组:有读、执行权限;
- 其他人:没有权限。
属于 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 用户组管理的更多相关文章
- linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解
linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...
- Linux用户组管理及用户权限2
用户.组和权限管理 Multi-tasks,Multi-Users,多任务,多用户的计算机 每个使用者: 用户标识.密码: Authentication ...
- Linux用户组管理
用户组信息存放:/etc/group 当组内只有一个用户,并且用户名和用户组名一致时默认不显示:组号1-499是系统预留的用户组,>=500的用户组是管理员手动创建的,组密码占位符用x表示 ...
- Linux用户组管理及用户权限4
权限管理: ls -l rwxrwxrwx: 左三位:定义user(owner)的权限 中三位:定义group的权限 ...
- Linux用户组管理及用户权限3
用户.组管理命令 安全上下文: 进程以其发起者的身份运行: 进程对文件的访问权限,取决于发此进程的用户的权限 系统用户:为了能够让那些后台进程或服务类进程以非管理员 ...
- Linux 用户组管理命令
groupadd 组名,可以添加用户组 groupmod -n 新组名 老组名,可以修改组名 groupdel 组名,可以删除组(组中不能有初始用户存在,附加用户无所谓) gpasswd -a 用户名 ...
- Linux用户组管理及用户权限1
bash的基础特性: globbing:文件名通配(整体文件名匹配,而非部分) 匹配模式:元字符 *:匹配任意长度的任意字符 例 ...
- Linux常用命令学习8---(用户和用户组管理)
1.用户和用户组 用户和用户组概念 用户:使用操作系统的人(Linux支持多个用户在同一时间登陆同一个操作系统) 用户组:具有相同权限的一组用户(Linux系统中可 ...
- Linux 用户和用户组管理
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...
- Linux学习笔记(12)用户和用户组管理
越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范.在Linux中主要是通过用户配置文件来查看和修改用户信息. 1 用户信息文件 (1)用户信息文件/etc/passw ...
随机推荐
- 20W,PD快充协议芯片,带有PPS控制器的USB-PD3.0
JD6621是高度集成的USB供电(PD)控制器,支持USB PD 3.0 ,该USB PD 3.0 具有针对USB Type-C下游接口(源)设计的可编程电源( PPS)规范. 它监视CC引脚以检测 ...
- 单一接口优化过程全记录(主要涉及Redis)
接口优化过程记录 问题背景 某个接口耗时长(247ms),但里面逻辑不算复杂,只进行了简单的对象引用以及操作了多次Redis 步骤1:链路追踪,确定业务耗时点 接口里通过链路追踪以及日志查询发现主要是 ...
- intel Pin:动态二进制插桩的安装和使用,以及如何开发一个自己的Pintool
先贴几个你可能用得上的链接 intel Pin的官方介绍Pin: Pin 3.21 User Guide (intel.com) intel Pin的API文档Pin: API Reference ( ...
- 痞子衡嵌入式:国内外串行NOR Flash厂商官网Cross Reference功能使用体验
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是国内外串行NOR Flash厂商官网Cross Reference功能. 串行 NOR Flash 是一个相对发展稳定的市场,目前全球市场 ...
- Hexo+Gitee免费搭建静态博客
前言 这是一篇利用 Gitte Pages + hexo 搭建属于自己博客的教程,也是自己这个博客搭建好以后的第一篇文章,搭建的过程中也参考了各路大佬的文章,期间遇到了一些问题,所以写这一篇文章即是记 ...
- 《MySQL必知必会》之快速入门游标和触发器
第二十四章 使用游标 本章将介绍什么是游标以及如何使用游标 游标 之前的select语句检索出来的数据,没有办法得到第一行或者下一行 有时,需要在检索出来的行中前进或后退一行或多行.这就是使用游标的原 ...
- 同步与异步 multiprocessing 进程对象多种方法
目录 同步与异步 阻塞与非阻塞 综合使用 创建进程的多种方式 前言 windows系统创建进程的问题(重要) multiprocessing模块之Process 展现异步 创建进程的方式(一):使用P ...
- Windows11家庭中文版——启用或关闭Windows功能中找不到hyper解决方法
Windows11家庭中文版找不到hyper解决方法: 1.将如下代码添加到记事本中,并另存为[Hyper-V.bat]文件,代码如下: pushd "%~dp0" dir /b ...
- Jmeter 之 switch 控制器
switch 控制器作用: switch 控制器起到了分流作用,具体应用在并发时,一部分用户执行某个场景,一部分用户执行另外一种场景,就像吞吐量控制器进行分流操作 switch 控制器字段介绍: 实例 ...
- 用了这么多年的 SpringBoot 你知道什么是 SpringBoot 的 Web 类型推断吗?
用了这么多年的 SpringBoot 那么你知道什么是 SpringBoot 的 web 类型推断吗? 估计很多小伙伴都不知道,毕竟平时开发做项目的时候做的都是普通的 web 项目并不需要什么特别的了 ...