一、相关概念
Linux最优秀的地方之一就在于多人多任务环境。为了让各个使用者有较为保密的文件数据,文件的权限管理尤为重要。
●文件的可存取身份:
owner:文件拥有者
group:文件所属用户组
others:其他人
●文件权限:
r: read,读
文件:是否能查看文件内容
文件夹:是否能列出目录结构
w: write,写
文件:是否能编辑文件内容(是否包含删除文件的权限?是否能修改文件名?)
文件夹:是否能在文件夹下创建、删除、复制、移动、重命名(能对当前文件夹重命名吗?)
x: eXecute,执行
文件:可执行权限
文件夹:能否进入该目录成为工作目录
1.身份介绍
9个字符:前三个是文件拥有者,4-6是所属用户组,7-9其他人权限
- owner (文件拥有者)
文件拥有者可以实现每个用户的隐私权和喜好的工作环境。
每个用户都可能有自己的私密文件,可以利用文件拥有者的身份设置权限使其他人无法查阅私密文件
- group(文件所属用户组)
用户组的最主要功能就是团队开发。
例如,当多个团队在同一台主机上开发时,每个团队下的用户可以互相修改文件,但是不能修改不是一个团队下用户的文件。
- others(其他人)
不属于该文件的文件拥有者和文件所属用户组的用户
【注】删除文件和修改目录名,都是目录的写权限
文件名 存在他所在目录的block里面
2.Linux的权限介绍
第一位是文件类型,接下来的字符,三个为一组(读、写、执行)
- rwx:权限分配中,rwx是固定顺序不会改变,没有对应权限就要-代替
- -∶表示没有对应权限,例如:第三组中w权限位置为-,表示其他人没有写权限
- 第一组:文件拥有者的权限
- 第二组:在文件所属用户组的用户的权限
- 第三组:非本人,且不在文件所属用户组的其他账号权限
a.txt权限说明?
- 普通文件类型
- 拥有者:可读写同
- 组用户:可读写
- 其他用户:只读
二、权限设置
1.字母形式
- 权限分配对象:
u: user,所有者身份ownero
g: group,所有者同组用户
o: others,其他用户
a: all,给所有用户设置权限,默认是所有用户
- 权限分配方式:
+:新增权限
-︰删除权限
=:设置权限
相同权限可以一起设置:sudo chmod u=rwx,go=rw a.txt
chmod 选项 权限 文件名
【常用选项】:R:递归修改,连同目录下所有文件都变更sudo chmod u+x,go-r a.txt
//对txt文件执行拥有者权限+写,用户组和其他-读权限(权限一样可放一起写)
sudo chmod u=rwx,g=rw,o=r a.txt
sudo chmod a=rw a.txt //a=是统一设置成相同权限
sudo chmod +x a.txt //默认给所有用户设置权限
2.数字形式
Linux文件的基本权限有九个(-rwxrwxrwx),九个权限是三个三个一组的。其中我们可以用数字表示各个权限,权限的分数如下:
- r : 4
- w: 2
- x: 1
- - : 0
每种身份(owner/group/others)的权限就是各自三个权限的分数之和。例如当某个权限为:[-rwxr-xr--]每种身份的权限分数就是:
- owner = rwx =4+2 + 1=7
- group = rwx = 4+0+1= 5
- others = rwx =4+ 0+ 0= 4
三、sudo
sudo可以让管理员( root)事先定义某些特殊命令谁可以执行。
默认只有root可以执行sudo,其他用户可以通过配置文件/etc/sudoers进行配置查看sudo配置文件: sudo vim /etc/sudoers 或 visudo
purrALL=(ALL:ALL) ALL
purr:表示用户名,如果是用户组,则可以写成“%组名”
ALL:表示允许登录的主机(地址白名单
(ALL:ALL):表示以谁的身份执行,ALL表示root身份
ALL:表示当前用户可以执行的命令,多个命令可以使用“,”分割