本文主要介绍在linux
系统下文件权限配置,通过阅读该文,你会了解文件权限,同时能正确的配置文件权限,避免盲目操作。成文的原因也是因为自己在程序执行过程中一直会遇到这样的问题,所以最终专门整理了相关知识,希望也能帮到大家。
1. ls -l命令讲解
我们可以通过ls -l
命令查看除了文件名称外的其他信息,比如文件型态、权限、拥有者、文件大小等。
这里可以看来自网上的一幅图。
2. 如何设置权限
在我们能看懂文件权限后,就需要掌握怎么配置权限,这里主要讲解chmod
和chown
两个命令。
2.1 chmod
Linux/Unix
文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod
可以藉以控制文件如何被他人所调用。
// -R表示级联更改
chmod [-R] xyz 文件名(这里的xyz表示数字)。
比如下面三种操作都是设置所有人可以读写及执行file
:
chmod 777 file
chmod u=rwx,g=rwx,o=rwx file
chmod a=rwx file
这里我们重点讲解下数字格式777
指的是什么。
我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(r-读)、2(w-写)、1(x-执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。
按照上面的数值,r=4,w=2,x=1 ;
若要rwx
属性则4+2+1=7;
若要rw-
属性则4+2=6;
若要r-x
属性则4+1=5;
若要rwxrwxrwx
属性则777;
若要rwxr-xr-x
属性则755;
2.2 chown
更改文件拥有者。
chown [-cfhvR] [--help] [--version] user[:group] file...
示例:
将文件 file1.txt 的拥有者设为 neo,群体的使用者 neogroup :
chown runoob:runoobgroup file1.txt
将目前目录下的所有文件与子目录的拥有者皆设为 neo,群体的使用者 neogroup:
chown -R neo:neogroup *
3. umask
umask
命令可以指定在建立文件时预设的权限掩码。
[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。一般默认的值是022,最终新创建的目录权限为755,文件权限为644。
- 对于目录,直接使用777-umask即可,就得到了最终结果。
-
对于文件,先使用666-umask。
- 如果对应位上为偶数:最终权限就是这个偶数值。
- 如果上面的对应为上有奇数,就对应位+1。
掩码 | 目录 | 文件 |
---|---|---|
022 | 755 | 644 |
027 | 750 | 640 |
002 | 775 | 664 |
006 | 771 | 660 |
007 | 770 | 660 |
在终端直接执行umask
只对本地登录有效,如果要永久修改,需要把内容umask=022
写入到配置文件中,配置文件可以从下一章节中找到。
3.1 针对交互式登陆:
优先级从高到低。
- /etc/bashrc
- ~/.bashrc
- ~/.bash_profile
- /etc/profile.d/*.sh
- `/etc/profile
3.2 针对非交互登陆:
优先级从高到低。
- /etc/profile.d/*.sh
- /etc/bashrc
- ~/.bashrc
参考文档
- linux下umask的使用讲解
- 如何设置UNIX/Linux中新创建目录或文件的默认权限
- 在Linux中执行命令ls -l文件中各个信息代表的含义图解
- 文件或目录权限chmod,更改所有者所属组chown
本文同步发表于作者博客: linux系统文件权限简明介绍
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。