深入理解Linux文件与用户管理
立即解锁
发布时间: 2025-08-20 01:39:40 阅读量: 1 订阅数: 6 


Ubuntu Linux入门与进阶指南
# 深入理解 Linux 文件与用户管理
## 1. 不常见的文件权限
在目录的权限列表中,有时会看到用 `t` 代替 `x` 或短横线。这被称为“粘滞位(sticky bit)”,意味着只有文件的创建者才能删除或修改该目录中的文件。例如,`/tmp`(临时)文件夹就使用了粘滞位,以确保一个用户不能删除另一个用户的临时文件,但可以删除自己的临时文件。要为目录设置粘滞位,可使用以下命令:
```bash
chmod +t directoryname
```
有时还会看到类似 `rws` 的权限设置。其中,`s` 代表“设置用户 ID(set user id)”,通常被称为“suid 位”。和 `x` 一样,它表示文件是可执行的,但不同的是,文件将以文件所有者的权限运行,而不是执行它的用户的权限。例如,如果用户 `frank` 尝试运行由 `keir` 拥有且执行权限设置为 `s` 的程序,该程序将以 `keir` 的身份运行。要设置 suid 位,可使用以下命令:
```bash
chmod +s filename
```
不过,很少会用到这个命令。
## 2. 典型的数据文件权限
以下是一个典型的数据文件权限示例:
```
-rw-rw---- 2 keir keir 1450 2006-07-07 09:19 myfile2
```
从这个示例可以看出:
- 文件由用户 `keir` 拥有,因为用户名紧跟在权限后面。
- 组 `keir` 也可以访问该文件,具体权限取决于权限设置。
- 从左到右读取文件权限,第一个字符是短横线,表示这是一个普通文件,没有特殊属性,也不是目录。
- 接下来的 `rw-` 是文件所有者 `keir` 的权限,意味着可以读取和写入文件,但不能执行。由此可以推断这是一个数据文件,而不是程序。
- 再接下来的 `rw-` 是组 `keir` 成员的权限,他们也可以读取和写入文件,但不能执行。
- 最后三个字符 `---` 表示系统中其他用户对该文件没有任何权限,甚至不能读取。
## 3. 用户目录的权限
以下是用户目录权限的示例:
```
drwxr-xr-x 7 keir keir 824 2006-07-07 10:01 mydirectory
```
- 权限列表以 `d` 开头,表示这是一个目录。
- 目录所有者 `keir` 可以读取目录中的文件并创建新文件,`x` 表示可以访问该目录。
- 组内成员可以读取目录中的文件,但不能创建新文件(不过如果单个文件的权限允许,他们可以修改已有文件),`x` 表示可以访问该目录。
- 其他用户可以读取和浏览目录,但不能创建新文件。
## 4. 根用户拥有的目录权限
以下是根用户拥有的目录权限示例:
```
drwx------ 25 root root 1000 2004-08-06 15:44 root
```
- 权限列表以 `d` 开头,表示这是一个目录。
- 目录所有者 `root` 可以读取、写入和访问该目录。
- 组 `root` 的成员对该目录没有任何访问权限。
- 其他用户(包括非 `root` 用户)也没有读取、写入或访问该目录的权限,因为该目录可能包含只有 `root` 用户才能访问的文件。
## 5. 用户切换
如果系统中设置了多个用户,可以在 shell 中随时切换用户。例如,有一个额外的用户账户 `frank`,在以任何用户身份登录时,可以通过以下命令临时切换到 `frank`:
```bash
su frank
```
然后会要求输入 `frank` 的密码,输入正确后,就会以 `frank` 的身份登录,创建的任何文件都将以 `frank` 的身份保存。
如果创建了 `root` 账户(使用 `sudo passwd root` 命令),可以直接输入 `su` 而不跟用户名来临时切换到 `root` 账户。要从其他账户返回自己的账户,输入 `exit` 即可。
## 6. 修改权限
可以使用 `chmod` 命令轻松更改文件和目录的权限。以下是一些示例:
- 让系统中的所有用户都能读取和写入文件:
```bash
chmod a+rw myfile
```
这里的 `a` 表示所有用户,`rw` 表示读取和写入权限。
- 移除所有用户的写入权限:
```bash
chmod a-w myfile
```
- 仅为文件所有者添加读取和写入权限:
```bash
chmod u+rw myfile
```
这里的 `u` 表示用户(即所有者)。
- 移除组的读取和写入权限:
```bash
chmod g-rw myfile
```
这里的 `g` 表示组。
- 为下载的程序文件添加可执行权限:
```bash
chmod u+x myprogram
```
## 7. 修改文件所有权
要更改文件的所有者,使用 `chown` 命令,由于安全原因,必须使用 `sudo` 命令前缀,因为 `chown` 和 `chgrp`(用于更改组所有权)需要超级用户权限。
- 将文件 `myfile` 的所有者设置为 `frank`:
```bash
sudo chown frank myfile
```
- 同时更改文件的所有者和组:
```bash
sudo chown frank.mygroup myfile
```
- 仅更改文件的组:
```bash
sudo chgrp mygroup myfile
```
## 8. 创建文件快捷方式
Ubuntu 文件系统提供了两种真正的快捷方式,称为文件链接:符号链接和硬链接,都使用 `ln` 命令创建。
### 8.1 符号链接
符号链接最类似于 Windows 快捷方式,它创建一个小文件,“指向”另一个文件。与 Windows 快捷方式不同的是,符号链接文件存在于文件系统级别,例如无法在文本编辑器中查看。在文件列表中可以通过后面的箭头和链接文件的名称及路径来识别符号链接。例如:
```bash
ln -s original_file link
l
```
0
0
复制全文