用户 与 权限
-
用户 与 权限
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 <username>
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-s Shell文件 指定用户的登录Shell
-m create the user's home directory -
将新用户加入用户组
sudo usermod -a -G <group> <username>
-
修改口令
sudo passwd <username>
-
禁用用户
sudo passwd -l <username>
-
启用用户
sudo passwd -u <username>
-
删除用户
sudo userdel -r <username>
用户组管理
- 新增组
-g GID 指定新用户组的组标识号(GID)。sudo groupadd 选项 用户组
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 - 删除组
sudo groupdel 用户组
权限管理
权限与数值对应关系
文件的基本权限由 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 pi@raspberrypi:~ $ chmod +x test.py #默认表示操作所有人 pi@raspberrypi:~ $ ls -la test.py -rwxrwxrwx 1 pi pi 207 Feb 10 03:48 test.py
-
-