centos(8)-权限
linux可以有多个用户同时登录操作,并且彼此隔离,互不干涉。这是linux非常重要的安全机制,而实现这一点的关键就是权限。
权限身份
查看身份和权限
文件权限和目录权限
文件的rwx和目录的rwx含义是不一样的。
文件r:查看文件内容的权限,如有权执行cat命令看到文件内容。
文件w:修改文件内容的权限,如有权执行vi命令(还没讲)修改并保存。
文件x:执行文件内容的权限,如有权执行之前安装的bin/java可执行文件。
目录r:查看目录内容的权限,如有权执行ls命令查看目录内容。
目录w:可以在该目录下,执行文件的新建、删除、移动、重命名的权限。
目录x:进入目录的权限,如有权执行cd命令进入目录。
修改身份和权限
chown -R 用户名 /文件路径:即change owner,修改文件拥有者为指定用户,-R是指包含该目录下的所有子目录及文件。
chgrp -R 组名 /文件路径:即change group,修改文件的组为指定组,-R同上
chmod -R u=rwx,g=rwx,o=rwx ./hello.txt:修改权限,u是用户,g是组,o是其他。-R同上。
如下,hello.txt有了所有权限,并且变成了绿色,表示可执行文件。
数值权限
chmod 数值:还可以通过数值来修改权限,更加方便。
000是无权限,777是满权限。第一个数字是用户权限 ,第二个是组权限 ,第三个是其他权限,数值含义如下:
0:无权限
1:x执行权限
2:w写权限
4:r读权限
5:即1+4,rx权限
7:即1+2+4,rwx权限
还有3和6,意思同上。
用winscp修改权限
登录winscp,文件--右键--属性,在权限那一栏可以直接选择和取消RWX,下面八进制中三个尾数就是数值法,第一位0是特殊权限,这里不讨论。
默认权限
开头可以看到,root用户复制进来的hello.txt文件默认权限是rw-r--r--,如果是目录那么应该是rwxr-xr-x,这就是root用户的默认权限。文件默认没有x,这并不代表root没有执行权,而是通常创建的文件并不是可执行文件。如果自己创建的文件需要执行权,用户可以自行添加。
umask -S:查看默认权限,不加选项是以数值显示,-S是以符号显示。
数值显示时为何是0022?第一个0是特殊权限,这里不讨论。rwxr-xr-x应该是755,而777-755就是三个尾数022。
修改默认权限
假如现在有一个用户,安全级别非常高,所有文件都是私有的,其他人或组连访问权都没有,那么可以设置成rwx------
umask 077:rwx------就是700,777-700=077,就是上面要修改的权限。
mkdir dir:创建一个目录,名字为dir。
touch file:创建一个文件,名字为file。
此时发现,创建的文件file没有x权限,而目录dir默认有x权限,蓝色代表目录。前面说了x是进入目录的权限,这个是必需的。