权限介绍
我们首先使用ls -l
指令查看文件的权限信息(以/etc/fstab为例):
ls -l /etc/fstab
可以看到输出包含:
rwx rw- r--
权限表示共有9位,每3位为一组,分别表示拥有者、所属组的成员和其他成员。其中,r
表示读(read)权限,w
表示写(write)权限,x
表示执行( execute )权限,-
表示无权限。
所以这个输出rwx rw- r--
表示:拥有者有读、写、执行三个权限;所属组的成员拥有读、写权限;其他成员只有读权限。
修改文件
Linux下对文件进行读写操作时,可能出现如下报错:
-bash: xxx: Permission denied
所以我们需要修改文件的权限。
修改文件权限
文件的最高权限为9位都是1,即111 111 111
,转为十进制即777
。
首先切换到根用户,进入根用户
查看文件权限:
ls -l
赋予文件可操作的最高权限(以/etc/fstab为例):
sudo chmod 777 /etc/fstab
若无法赋予权限
若出现报错:
chmod: changing permissions of 'fstab': Operation not permitted
是因为我们执行的chmod命令,其底层实现是chattr命令。
执行 lsattr 查看文件属性:
sudo lsattr /etc/fstab
输出为:
----i--------e-- /etc/fstab
说明文件有i属性和e属性,无法修改。
去除文件i属性:
sudo chattr -i /etc/fstab
去除文件e属性:
sudo chattr -e /etc/fstab
然后执行 lsattr查看,发现输出为:
---------------- /etc/fstab
此时可以修改权限了:
sudo chmod 777 /etc/fstab
然后修改文件即可。
恢复文件权限
恢复文件权限:
sudo chmod 440 /etc/fstab
添加文件i属性:
sudo chattr +i /etc/fstab
添加文件e属性:
sudo chattr +e /etc/fstab
学习更多编程知识,请关注我的公众号: