9. 权限

类 Unix 系统不同于其他系统,它不仅是多任务的,而且是多用户的。 这意味着同一台电脑可以由多人同时操作。即使你的电脑只有一个鼠标和一个键盘,也可以同时由多个用户使用。例如,如果你的电脑联了网,那么其他用户就可以通过 ssh 来登录并操作电脑。 这也就需要设计好用户之间数据的隔离。 本课程介绍以下命令:

  • chmod:修改文件访问权限
  • su:临时成为超级用户
  • sudo:临时成为超级用户
  • chown:修改文件所有者
  • chgrp:修改文件所属组

文件权限

在 Linux 系统中,每个文件和目录的权限都分为所有者权限、所属组权限、其他用户权限。权限分为读、写、执行权限。 查看文件的权限设置使用 ls 命令。

$ ls -l /bin/bash

permissions diagram

chmod

chmod 命令用于改变文件或目录的权限。你需要在参数中指定你想要设置的权限和设置的文件。有两种方式指定权限。下面介绍其中的一种:八进制 方法。 通过位来管理权限设置是很容易的:

rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx --- --- = 111 000 000
rwx = 111 in binary = 7
rw- = 110 in binary = 6
r-x = 101 in binary = 5
r-- = 100 in binary = 4

例如,如果你想设置 some_file 文件为私有的,所有者有读写权限,其他用户不可见:

$ chmod 600 some_file

以下是一些常用设置值的表。数字 7 用于可执行程序。

意义
777 rwxrwxrwx)没有权限限制。任何人可以对文件做任何事。通常来说这样设置是不可取的
755 rwxr-xr-x)文件所有者可读写执行。其他用户可读可执行。通常用于所有用户可使用的程序
700 rwx------)文件所有者有所有权限。其他用户无权限。通常用于所有者的私有可执行程序
666 rw-rw-rw-)所有用户可读可写
644 rw-r--r--)所有者可读可写,其他用户只可读。通常用于只有所有者可修改,其他用户只可查看的情况
600 rw-------)所有者可读可写。其他用户无权限。通常用于所有者的私有文件

目录权限

chmod 也可用于控制目录的权限。也可以使用八进制来设置权限,但 rwx 的属性和意义不一样:

  • r:允许列出目录的内容,x 属性需为已设置
  • w:允许创建、删除或重命名目录下的文件,x 属性需为已设置
  • x:允许进入目录(也就是 cd dir

以下是一些常用的设置:

意义
777 rwxrwxrwx)没有权限限制。任何人都可以在目录下查看文件,创建文件及删除文件。通常不是一个好的设置
755 rwxr-xr-x)目录所有者有所有权限。所有其他用户可以在目录下查看,但是不能创建和删除。通常用于和其他用户共享目录
700 rwx------)目录所有者有所有权限。其他用户无权限。此设置通常用于用户私有目录

成为临时超级用户

我们经常需要执行重要的系统管理员任务,但是你不应该用超级用户登录。大部分发行版都有一个程序来给你临时的超级用户权限。这个程序叫做 su(substitute user,替代用户),可以用于上述场景。只需要在命令行输入 su,并按照提示输入超级用户的密码即可。 执行 su 命令后,你就拥有一个超级用户的新的 shell 对话了。输入 exit 退出超级用户会话并返回上一会话。 在 Unbuntu 等发行版中,可以使用 sudo 命令来代替。这样多个用户可以赋予超级用户权限以满足最基本的需要。在命令行输入 sudo 命令后,按照提示输入普通用户而不是超级用户的密码即可。

$ sudo some_command

改变文件所有者

你可以通过 chown 命令来改变文件的所有者。例如,我想将 some_file 的所有者由 me 改成 you:

$ su
$ chown you some_file
$ exit

chown 对目录也是同样的方式。

改变所属组

使用 chgrp 命令可以改变文件或目录的所有组。

$ chgrp new_group some_file

要执行 chgrp 命令,我们必须是文件或目录的所有者。

results matching ""

    No results matching ""