在说文件权限掩码之前,必须了解下linux下的文件权限,比如在linux下可以通过“ls -l”命令查看文件的权限,输入后可以获得如下显示:
drwxrwxr-x 3 linux linux 4096 Jun 6 18:03 test
在显示中“drwxrwxr-x”这十个字母中第一个字母‘d‘为文件类型表示目录,同字段还可以是‘-‘普通文件、‘c’字符设备文件、‘b’块设备文件、‘l’连接文件、‘s’socket文件和‘p’管道文件。除此之外剩下九个字母,三个一组分别表示文件所有者(owner)对当前文件享有的权限,与文件所有者同用户组的用户(group)对文件享有的权限,其他用户(other)对文件享有的权限。其中‘r’表示可读、‘w’表示可写、‘x’表示可执行如果文件类型是目录而这个位决定能否进入这个目录。
如上文中
rwx:表示用户所有者对当前文件有读写权限,可执行权限
rwx:表示用户所有者同组用户对当前文件有读写权限,可执行权限
r-x:表示其他用户对当前文件有读权限,可执行权限,没有写权限不能修改文件
接下来我们开始说掩码及掩码的作用。
在系统中创建文件都有一个默认权限,比如创建普通文件可能是“-rw-rw-rw-”当然写程序是很多时候写成“0666”,“-rw-rw-rw-“用一个八进制数据存储就是“0666”每个权限码占一位。
而权限掩码的作用是根据用户的需求屏蔽掉不希望给别人的权限,比如普通文件的权限是“-rw-rw-rw-”,所有用户对文件都享有读写权限,而这带来的问题就是文件可以被任何人修改从而导致文件数据被篡改导致数据丢失。这个时候用户可以通过设置文件掩码来屏蔽到本需要赋予其他用户的特定权限。
比如:
文件创建后权限是0666
文件权限掩码是0022
文件最终的权限是0644
即0666 | 0022 = 0644
权限掩码在每个linux系统里都有默认值,多数为0022,当然用户也可以自己修改权限掩码的值。
修改用户权限掩码可在自己用户目录下的.bashrc(ubuntu)里添加umask 0022。
货在终端直接执行命令修改权限掩码
umask 0022
实例:
umask 0
touch test1
ls -l test1
umask 0022
touch test2
ls -l test2
对比两次运行结果,可了解umask的作用。
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)