当前位置: 首页 > Linux

Linux:Linux文件权限和目录配置

时间:2023-04-06 03:45:59 Linux

本文记录相关Linux阅读笔记Linux是一个多用户、多任务系统,对于每个文件都有一个文件所有者(user)、用户组(group)和其他用户(Others)拥有三个身份的单独权限,每个账号可以拥有多个用户组。Root拥有最高权限,是Linux的管理员账号。在Linux系统中,默认情况下,系统上的所有账户和一般身份用户,以及root信息,都记录在/etc/passwd文件中。至于个人密码,则记录在/etc/shadow文件中。另外,所有的Linux组名都记录在/etc/group中。Linux中文件属性的第一列表示文件的类型和权限,第一个字符表示文件是目录、文件还是链接文件。如果【d】代表目录如果【-】代表文件如果【l】代表连接文件如果【b】代表接口设备如果【c】代表设备中的串口设备文件,如键盘,鼠标(一次性读取设备)后面的字符,3个为一组,是“rwx”的3个参数的组合。其中,[r]表示可读,[w]表示可写,[x]表示可执行。3个权限的位置不会变化,没有权限会出现[-]。第一组是文件所有者的权限。第二组是同一用户组的权限。第三组是其他非用户组的权限。第二列表示有多少文件名连接到该节点。第三列表示这个文件(或目录)的编号第四列owneraccount表示文件所属的用户组。一个帐户可以附加到一个或多个用户组。第五列为文件的大小,默认单位为B。第六列为文件的创建日期或最新修改日期。这一栏的内容是日期(月/日)和时间,如果文件被修改的时间离现在太远,那么时间部分只会显示年份。如果想显示完整的时间,可以使用“--full-tiem”参数查看。如果系统安装的是简体中文,日期字段会显示中文,但在纯文本的终端模式下无法正确显示中文。此列可能会出现乱码。如果修改配置文件,以ubuntu为例,将“/etc/default/locale”的LANG变量改为:LANG="en_US.UTF-8"第七列为文件名if如果文件名包含“.”,表示该文件为隐藏文件。您可以使用“ls-a”来显示所有隐藏文件。要查看ls的更多参数,可以使用“manls”或“infols”查看其基本用法。对于文件夹权限,如果用户要进入该目录,则该用户对应的权限至少要是可读可执行(r-x)。如何更改文件属性和权限常用于修改用户组、所有者和各种身份的权限。有:chgrp:更改文件所属的用户组chown:更改文件的所有者chmod:更改文件的权限更改文件所属的用户组:chgrp$chgrpusergroup[-R]dirname/filename#-R代表递归连续更改,连同child目录下的所有文件和目录,注意要更改的用户组必须存在于/etc/group中,否则会提示更改文件属主的错误:Inchownchown除了可以改变属主,还可以改变文件的用户组子目录下的文件和目录。注意更改的owner必须是在/etc/passwd文件中记录的用户名。这两个命令在复制文件后常用,复制的文件要给其他用户$cpsourcefiletargetfile#复制后,检查文件的用户组发现与原文件一致,可以修改为其他用户更改权限:chmod文件权限的更改使用chmod命令,但文件权限可以使用数字或符号来更改权限。(1)数字类型改变权限readable,writable,executable分别代表不同的数字,r:4w:2x:1每个身份的三个权限需要累加,例如:[-rwxr-xr--]代表owner=rwx=4+2+1=7group=r-x=4+0+1=5other=r--=4+0+0=4所以这个文件的权限号是754,更改权限命令的语法是:$chmod[-R]xyzfileordirectory#其中xyz为上述数字类型的权限属性#-R为递归连续改变,子目录下的所有文件都会随着符号类型一起改变。改变文件权限,我们用u,g,o分别代表用户,组和其他,a代表所有身份all,那么读写权限可以写成r,w,x,那么命令格式可以是:对应的例子如下:#设置权限为'-rwxr-xr-x'$chmodu=rwx,go=rxtestfile#设置权限为'-rwxr-xr--'$chmodu=rwx,g=rx,o=rtestfile#如果我们不知道文件的权限,只想给大家写的权限$chmoda+wtestfile#如果想去掉某个权限而不改变其他属性,例如去掉所有人的可执行权限$chmoda-wtestfile有一些特殊的权限需要注意,例如要能够浏览目录,至少需要r和x权限。对于属于用户testuser本身的目录,即使目录下的某个文件对testuser没有任何权限,用户testuser仍然对该文件有rwx权限。例如$sudosu$cd/tmp$mkdirtesting$chmod744testing$chmod644testing/testing$ls-aldtestingtesting/testing#显示结果如下#drwxr--r--2rootroot4096Dec216:28testing#-rw-r--r--1rootroot0Dec216:28testing/testing#这时候我们切换到其他用户,$suvagrant#然后查看testing目录,因为有没有x权限,所以我们无法查看它,并且无法访问$ls-ltesing/#ls:cannotaccesstesting/testing:Permissiondenied#total0#-????????????????testing$cdtesting/#bash:cd:testing/:Permissiondenied#然后如果我们把文件夹变成vagrant用户,我们可以删除testing/testing$sudosu$chownvagranttesting$cd/tmp/testing/$rmtesting#终于删除成功了,即使testing/testing目录vagrant用户没有可写可执行权限。Linux目录配置Linux目录配置遵循FHS(文件系统层次标准)标准。目录树如下: