000权限是什么意思
在linux中,000权限表示文件对于相应的用户,用户组,所有其他用户均没有可读,可写,可执行权限. 看起来这个文件好像就对所有人都隐身了,虽然你能看到我,但是你不能对我做任何事情.
正常文件权限举例
我们知道在Linux中,不管是文件还是目录,都有权限的概念,要看到一个文件的权限,我们可以使用ls -l命令,或者是更加具体的stat命令
ls -l testfilestat testfile
可以看到,testfile这个文件是属于test1用户,test1组的,其文件权限是664,也就是test1用户可读可写,test1组的用户也可读可写,其他用户只可读.
当一个用户没有权限的时候,对其操作会报错Permission denied,比如这儿我用test2用户来向这个文件中写入内容.
因为test2用户不是test1用户,也不在test1组中.
然后我们换成root用户来操作这个文件,可以看到root可以正常的读,写这个文件.
echo 'root here' > /tmp/testfilecat /tmp/testfile
说明linux里面root确实是一个很超级的用户,但是这个用户的超级权限到底有多大.也就是说,如果我把这个文件的权限改成000,会怎么样?
root可以正常操作000权限的文件
我们先把文件的权限改成000,表示test1用户,test1组的用户,非test1组的用户都没有读,写,执行权限.
chmod 000 /tmp/testfile
尝试使用test1用户来写入和读出内容,确实都没有权限了.
但是我们使用root用户来写入和读出是没有问题.
可以看到,在linux中,文件权限的控制对于root用户来说是没有用的.也就是说,不管文件权限是什么,root用户都可以读写其中的内容.
那么这个时候对于文件的属主test1,我还对这个文件有什么权限? 还可以把这个文件的权限修改回来.
对我们有什么启示
root用户在linux里面确实是一个超级用户,所以下面几点要注意,避免被别人用root登录到机器来随便干坏事:
1.如果可以的话,使用passwd -l root把root账号锁住,这样通过密码是无法登录root用户的.
2.如果机器开启了sshd,那么把配置PermitRootLogin设置为no或者是without-password,分别表示不能通过ssh登录和只能用ssh key登录.
我是把机器的root用户都锁住的,然后把自己的id_rsa.pub文件内容复制到了服务器的/root/.ssh/authorized_keys中,这样只有我机器才能登陆我的服务器.