一、权限基础
在Linux中,每个文件和文件夹都拥有自己的所有者、组和权限。权限是用来控制对文件和文件夹的访问的。权限分为三种类型:读取权限、写入权限和执行权限,分别对应的是r、w和x。
不同的用户或用户组对同一文件或文件夹可能会有不同的权限。
例如,以下命令将文件夹test的所有权赋予用户webadmin,同时删除其他所有用户的权限,对于目录test里的文件,每个用户只有读取和执行的权限,webadmin有读取、写入和执行的权限。
chown webadmin test
chmod -R 755 test
二、权限的数字表示
Linux中,权限可以用数字表示。r对应4,w对应2,x对应1。将数字相加便可表示出不同的权限组合。
例如,数字7代表权限为rwx。
将数字表示权限的命令如下:
chmod 777 test
三、修改文件夹权限
用户对文件夹的权限可以通过命令chmod改变。
以下命令将文件夹test的所有权赋予用户webadmin,同时删除其他所有用户的权限,对于目录test里的文件,每个用户只有读取和执行的权限,webadmin有读取、写入和执行的权限。
chown webadmin test
chmod -R 755 test
四、查看文件夹权限
用户对文件夹的权限可以通过命令ls -l查看。
以下命令将查看文件夹test的权限:
ls -l test
五、特殊权限
除了三种基本权限外,还有三个特殊的权限:setuid、setgid和sticky bit。
setuid权限可以让一个程序在执行时获取文件所有者的权限。
setgid权限可以让文件和文件夹的组权限继承自父文件夹。
sticky bit权限可以防止文件被误删。
下面的命令将test文件夹的sticky bit权限设置为on:
chmod +t test
六、用户组
用户组是指具有相同权限的一批用户的集合。可以使用Groupadd命令添加一个新的用户组。例如:
groupadd developers
可以通过以下命令将用户添加到用户组:
usermod -a -G developers user1
七、文件夹的默认权限
在Linux中,可以为新建的文件夹设置默认的权限。这样,每当用户在该文件夹下创建新的文件夹时,它们就会继承相应的默认权限。
以下命令将文件夹test的默认权限设置为755:
chmod g+rws,o-rwx test
setfacl -d -m g::rwx test
八、使用ACLs进行高级权限管理
ACLs是一种高级权限系统,可以为文件和文件夹指定更加灵活和细致的权限设置。ACLs允许用户详细指定每个用户和用户组的访问权限,并可以具体指定哪种用户拥有哪些权限。
setfacl -m u:user1:rwx /var/www
setfacl -m g:developers:rwx /var/www
setfacl -m m:user1:rwx /var/www
上述命令将为/var/www文件夹指定了一些ACLs规则。