linux入门基础知识及体系:Linux一些重点知识整理的很全面
linux入门基础知识及体系:Linux一些重点知识整理的很全面表示所属群组表示拥有者总共有10位。第一位表示文件类型,d表示目录,-表示文件,l表示链接的文件,d表示可以随机访问的设备(例如U盘),c表示一次性读取的设备,例如 作为鼠标或键盘等等。后9位数字按顺序对应于三个身份所拥有的权限,身份顺序为:所有者,组,其他,并且权限顺序为:可读,可写和可执行。例如:-r-xr-x ---表示当前文档是文件,所有者是可读写的,并且同一组中的用户是可读写的,其他用户没有任何权限。表示链接数,表示有多少个文件链接到inode号码。
我们都知道Linux是一个多用户,多任务的系统。这也是它的最优秀的特性,也就是说,可能有很多人同时在系统上工作,因此请不要强行关机。
同时,为了保护每个人的隐私和工作环境,对于某个文档(文件,目录),Linux系统定义了三个身份,即拥有者(owner)、群组(group)、其他人(others)。每个身份对应三种类型的权限:可读和可写,可执行(Excutable),通过这种设计可以确保每个用户拥有的数据的隐私性。
文档属性
使用命令ls -al --full-time,或者此命令的缩写ll可以查看文件或目录的所有属性。如下:
从上面可以看到,每一行都有7列,分别是:
第一列
总共有10位。第一位表示文件类型,d表示目录,-表示文件,l表示链接的文件,d表示可以随机访问的设备(例如U盘),c表示一次性读取的设备,例如 作为鼠标或键盘等等。
后9位数字按顺序对应于三个身份所拥有的权限,身份顺序为:所有者,组,其他,并且权限顺序为:可读,可写和可执行。例如:-r-xr-x ---表示当前文档是文件,所有者是可读写的,并且同一组中的用户是可读写的,其他用户没有任何权限。
第二列
表示链接数,表示有多少个文件链接到inode号码。
第三列
表示拥有者
第四列
表示所属群组
第五列
表示文档的大小,以字节为单位
第六列
表示文档的最后修改时间。请注意,这不是文档的创建时间。
第七列
表示文档名称。以点(.)开头的是隐藏文档
变更拥有者(owner)
位置
cat/etc/passwd
注意:它必须是此位置中已经存在的帐户。也就是说,/ etc / passwd中有记录的拥有者才可以更改它。
语法
chown[-R][帐号名称][文件或目录]
chown[-R][帐号名称]:[群组名称][文件或目录]
备注:此命令也可以顺便变更文档群组,但是仍然建议使用chgrp命令更改文档组。
选项
-R 递归变更,即连同次目录下的所有文件(夹)都要变更。
用法
chown daemon test 变更文件夹test账号为daemon。
chown daemon:root test 变更文件夹test群组为root。
chown root.users test 变更文件夹的账号为root,群组为users
chown .root test 单独变更群组为root
备注:尽管可以在拥有者与群组间加小数点(.),但为了避免有的友友在命名中带点,所以还是建议使用冒号“:”来隔开拥有者与群组,以避免误判。
变更群组(group)
位置
etc/group
备注:你可以从这里查看到所有群组
语法
chgrp[-options][群组名][文档路径]
备注:关于options,可以通过man chgrp、info chgrp、chgrp --help等命令可以查询详细用法。
用法
chgrp -R users test 命令:改变test文件夹及其所有子文件(夹)的群组为users。
注意:群组名称不在位置内,将会报错invalid group。
变更权限
Linux文档只有三种基本权限,分别是read/write/execute,加上身份owner/group/others也一共有九个。更改权限的方法有两种,即符号方法和数值方法。
符号法
使用u,g,o来分别代表三种身份,a表示全部身份;分别使用r、w、x表示三种权限;分别使用 、-、=表示操作行为
语法
chmod|ugoa| (加入)-(除去)=(设置)|rwx|文档路径
设置权限(=)
如:变更目录test的权限为任何人都可读、写、执行。
chmodu=rwx g=rwx o=rwxtest
--或
chmodugo=rwxtest
--或
chmoda=rwxtest
去掉权限(-)
去掉目录test执行权限
chmodu-x g-x o-xtest
--或
chmodugo-xtest
--或
chmoda-xtest
备注:执行权限(x),对目录而已就是其他用户是否可以通过cd test成为工作目录。
添加权限( )
增加目录test执行权限
chmodu x g x o xtest
--或
chmodugo xtest
--或
chmoda xtest
备注:如果我们编写完一个shell文件test.sh后,通过chmod a x test.sh就添加了文件执行权限。
数字法
顾名思义,它使用数字表示权限,并且r,w和x分别为4、2和1。三种权限累加就可以得出一种身份的权限。
把目录test的权限设置为任何人都可读、写、执行。如下:
chmod777test
目录test的权限设置为任何人都可读与写。
chmod666test
赋予一个shell文件test.sh可执行权限,拥有者可读、写、执行,群组账号和其他人可读、执行。
chmod755test
备注:是不是发现数字法更简单啊
文件和目录权限差异
文档权限对于文件和目录有巨大的差异
文件
针对的是该文件内容
- readable 可读取该文件的实际内容
- writable 可以编辑、新增或者是修改该文件的内容
- executable 有可以被系统执行的权限
备注:拥有w权限并不意味着您可以删除文件。删除文件是目录权限控制的范围。
这是因为目录的相关权限和属性记录在目录的inode中,并且目录中所有文件的名称和相应的索引文件(inode)号都记录在目录所属的块中,因此当我们 读取某个文件读取文件时,必须先读取目录的索引节点,然后读取目录的块信息,然后获取要读取的文件的索引信息。
也就是说,在哪个块上存储文件,最后可以读取文件内容(此内容需要了解Linux文件系统,例如Ext2 / Ext3 / Ext4,我们将在后面详细介绍)。请记住,文件权限仅对文件内容有效。
示例说明
使用root身份读取目录test001下的文件test001-1
查看目录物理全路径:pwd
列出有关的目录和文件:ll -di / /root /root/test001 /root/test001/test001-1
通过man ls 查看-i,全称inode,即 print the index number of each file
- 目录/的inode:通过挂载点的信息找到inode号码为2的block。
- 目录/的block:通过上一步骤找到的block,找到root/目录的inode号码为131073。
- 目录root/的inode:读取编号为131073的inode找到目录的block。
- 目录root/的block:通过上一步骤找到的block,找到root/test001/目录的inode号码为527524。
- 目录root/test001/的inode:读取编号为527524的inode找到目录的block。
- 目录root/test001/的block:通过上一步骤找到的block,找到文件test001-1目录的inode号码为527526。
- 文件test001-1的inode:读取编号为527526的inode找到文件的block。
- 文件test001-1的block:通过上一步骤找到的block,读取文件内容。
由于是root用户,因此有权阅读任何文档。如果使用一般帐户,则上述每个步骤的读取内容也会与权限匹配。
目录
针对的是该目录下的文件对象
- readable 拥有读取目录结构列表的权限,即可以通过ls命令查询目录清单
- writable 具有变动该目录结构清单的权限,即可以在该目录中创建,迁移,删除和重命名文件。
- executable 拥有进入此目录的权限,您可以使用cd命令成为工作目录。
备注:从上面可以得出结论,当打开目录供任何人浏览时,至少需要授予r或x权限。要读取目录文件的内容,至少需要目录权限x和文件权限r。
总结
可以为Linux的每个文档分配三种类型的身份的rwx权限。 chgrp命令更改文件组,chmod命令更改文件权限,chown更改文件所有者;然后请记住使用文件权限来保护数据的安全性。
以上是本文的全部内容,希望对大家的学习有帮助,也希望大家多多支持 php自学中心