账号的权限
在Linux下超级用户就是root,root账号基本可以做任何事,普通用户在某些方面则会受到权限不足无法执行指令的约束。
那如果我们想要在普通用户下执行超出自己权限的命令是该怎么办呢?
我们可以使用sudo来短暂的提升自己的权限,但是使用sudo的前提是我们的账户要在信任列表里。
那该如何把自己的账户添加到信任列表里呢?
当我们在root账户下执行vim /etc/sudoers命令后找到%wheel的位置,把%wheel那一行复制到下面一行,将%wheel改成自己的账户名即可。切回后就可以使用sudo命令了
文件的权限:
属性权限:
“r”对应的是读取权限,“w”对应的是写入权限,“x”权限对应的是执行权限,比如一个文件没有x权限的话,则我们无法进入这个文件
怎么修改文件的权限呢?
u,g,o,a分别对应拥有者,所属组,其他人,前三个之和
前一个bmm为拥有者,后一个为所属组
修改rwx
使用chmod u-r 文件名,就删除了拥有者的r权限。
使用chmod u+r 文件名,就添加了拥有者的r权限。
使用chmod a-r 文件名,就删除了拥有者,所属组,其他人的r权限。
注:若文件不在当前路径下则需要所以绝对路径
也可以使用8进制的方法来修改,1代表有,0代表无。因为二进制下111的值为7。如777代表所以权限都有,776代表没有x权限。
chmod 7(代表拥有者)7(代表所属组)7(代表other) 文件名。
注:若文件不在当前路径下可以采用绝对路径,相对路径不行
修改拥有者和所属组
普通用户是不能将其文件的所属组和拥有者改成其他人,必须要权限提升才行,此操作一般是管理员进行操作。
使用(chown 修改后的拥有者 文件名)来进行修改
chown user1 file 将file文件的拥有者改为user1
chown :user1 file 将file文件的所属组改为user1
chown user1:user2 file 将file文件的拥有者改为user1,所属组改为user2
chgrp user1 file 也可以修改文件的所属组
注:若文件不在当前路径下可以采用绝对路径,相对路径不行
umask
在文件创建的时候就会有一个默认的权限,我们可以通过umask命令来设置默认权限
Linux下,普通文件默认为666,目录为777
目录的最大默认权限是读、写、执行;但文件的默认最大权限只有读、写;文件的执行权限不会在默认权限中赋予,只能用户手动赋予。
如果umask 022,这样目录的权限就是755,通过777与设置的022相减得到
粘置位权限(x权限的一种特殊形式,只能给目录设置,只能给other设置)
当我们进行多用户在同一个目录下开发时,目录对每个用户都具有读写权限
这样就会有一个问题,别人想要删除我们的文件该怎么办?
有人说可以修改文件的权限,但其实这种方法是不行的,因为当我们将自己文件对other设置成000,虽然other不能对我们的文件进行读写以及打开,但是可以删除,这是由于能不能删除是由该文件的目录是否有w权限决定的,由于是多用户开发,w权限是肯定有的。
由此为了解决这个问题就有了粘滞位的概念,当目录被赋予粘滞位权限后,每个用户则就只能对自己创建的文件进行删除了,无法删除别的用户的文件
设置粘滞位
chmod +t 目录(可以采用绝对路径,相对路径不行)
删除粘滞位
一般来说粘滞位谁设置谁取消,权限更高的用户也是可以取消(root)。
chmod -t 目录(可以采用绝对路径,相对路径不行)