1 linux权限概念
(u)、文件所属组的用户(g)和其他用户
1. 1 用户分类
Linux下有两种用户:超级用户(root)、普通用户
-
• 超级用户:可以在linux系统下做任何事情,不受限制 -
• 普通用户:在linux下做有限的事情。 -
• 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
2.1 语法
2.2 功能
2 Linux权限管理
2.1 文件访问者的分类(人)
-
1. 用户(User):文件或目录的所有者,通常是创建该文件或目录的用户。符号表示为 u
。 -
2. 组(Group):文件或目录所属的用户组,通常是所有者所在的组。符号表示为 g
。 -
3. 其他用户(Others):除所有者和所属组之外的所有其他用户。符号表示为 o
2.2 权限表示
1 文件类型
-
• d:文件夹 -
• -:普通文件 -
• l:软链接(类似Windows的快捷方式) -
• b:块设备文件(例如硬盘、光驱等) -
• p:管道文件 -
• c:字符设备文件(例如屏幕等串口设备) -
• s:套接口文件
2 基本权限
-
• 读取(r):允许查看文件内容或列出目录内容。 -
• 写入(w):允许修改文件内容或在目录中创建、删除文件。 -
• 执行(x):允许执行文件或进入目录。 -
• **“—”:**表示不具有该项权限
3 文件权限值的表示方法
2.3 权限管理命令
在 Linux 中,权限管理主要通过以下几个命令来实现:
1. chmod
命令
用于更改文件或目录的权限。
`chmod [options] mode file`
-
• 示例: chmod u+rwx file.txt # 给文件所有者增加读、写、执行权限 chmod g-w file.txt # 去掉组用户的写权限 chmod o=rx file.txt # 设置其他用户只有读和执行权限 chmod 755 file.txt # 设置文件权限为 rwxr-xr-x chmod -R 755 directory # 递归更改目录及其子目录的权限
2. chown
命令
用于更改文件或目录的所有者。
`chown [options] owner[:group] file`
-
• 示例: chown user file.txt # 将文件所有者改为 user chown user:group file.txt # 将文件所有者改为 user,组改为 group chown -R user:group directory # 递归更改目录及其子目录的所有者和组
3. chgrp
命令
用于更改文件或目录的所属组。
`chgrp [options] group file`
-
• 示例: chgrp group file.txt # 将文件所属组改为 group chgrp -R group directory # 递归更改目录及其子目录的所属组
4. umask
命令
用于设置默认权限掩码,决定新创建文件和目录的默认权限。
`umask [options] [mask]`
-
• 示例: umask 022 # 设置新文件默认权限为 755,新目录默认权限为 755 umask 077 # 设置新文件和目录默认权限为 700
在 Linux 中,权限掩码(umask) 是用于设置新创建文件和目录的默认权限的机制。它通过屏蔽某些权限位来决定新文件和目录的最终权限。
a) 权限掩码的工作原理
默认情况下,新创建的文件和目录的权限分别是 666
(rw-rw-rw-)和 777
(rwxrwxrwx)。权限掩码通过从这些默认权限中减去指定的掩码值来确定最终权限。
b) 计算方法
假设 umask 值为 022
:
-
• 文件默认权限: 666
–022
=644
(rw-r–r–) -
• 目录默认权限: 777
–022
=755
(rwxr-xr-x)
c) 设置和查看 umask
-
• 查看当前 umask: umask
-
• 设置 umask: `umask 022`
d) 示例
-
1. 查看当前 umask: $ umask 0022
-
2. 创建文件和目录: $ touch newfile $ mkdir newdir
-
3. 查看权限: $ ls -l newfile newdir -rw-r--r-- 1 user user 0 Aug 16 09:04 newfile drwxr-xr-x 2 user user 4096 Aug 16 09:04 newdir
e) 修改 umask
要永久修改 umask,可以在用户的 shell 配置文件(如 .bashrc
或 .profile
)中添加一行:
`umask 022`
f) 特殊情况
-
• umask 000:新文件和目录将具有最大权限(666 和 777),这通常不推荐使用,因为它会导致安全风险。 -
• umask 077:新文件和目录将只有所有者有完全权限(600 和 700),适用于需要高安全性的场景。
通过合理设置 umask,可以有效控制新创建文件和目录的默认权限,确保系统的安全性和资源的合理分配
2.4 特殊权限(粘滞位)
在 Linux 系统中,粘滞位(Sticky Bit) 是一种特殊权限位,主要用于控制对特定目录中文件的删除操作。设置粘滞位后,只有文件的所有者或 root 用户才能删除或移动该文件,而其他用户即使有写权限也不能删除或移动这些文件
1 粘滞位的作用
粘滞位通常用于多用户环境中的公共目录,例如 /tmp
目录,以防止用户删除或移动其他用户的文件。设置粘滞位后,目录的其他用户权限位会显示为 t
或 T
:
-
• t:表示该目录的其他用户有执行权限。 -
• T:表示该目录的其他用户没有执行权限。
2 设置粘滞位
使用 chmod
命令可以设置粘滞位:
chmod +t directory # 为目录设置粘滞位
chmod -t directory # 移除目录的粘滞位
3 示例
-
1. 查看 /tmp
目录的权限:ls -ld /tmp drwxrwxrwt 10 root root 4096 Aug 16 09:04 /tmp
可以看到
/tmp
目录的其他用户权限位为t
,表示已设置粘滞位。 -
2. 为目录设置粘滞位: mkdir mydir chmod 1777 mydir # 设置粘滞位并赋予所有用户读、写、执行权限 ls -ld mydir drwxrwxrwt 2 user user 4096 Aug 16 09:04 mydir
4 注意事项
-
• 粘滞位只对目录有效,对文件无效 -
• 设置粘滞位后,其他用户仍然可以修改文件内容,但不能删除或移动文件。
通过合理使用粘滞位,可以有效保护公共目录中的文件,防止未授权的删除和移动操作。
链接: https://blog.csdn.net/m0_73494049/article/details/141232516?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522b297818035a8927be6bf298243b570a2%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=b297818035a8927be6bf298243b570a2&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-141232516-null-null.142^v102^pc_search_result_base6&utm_term=Linux%E6%9D%83%E9%99%90&spm=1018.2226.3001.4187
(版权归原作者所有,侵删)