Linux的4755属性

一、特殊权限位

Linux 文件权限中的第一个数字(在本例中为 4)表示 **特殊权限位**。它控制文件类型的特殊行为,例如:

* **4**:**setuid (SUID)** 位。当文件由非 root 用户执行时,它允许该用户暂时获得该文件的属主权限。这通常用于允许非特权用户执行需要 root 权限的任务。
* **2**:**setgid (SGID)** 位。当文件由非组成员执行时,它允许该用户暂时获得该文件的组权限。这通常用于允许非组成员访问组专有资源。
* **1**:**sticky bit** 位。它防止其他用户删除或重命名不属于他们的文件,即使他们具有写权限。这通常用于公共目录,以防止用户意外删除或覆盖彼此的文件。

在 4755 属性中,**4** 表示 **SUID** 位已设置。这意味着当非 root 用户执行该文件时,他们将暂时获得该文件的属主权限。

**示例:**

假设一个文件具有 4755 属性,并且该文件由名为 `user1` 的非 root 用户执行。当 `user1` 执行该文件时,他们将暂时获得该文件的属主权限,即使该文件属于另一个用户(例如 `root`)。这允许 `user1` 执行通常需要 root 权限的任务。

**注意:**

* SUID 和 SGID 位是强大的权限,应谨慎使用。
* 只有 root 用户才能设置或清除 SUID 和 SGID 位。

二、设置SGID

要使用 `chmod` 命令设置 SGID 位,请使用以下语法:

```
chmod g+s filename
```

其中:

* `g+s`:设置 SGID 位的标志
* `filename`:要设置 SGID 位的文件名

**示例:**

要设置文件 `myfile` 的 SGID 位,可以使用以下命令:

```
chmod g+s myfile
```

设置 SGID 位后,当文件由非组成员执行时,该用户将暂时获得该文件的组权限。

**注意:**

* 只有 root 用户才能设置 SGID 位。
* SGID 位通常用于允许非组成员访问组专有资源。例如,它可以用于允许非组成员写入组共享的日志文件。

**其他方法:**

除了使用 `chmod` 命令外,还可以使用以下方法设置 SGID 位:

* **使用八进制模式位:**SGID 位的八进制模式位为 2。要设置 SGID 位,可以使用以下命令:

```
chmod 2755 filename
```

* **使用符号模式位:**SGID 位的符号模式位为 `g+s`。要设置 SGID 位,可以使用以下命令:

```
chmod +g filename
```

无论使用哪种方法,设置 SGID 位后,当文件由非组成员执行时,该用户将暂时获得该文件的组权限。

三、设置SUID

**Linux 文件权限的 4755 属性**

在 Linux 系统中,文件和目录的权限使用八进制数字表示,称为 **模式位**。4755 属性表示以下权限:

**位值 | 权限 | 用户 | 组 | 其他**
------- | ------- | ------- | ------- | -------
4 | 读 (r) | 主人 | 主人 | 主人
7 | 读、写、执行 (rwx) | 主人 | 主人 | 主人
5 | 读、执行 (rx) | 组 | 组 | 组
5 | 读、执行 (rx) | 其他 | 其他 | 其他

**解释:**

* **4**:主人的读权限(r)
* **7**:主人的读(r)、写(w)、执行(x)权限
* **5**:组的读(r)、执行(x)权限
* **5**:其他人的读(r)、执行(x)权限

**示例:**

假设一个文件具有 4755 属性,则:

* 文件的所有者可以读、写和执行该文件。
* 同一组中的其他用户可以读和执行该文件。
* 系统中的其他用户可以读和执行该文件。

**注意:**

* 4755 属性通常用于可执行文件,例如脚本或二进制文件。
* 文件的权限可以通过 `chmod` 命令修改。例如,要将文件的权限更改为 4755,可以使用以下命令:

```
chmod 4755 filename
```

四、同时设置

要同时设置 SUID 和 SGID 位,可以使用以下语法:

```
chmod g+s,u+s filename
```

其中:

* `g+s,u+s`:设置 SUID 和 SGID 位的标志
* `filename`:要设置 SUID 和 SGID 位的文件名

**示例:**

要同时设置文件 `myfile` 的 SUID 和 SGID 位,可以使用以下命令:

```
chmod g+s,u+s myfile
```

设置 SUID 和 SGID 位后,当文件由非组成员或非属主执行时,该用户将暂时获得该文件的组或属主权限。

**注意:**

* 只有 root 用户才能同时设置 SUID 和 SGID 位。
* SUID 和 SGID 位是强大的权限,应谨慎使用。

**其他方法:**

除了使用 `chmod` 命令外,还可以使用以下方法同时设置 SUID 和 SGID 位:

* **使用八进制模式位:**SUID 和 SGID 位的八进制模式位分别为 4 和 2。要同时设置 SUID 和 SGID 位,可以使用以下命令:

```
chmod 6755 filename
```

* **使用符号模式位:**SUID 和 SGID 位的符号模式位分别为 `u+s` 和 `g+s`。要同时设置 SUID 和 SGID 位,可以使用以下命令:

```
chmod +u+g filename
```

无论使用哪种方法,同时设置 SUID 和 SGID 位后,当文件由非组成员或非属主执行时,该用户将暂时获得该文件的组或属主权限。

五、Linux打包时候如何设置应用中各个目录的权限

一般的安装时候是使用root权限的

主程序start带起client1目录下client1和client2下的client2

需要设置

chmod 775 client1

chmod 775 client2

对于chrome-sandbox(Electron)程序,需要以root权限执行

sudo chmod 4755 chrome-sandbox<实际可替换为路径>

 

posted @ 2024-09-27 19:59  卖雨伞的小男孩  阅读(3)  评论(0编辑  收藏  举报