(一)文件权限
基础补充
文件基本属性(Linux中万物皆是文件)文件是操作系统用来存储信息的基本结构,是一组信息的集合。文件通过文件名来唯一标识。Linux中的文件名称最长允许255个字符,这些字符可用A~Z、0~9、. 、_ 、-等符号表示。与其他操作系统相比,Linux最大的不同点是没有“扩展名”的概念,即文件的名称和该文件的种类并没有直接的关联,例如,sample.txt可能是一个运行文件,而sample.exe也有可能是文本文件,甚至可以不使用扩展名。另一个特性是Linux文件名区分大小写。例如,sample.txt、Sample.txt、SAMPLE.txt、samplE.txt在Linux系统中代表不同的文件,但在DOS和Windows平台却是指同一个文件。在Linux系统中,如果文件名以“.”开始,表示该文件为隐藏文件,需要使用Is-a命令才能显示。
在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
通过设定权限可以用以下3种访问方式限制访问权限?只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的文件或目录的访问程度。一个文件或目录可能有读、写及执行权限。当创建一个文件时,系统会自动赋予文件所有者读和写的权限,这样,可以允许文件所有者查看文件内容和修改文件。文件所有者可以将这些权限改变为任何他想指定的权限。一个文件也许只有读权限,禁止任何修改。文件也可能只有执行权限,允许它像一个程序一样执行。
3种不同的用户类型能够访问一个目录或者文件:所有者、用户组或其他用户。所有者是创建文件的用户,文件的所有者能够授予所在用户组的其他成员及系统中除所属组之外的其他用户的文件访问权限。
每一个用户针对系统中的所有文件都有它自身的读、写和执行权限。第一套权限控制访问自己的文件权限,即所有者权限。第二套权限控制用户组访问其中一个用户的文件的权限。第三套权限控制其他所有用户访问一个用户的文件的权限。这3套权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限,就构成了一个有9种类型的权限组。
权限
如何查看文件属性:
ls命令:
文件权限
所谓的文件权限,是指对文件访问权限,包括对文件的读、写、删除、执行操作。Linux是一个多用户操作系统,它运行多个用户同时登陆和工作,因此,Linux将一个文件或者目录与一个用户与组联系起来的。
查看文件的权限
drw-r-xr-x 9 n1 m1 4096 Nov 13 00:30 apache-tomcat-7.0.61
三组权限,每组3个字母
r :读取权限
w :写入权限
x :执行权限
-:没有权限
root :所属用户(属主)
root:所属的组(属组)
权限的UGO模型
三组权限
属主的权限:属组的权限:其他的权限
所有说:将来修改文件的权限 可以从rwx和ugo两个方面进行修改
修改文件的权限
修改文件所属
chown n1 /var/lucky1
chown n1:m1 /var/lucky2
修改文件夹时,让子目录迭代修改
chown -R n1:m1 school chgrp m2 lucky3
当用户的组被修改之后,需要重新登录才能获取新组的权限
修改文件的rwx
chmod o+w lucky4
chmod ug+rw lucky4
chmod ugo-rw lucky4
(权限RWX分别对应数字 4 2 1 5= 4+0+1 r-x)
chmod 664 lucky4 ->(rw- rw-r--)
权限赋予
我们可以将管理用的权限分配给普通用户
文件位置在 vim /etc/sudoers 但是修改这个文件需要使用命令
visudo
修改 Line 99
n1 ALL=(root) /sbin/useradd
n1 ALL=(root) /sbin/*
如何使用
su n1
sudo chkconfig iptables off
一般权限:
特殊权限:
特殊权限在文件和目录上具有特定的功能,但由于它们带有特定的权力,若无实际需求,不建议随意开启,以防安全风险或被恶意攻击者利用。以下是这些特殊权限的详细说明:
1)s 或 S(SUID,Set UID)
当为可执行文件设置此权限时,运行该文件的用户将获得文件所有者的权限来执行它。需要特别注意的是,带有SUID权限且以root为所有者的文件可能会被恶意利用。攻击者可能会寻找具有此权限的文件,试图创建系统内的后门。
2)s 或 S(SGID,Set GID)
当在文件上设置此权限时,其效果与SUID类似,但此时运行文件的用户将获得文件所属的用户组的权限。这意味着该文件可以存取其所属用户组所能使用的全部系统资源。
3)T 或 t(Sticky)
此权限通常用于目录,如/tmp或/var/tmp。这些目录可供所有用户创建和存储文件,但只有文件的创建者或root才能删除或移动这些文件。这是为了保护用户之间的数据不被其他用户随意删除。
由于SUID、SGID和Sticky权限在显示时占据执行权限x的位置,因此大小写有所不同。当执行权限与SUID、SGID、Sticky同时开启时,将使用小写字符表示:
-rwsr-sr-t 1 root root 4096 6月 23 08:17 conf
而当关闭执行权限时,则使用大写字符表示:
-rwSr-Sr-T 1 root root 4096 6月 23 08:17 conf
(二)权限字和权限操作
改变所属群组chgrp:
改变文件拥有者chown:
改变文件属性chmod:
文字设定法:
数字设定法:
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将具相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(0)
例如,如果想让某个文件的属主有"读/写"两种权限,需要把4(可读)+2.(可写)=6(读/写)
举例说明:文件的权限字符为:rwxrwxrwx,这九个权限是三个、三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
每种身份((owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限
为:rwx r--r-x分数则是 owner= rWx= 4+2+1=7 group=rwx=4+0+0=4 others=---=4+0+1=5