linux 基础知识,Linux 文件及文件夹权限,不要动不动就 777 权限。网上教程过于复杂??拢?虻プ芙崛缦?..
一、查看 Linux 文件权限
ls -l (通用)
ll (Ubuntu适用,等于ls -al)
二、权限标示符
r(读)、w(写)、x(执行)
4(读)、2(写)、1(执行)
下面举例说明:
-rwx------: 文件所有者对文件具有读取、写入和执行的权限。
-rwxr?r--: 文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
-rw-rw-r-x: 文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
drwx--x--x: 目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
Drwx------: 除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。
注:目录必须有执行权才能读取
二、修改 Linux 文件权限
方法一
chmod -R 777 dir/
-R 更改dir 目录及dir内所有子文件和文件夹
777 指将“文件所属用户、所属用户组、其它用户”改为读、写、执行。
方法二
chmod 参数:a(用户及组)、u(用户)、g(组)、0(其他用户)
chmod 运算符:+(加)、-(减)、=(赋予)
chmod +x file.txt (用户、组、其他用户,加执行权)
chmod u+x file.txt (用户,加执行权)
例4:
$ chmod a–x mm.txt
$ chmod –x mm.txt
$ chmod ugo–x mm.txt
三、Linux 常用文件权限
777(读写执行、读写执行、读写执行)
755(读写执行、读执行、读执行)
644(读写、读、读)
400(读、禁止、禁止
四、创建时的权限
(1)用户id(uid)用来设置文件所有者,主组用来设置用户组(除非创建文件的目录有Sgid位设置)。
(2)"umask "命令可以为用户账号中新文件的创建进行缺省设置。具体来 说,umask是用来设置权限掩码的,将现有的存取权限减掉权限掩码后,即可产生建立文件时默认的权限。例如,root的权限为 777,若权限掩码设为022,那么两都相减后可得755。在命令行中键入"umask "命令,查看当前设置 ,如要修改" umask"设置,输入:$umask 号码,如:umask 0022(默认设置),"umask" 命令不设置文本文件和脚本文件而只在目录中设置执行位。
(3)如果你创建一个文件夹或文件 (以umask 0022为例),777-022=755为创建文件夹的权限,而666-022=644为创建文件的权限,执行"ls -l",会显示:rwxr-xr-x(文件夹),rw-r--r--(文件)
五、修改文件夹的权限──chmod
(1)参数含义:ugoa分别表示属主、属组、其它、所有;+表示追加权限;-表示删除权限;=表示追加指定的权限并删除其它非指定的权限。
(2)使用示例:追加属主可执行、删除属组可写、更改其它为仅读。
$chmod -c u+x,g-w,o=r file_name
(3)权限可以用字母或数字表示,读 (r) = 4,写(w) = 2,执行(或搜索)(x)=1这些数字加到一起就得到用于chmod命令的数字。(注意:如果您正在文件或目录中使用ACL,使用数字模式chmod命令会使ACL无效)
例:
所有者权限:读+写+执行=4+2+1=7
组许可权限 : 读+写= 4+2=6
其他用户许可权限:读=4
则命令为:$chmod 764 file_name4.将某个目录下的子目录和文件权限一次性更改的方法使用命令:chmod -R 777 目录名参数R即是对子目录进行递归操作
六、比较实用权限修改例子
查看linux文件的权限:ls -l 文件名称
查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)
修改文件及文件夹权限:
sudo chmod -(代表类型)×××(所有者)×××(组用户)×××(其他用户)
常用修改权限的命令:
sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)