【Linux】 - Linux中的权限机制
@[TOC]
从文件属性看权限
列在输出结果中的前10个字符表示的是文件属性,其中第一个字符表示文件类型,其余9个字符称为文件模式,分别表示文件所有者、文件所属群组以及其他所有用户对该文件的读取、写入和执行权限。
文件类型
标示符 | 类型 |
---|---|
- | 普通文件 |
d | 目录文件 |
l | 符号链接。注意对于符号链接文件,剩下的文件属性始终是rwxrwxrwx,它是个 伪属性值。符号链接指向的文件的属性才是真正的文件属性 |
c | 字符设备文件。该文件类型表示以字节流形式处理数据的设备,如终端或调制解 调器 |
b | 块设备文件。该文件类型表示以数据块方式处理数据的设备,如硬盘驱动或者光 盘驱动 |
权限属性
标示符 | 文件属性 | 目录属性 |
---|---|---|
r | 允许打开和读取文件 | 如果设置了执行权限,那么允许列 出目录下的内容 |
w | 允许写入或者截短文件;如果也设置了执行 权限,那么目录中的文件允许被创建、被删 除以及被重命名 | 但是该权限不允许重命名或者删除 文件。是否能重命名和删除文件由 目录权限决定 |
x | 允许把文件当作程序一样来执行。用脚本语 言写的程序文件必须被设置为可读,以便能 被执行 | 允许进入目录下 |
文件属性 | 含义 |
---|---|
-rwx------ | 普通文件,文件所有者具有读取、写入和执行权限。组成员和其他所 有用户都没有任何访问权限 |
-rw------- | 普通文件,文件所有者具有读取和写入权限。组成员和其他所有用户 都没有任何访问权限 |
-rwxr-xr-x | 普通文件,文件所有者具有读取、写入和执行权限。其他所有用户也 可以读取和执行该文件 |
Lrwxrwxrwx | 符号链接。所有的符号链接文件显示的都是“伪”权限属性,真正的权 限属性由符号链接指向的实际文件决定 |
drwxr-x— | 目录文件。文件所有者可以进入该目录,而且可以创建、重命名和删 除该目录下的文件。所有者所在群组的成员可以进入该目录,但是不 能创建、重命名和删除该目录下的文件 |
id(显示用户身份标识)
chmod(更改文件模式)
chmod命令来更改文件或者目录的模式(权限)。只有文件所有者和超级用户才可以更改文件或者目录的模式。
chmod命令支持两种不同的改变文件模式的方式——八进制数字表示法 和符号表示法。
1. 八进制数字表示法
通过使用3位八进制数字,我们可以分别设置文件所有者、组成员和其他所有用户的文件模式。
chmod 700 foo.txt
2. 符号表示法
chmod命令支持一种符号表示法来指定文件模式。该符号表示法分为三 部分:更改会影响谁、要执行哪个操作以及要设置哪种权限。
==可以通过字符u、g、o和a的组合来指定要影响的对象:==
符号 | 含义 |
---|---|
u | 文件或者目录的所有者 |
g | 文件所属群组 |
o | 其他所有用户 |
a | ‘u’, ‘g’和‘o’三者的组合 |
==可以通过字符+、-、=的组合来指定要执行哪个操作:==
符号 | 含义 |
---|---|
+ | 添加一种权 限 |
- | 表示删除一种权限 |
= | 表示只有指定的权限可用,其他所有的 权限都被删除 |
==权限由字符“r”、“w”和“x”来指定。==
chmod命令符号表示法实例
符号 | 含义 |
---|---|
u+x | 为文件所有者添加可执行权限 |
u-x | 删除文件所有者的可执行权限 |
+x | 为文件所有者、所属群组和其他所有用户添加可执行权限,等价于a+x |
o-rw | 除了文件所有者和所属群组之外,删除其他所有用户的读写权限 |
go=rw | 除了文件所有者之外,设置所属群组和其他所有用户具有读写权限。 |
u+x, go=rx | 为文件所有者添加可执行权限,同时设置所属群组和其他所有用户具有读权 限和可执行权限。 |
su(以另一个用户的身份运行shell)
su命令用来以另一个用户的身份来启动shell。
su [-[l]] [user_name]
# “-l”可缩写为“-”
# 没有指定user_name默认为用户root
在输入su命令后,系统会提示输入该超级用户的密码,开启一个新的交互命令界面。
也可以使用su命令执行单个命令,而不需要开启一个新的交互式命令界面,操作方式如下:
su -c "command" # command表示待执行的命令
sudo(以另一个用户的身份执行命令)
sudo命令类似于su命令。
管理者可以通过配置sudo命令,使系统以一种可控的方式,允许一 个普通用户以一个不同的用户身份(通常是超级用户)执行命令。在特 定情况下,用户可能被限制为只能执行一条或者几条特定的命令,而对 其他命令没有执行权限。另一个重要的区别在于,使用sudo命令并不需 要输入超级用户的密码。使用sudo命令时,用户只需要输入自己的密码来进行认证。
chown(更改文件的所有者)
chown命令用来更改文件或者目录的所有者和所属群组(需要超级用户权限)。
chown [ower][:[group]] file …
chown命令更改的是文件所有者还是文件所属群组,或者对两者都更 改,取决于该命令的第一个参数。
chown命令实例:
命令 | 结果 |
---|---|
chown user file | 把文件file所有者从当前所有者更改为用户user |
chown user:users file | 把文件file所有者从当前所有者更改为用户user,并把文件所属群组更改为 users组 |
chown :users file | 把文件file所属群组更改为admins组,文件所有者不变 |
chown user: file | 把文件所有者从当前所有者更改为用户user,并把文件所属群组更改为用户user登录系统时所属的组 |
passwd(更改用户密码)
使用passwd命令,可以设 置或者更改密码。该命令的语法格式如下。
passwd [user_name]
如果要更改的是用户自己的密码,那么只需要输入passwd命令。接下来 shell将会提示用户输入旧密码和新密码。
- 点赞
- 收藏
- 关注作者
评论(0)