在Linux课程的第四章中我学了文件权限,基本权限为U(owner:属主)、G(group:属组)、O(other:其他用户),Linux系统通过U、G、O将用户分为三类,并对这三类用户分别设置三种基本权限,这种设置权限的方式称作UGO方式。读取权限(read):r,数字设定为4;写入权限(write):w,数字设定为2;执行权限(execute):x,数字设定为1。
chown:修改文件属主、属组。
chgrp:修改文件属组。
chmod:修改文件权限。
chown:如使用chown命令修改文件file(属主原为root)属主,改为cjx【chown cjx file】。
修改属主的同时也可以修改属组,只需在属主与属组之间加入“.”或“。”,如将file属主和属组改为cjx和linux(cjx和linux已用命令groupadd和useradd创建)【chown cjx。linux file】。
chgrp:只需更改文件属组而不需要更改属主时,可使用chgrp命令,如更改文件file的属组为linux(linux已存在)【chgrp linux file】。
若要将某目录下的所有子目录或文件同时修改属主或属组,只需在chown与chgrp命令后添加-R参数,如在含有很多文件的dir目录下同时修改属主和属组 【chown -R cjx:linux dir/】
chmod:设置权限的方式有两种,符号和数字。符号修改权限是使用u、o、g这3个符号代表属主、属组、其他用户这3种身份,a代表全部身份,r、w、x符号代表读、写、执行,通过赋值符增加、删除、覆盖文件权限(赋值符:+-=)。
如给文件file的属主增加执行权限【chmod u+x file】。
如给文件file的属组增加写入权限【chmod g+w file】。
同时给文件file所有对象增加读、写、执行权限【chmod a=rwx file】。
同时给所有对象删除执行权限【chmod a-x file】。
同时删除所有对象的全部权限【chmod a=- file】。
一次分别给不同对象增加或删除不同权限【chmod u=r,g=rx,o+w file】。
Linux系统有9个基本权限,可使用数字来代表各个权限,每种身份各自的3个权限数值累加,如,user=rwx=4+2+1=7,group=rw-=4+2=6,other=---=0,此用户权限为760。
例:给创建好的文件file01使用数字设置权限【chmod 777 file01】,则属主、属组和其他用户都拥有读、写、执行权限。
chown:Linux系统中用来改变某个文件属性的命令。
chmod:Linux系统中用来改变某个文件的访问模式的命令。
文件:x权限小心给予。
目录:w权限小心给予。
基本权限ACL
UGO权限只针对一个用户、一个组与其他用户,使用上有局限性,ACL主要是提供传统的UGO的r、w、x权限之外的具体权限设置,可以对单一用户、单一文件或目录进行权限设置。
getfacl命令查看ACL权限【getfacl /home/test.txt】
setfacl命令设置ACL权限,对每一个文件或目录进行更精确的权限设置,添加-m参数可以修改当前文件ACL权限。如修改用户alice下的text.txt文件的读、写权限【setfacl -m u:alice:rw /home/text.txt】。如为组增加rw权限【setfacl -m g:hr:rw /home/test.txt】。
mask用来指定最大有效权限。系统给用户赋予的ACL权限需要和mask的权限逻辑“相与”,“相与”之后的权限才是用户的真正权限。如将mask权限设置为r【setfacl -m mask::r /home/filel】,此时用户权限与其相与之后,有效的权限为r--,用户真正的权限也就是r--。mask并不能影响所有用户。
default命令可以继承上一个目录的权限。
SUID权限:当查看文件时,第四个字符为s,s表示特殊权限SUID。普通用户可以通过SUID提权,使用chmod命令给user增加SUID权限。即当为普通用户时【chmod u+s /user/bin/cat】。
SGID权限:在程序上添加SGID,用户在执行过程中会获得该程序用户组的权限。
Sticky权限:添加Sticky后,当用户对目录具有w、x权限,在该目录下建立的文件或目录,仅有自己与root才有权删除。
标签:Linux05,文件,属主,用户,chmod,file,权限 From: https://www.cnblogs.com/cjx0203/p/17858075.html