赞
踩
目录
在Linux 中,权限是控制用户对文件和目录访问的一种机制。每个文件和目录都有三种基本权限:读取(r)、写入(w)和执行(x)。这些权限分别适用于三类用户:文件的拥有者
(u)、文件所属组的用户(g)和其他用户
Linux下有两种用户:超级用户(root)、普通用户
超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
su [用户名]
切换用户
- 用户(User):文件或目录的所有者,通常是创建该文件或目录的用户。符号表示为
u
。- 组(Group):文件或目录所属的用户组,通常是所有者所在的组。符号表示为
g
。- 其他用户(Others):除所有者和所属组之外的所有其他用户。符号表示为 o
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
- 读取(r):允许查看文件内容或列出目录内容。
- 写入(w):允许修改文件内容或在目录中创建、删除文件。
- 执行(x):允许执行文件或进入目录。
- “—”:表示不具有该项权限
a)字符表示方法
b)8进制数值表示方法
在 Linux 中,权限管理主要通过以下几个命令来实现:
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 # 递归更改目录及其子目录的权限
chown
命令用于更改文件或目录的所有者。
chown [options] owner[:group] file
- chown user file.txt # 将文件所有者改为 user
- chown user:group file.txt # 将文件所有者改为 user,组改为 group
- chown -R user:group directory # 递归更改目录及其子目录的所有者和组
chgrp
命令用于更改文件或目录的所属组。
chgrp [options] group file
- chgrp group file.txt # 将文件所属组改为 group
- chgrp -R group directory # 递归更改目录及其子目录的所属组
umask
命令用于设置默认权限掩码,决定新创建文件和目录的默认权限。
umask [options] [mask]
- umask 022 # 设置新文件默认权限为 755,新目录默认权限为 755
- umask 077 # 设置新文件和目录默认权限为 700
在 Linux 中,权限掩码(umask) 是用于设置新创建文件和目录的默认权限的机制。它通过屏蔽某些权限位来决定新文件和目录的最终权限。
默认情况下,新创建的文件和目录的权限分别是 666
(rw-rw-rw-)和 777
(rwxrwxrwx)。权限掩码通过从这些默认权限中减去指定的掩码值来确定最终权限。
假设 umask 值为 022
:
666
- 022
= 644
(rw-r–r–)777
- 022
= 755
(rwxr-xr-x)umask
umask 022
- $ umask
- 0022
- $ touch newfile
- $ mkdir newdir
- $ 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
要永久修改 umask,可以在用户的 shell 配置文件(如 .bashrc
或 .profile
)中添加一行:
umask 022
通过合理设置 umask,可以有效控制新创建文件和目录的默认权限,确保系统的安全性和资源的合理分配
在 Linux 系统中,粘滞位(Sticky Bit) 是一种特殊权限位,主要用于控制对特定目录中文件的删除操作。设置粘滞位后,只有文件的所有者或 root 用户才能删除或移动该文件,而其他用户即使有写权限也不能删除或移动这些文件
粘滞位通常用于多用户环境中的公共目录,例如 /tmp
目录,以防止用户删除或移动其他用户的文件。设置粘滞位后,目录的其他用户权限位会显示为 t
或 T
:
使用 chmod
命令可以设置粘滞位:
- chmod +t directory # 为目录设置粘滞位
- chmod -t directory # 移除目录的粘滞位
查看 /tmp
目录的权限:
- ls -ld /tmp
- drwxrwxrwt 10 root root 4096 Aug 16 09:04 /tmp
可以看到 /tmp
目录的其他用户权限位为 t
,表示已设置粘滞位。
为目录设置粘滞位:
- mkdir mydir
- chmod 1777 mydir # 设置粘滞位并赋予所有用户读、写、执行权限
- ls -ld mydir
- drwxrwxrwt 2 user user 4096 Aug 16 09:04 mydir
通过合理使用粘滞位,可以有效保护公共目录中的文件,防止未授权的删除和移动操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。