命令:su [用户名]
功能:切换用户。
1.linux文件属性
文件访问者分为:
- 文件和文件目录的 所有者(u-Usr)。
- 文件和文件目录的 所有者所在组的用户(g-group)。
- 其它用户(o-Others)。
字符表示权限方法 :
r 、w、x分别表示可读、可写、可执行
开头字符意义:
d:目录-:普通文件c:字符设备文件b:块设备文件p:管道文件c:链接文件
八进制表示权限的方法 :
2. 权限管理三剑客
2.1chmod
在 Linux 中,`chmod`(更改模式的缩写)是一条用于更改文件或目录权限的命令。权限决定了谁可以读取、写入或执行某个文件或目录,权限分为以下三组:
1. 拥有者(用户):拥有文件的用户。
2. 所属组:与文件相关联的用户组。
3. 其他人:不属于上述两者的其他用户。
用法格式为:
chmod [类别][操作][权限] 文件名
类别:
- `u`:用户(文件所有者)
- `g`:组
- `o`:其他人
- `a`:所有人(用户、组和其他人)
操作:
- `+`:添加权限
- `-`:移除权限
- `=`:设置为指定权限
权限可以通过字符模式或八进制数值模式来设置:
字符模式
符号模式使用字母表示权限类别和操作。例如:
- `r` 代表读取权限
- `w` 代表写入权限
- `x` 代表执行权限
八进制数字模式
数字模式使用八进制数字表示权限,每个权限类别的值如下:
- `4`:读取权限
- `2`:写入权限
- `1`:执行权限
三个数字分别对应所有者、组和其他人的权限。
例如:
chmod 755 file.txt
表示:
- 所有者 有读、写、执行权限(7 = 4 + 2 + 1)
- 组和其他人 有读和执行权限(5 = 4 + 1)
(1)将可读权限删除后,无法读取内容
(2)可以多项操作
(3)使用八进制修改权限
(4)对所有用户进行操作
使用a或者不用类别
注意:
这里“wang”依次和拥有者、所属组进行对比,与拥有者身份匹配成功,拥有者没有读写权限
更改文件所属组需要root权限或者使用sudo提取权限
2.2 chgrp
chgrp - 更改文件或目录的所属组
- 语法:chgrp [选项] 新组 文件名
- chgrp 仅更改文件或目录的所属组。
例如:
- 常用选项:
2.3 chown
chown - 更改文件或目录的所有者和组
- 语法:chown [选项] [新所有者][:新组] 文件名
- chown 用于更改文件或目录的所有者或所属组。
(1)更改文件或目录的所有者
(2)更改文件或目录的所有者和所属组
(3)常用选项
3. 关于权限的三个问题
3.1目录权限(控制用户对目录的访问行为)
(1)x:进入一个目录需要的权限
有权限可以进入
无权限不能进入
(2)r:查看目录需要的权限
有权限可以查看
无权限不能查看
(3)w:在目录中新建文件,删除、修改文件名等修改文件的操作
有权限可以操作
无权限不能操作
3.2 缺省权限(文件和目录的默认权限)
在Linux中,缺省权限(Default Permissions)是指系统为新建的文件和目录分配的初始权限。这个默认权限是通过 umask 值来控制的,`umask` 会“屏蔽”掉某些权限,从而设置文件和目录的初始权限。
(1)初起始限
新文件的起始权限一般为 666(可读写,但无执行权限)。
新目录的起始权限一般为 777(可读写执行)。
(2)umask的权限掩码
- 当 umask 为 022 时,新建文件的权限为 644,新建目录的权限为 755。
我们这里只看后三位,转成二进制的
000 000 010
- 可以通过 umask 命令查看或设置缺省权限的屏蔽位,例如 `umask 777`。 这让我们可以通过修改权限掩码达到修改Linux文件缺省的问题。
(3)最终权限(缺省权限)
最终权限 = 起始权限 & (~umask)
~ 000 000 010111 111 101&
起始权限 110 110 110 (666)最终权限 110 110 100 -> 664
要永久更改umask,可以在 `~/.bashrc` 或 `/etc/profile` 中添加 `umask` 配置。这使得创建的文件和目录能自动获得合适的权限,更加安全和便捷。
3.3 粘滞位
在Linux中,“粘滞位”(Sticky Bit)是一种文件权限设置,用于目录或文件上,控制用户对文件或目录内容的删除权限。通常设置粘滞位主要用于目录,使目录下的文件或子目录只能被文件的所有者、目录的所有者或者超级用户删除或重命名,其他用户即使有写权限,也无法删除或修改这些文件。
(1)常见的使用场景包括:
- 共享目录:例如`/tmp`目录,允许所有用户进行读写操作,但防止非所有者删除其他用户的文件。
(2)设置方法
可以使用`chmod`命令设置粘滞位:
添加粘滞位
chmod +t 目录名移除粘滞位
chmod -t 目录名
(3)权限表示
在执行`ls -l`查看文件权限时,粘滞位会以“`t`”显示在目录的执行权限位置上。例如:
这里的`-rw-rw-r-T`中的 T 表示粘滞位已经设置。