Linux 允许不同的用户同时登录主机,同时使用主机的资源。Linux通过规划不同类型、不同层级的用户,并公平地分配系统资源与工作环境。
用户 & 用户组
不同用户对不同文件所拥有的权限应该不尽相同。Linux以 “用户与用户组” 的概念,建立用户与文件权限关系,保障 Linux 作为多用户系统的可行性。
从文件权限考虑,引申出三个对象: 文件所有者、用户组成员、其他人。三类对象对文件权限是不同的。
文件所有者
创建文件的用户,对该文件有最高权限。
拥有者可以开发权限给其他人。
用户组成员
文件有归属组,如果需要将文件权限开发给部分用户,可以将这些用户加入文件归属组,对组赋权限。 对其他无关用户保持私有。
一个用户可加入多个组
其他人
与文件没有任何关系的用户。
ROOT 用户
Linux 中root(0号)是最高权限者,是超级管理员。从安全考虑,不推荐使用root用户进行日常操作。
示例
pi@raspberrypi:~ $ ls -la .bashrc
-rw-r--r-- 1 pi pi 3523 Sep 22 03:51 .bashrc
文件权限: -rw-r--r--
第一个字符 '-' 标识普通文件, 如果是'd' 标识文件夹
后面9个字符,3个字符一组表示不同用户的权限,分别对应读,写,可执行.
第2~4字符表示所有者权限:'rw-' 有读、写权限,没有执行权限
第5~7字符表示所有者权限:'r--' 有读权限,没有写、执行权限
第8~10字符表示所有者权限:'r--' 有读权限,没有写、执行权限
用户 & 用户组
用户管理
- 创建用户sudo adduser -s /bin/bash -m
- 将新用户加入用户组 sudo usermod -a -G
- 修改口令 sudo passwd
- 禁用用户 sudo passwd -l
- 启用用户 sudo passwd -u
- 删除用户 sudo userdel -r
用户组管理
- 新增组-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 - 删除组
权限管理
权限与数值对应关系
文件的基本权限由 9 个字符组成,我们可以使用数字来代表各个权限,各个权限与数字的对应关系如下:
r --> 4(二进制:100)
w --> 2(二进制:10)
x --> 1(二进制:1)
将 3 个权限对应的数字累加,最终得到的值即可作为每种用户所具有的权限.
例如: rwxrw-r-x
所有者 = rwx = 4 + 2 + 1 = 7
所属组 = rw- = 4 + 2 + 0 = 6
其他人 = r-x = 4 + 0 + 1 = 5
所以,此权限值为: 765
修改权限
sudo chmod [-R] 权限值 文件名
-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。
例如:
pi@raspberrypi:~ $ ls -la test.py
-rw-r--r-- 1 pi pi 207 Feb 10 03:48 test.py
pi@raspberrypi:~ $ sudo chmod 666 test.py
pi@raspberrypi:~ $ ls -la test.py
-rw-rw-rw- 1 pi pi 207 Feb 10 03:48 test.py
也可以通过字母修改权限
- 3 种权限(rwx)
- u、g、o 分别代表 3 种身份,还用 a 表示全部的身份
- 操作 +(添加) / -(删除) / =(赋予)
ls -la test.py
-rw-rw-rw- 1 pi pi 207 Feb 10 03:48 test.py
pi@raspberrypi:~ $ sudo chmod o-w test.py #删除其他人写权限
pi@raspberrypi:~ $ ls -la test.py
-rw-rw-r-- 1 pi pi 207 Feb 10 03:48 test.py
pi@raspberrypi:~ $ sudo chmod a+x test.py # 所有人添加执行权限
pi@raspberrypi:~ $ ls -la test.py
-rwxr-xr-x 1 pi pi 207 Feb 10 03:48 test.py
pi@raspberrypi:~ $ sudo chmod a=rw test.py #所有人设置读写权限
pi@raspberrypi:~ $ ls -la test.py
-rw-rw-rw- 1 pi pi 207 Feb 10 03:48 test.py