Linux运维之家程序员开发

Linux实用知识持续构建——基础篇

2016-07-20  本文已影响122人  liufxlucky365

这是什么

本文将持续更新在学习Linux过程中遇到的基础知识点的总结,为了简单实用,避免长篇大论令人生厌,尽量保持简洁.
或有不准确的地方,请注意

Linux简史

计算机的发明
Unix诞生
GNU (GNU's not Unix)
Linux

Linux主要目录

主要目录

此外还有一些目录经常成套出现在以上个别目录中,意义是差不多的

/var

主要存放一些经常变化的文件,和系统运行过程中产生的文件

/proc

这个目录比较特殊,是一个虚拟文件系统,保存着系统内核,进程,外设,网络等的状态,数据全在内存中,本身不占用
任何硬盘空间,比较重要的目录有/proc/cpuinfo, /proc/ioports, /proc/net/*

注意linux中文件的目录结构只是逻辑结构, 真正的物理结构还要看实际挂载位置

文件与目录权限

权限基础

linux中每个文件(目录本质也是文件),都会有一组以下权限串rwxrwxrwx

另外,这三组rwx分别代表了对于文件创建者,文件用户组,其他人的权限
通常也会用三个八进制数来表示权限,比如rwxrwxrwx会用777表示,r-x-wx---530表示

inode

inode是linux的重要概念,对于理解权限如何发挥作用和软硬链接非常有用
inode可以理解为linux存储文件的'本体',文件名与inode的关系类似ip于域名的关系,系统底层真正操作的是inode
inode保存了文件的拥有者,用户组,权限,字节数,存储位置...

相关命令

rwx于文件意义
rwx于目录意义
权限修改

文件权限修改有两种办法

相关命令

默认权限

umask控制,类似子网掩码. 创建文件时,系统会去掉umask标记的权限,比如umask为111则创建的文件权限为666
但要注意,无论umask如何设置新建的文件都不会具有x权限,为了安全起见, 一般umask为022

SetUID (SUID)

想想这样的场景, /etc/shadow文件中保存着所有用户的密码信息,只有管理员能查看. /usr/bin/passwd为修改密码程序
所有用户都有执行该程序的权限, 但是我们进程的权限与启动用户一致的, 那非管理员启动的passwd进程是如何修改密码呢?

这是由特殊权限SetUID控制的, 当文件拥有者的权限中执行位为s时, 其他用户执行该文件期间可以具有拥有者的权限,
仅对二进制文件有效

类似的还有SetGID(SGID), 表明执行期间拥有文件所在用户组的权限

Sticky Bit (SBIT)

想想这样的场景, 团队公共目录 ~/work, 所有人都拥有该目录的x权限, 所以都能够进行删减和重命名, 如何避免误操作?

只需要为目录设置SBIT权限即可, SBIT只对目录有效, 设置后仅有root或拥有者可以删减对应文件

SUID SGID SBIT权限修改

第一种是在原来三位权限前再添加一位

或者使用符合, chmod u+s|g+s|o+t file

注意当看到S或者T时, 说明无效, 比如不具备目录w权限, t就无效

软硬链接

linux中有软硬链接文件, 可以方便用户管理和使用文件系统, 首先回忆一下前文中inode的概念...

硬链接

并未创建新的inode节点, 只是新建了一个文件名, 并指向源inode, 通过ls -i可以看到文件的链接数+1
当删除源文件时, 不会影响链接文件. 创建硬链接ln source target

因为是公用inode所以就决定, 硬链接不能跨文件系统, 不能远程

软链接

新建了一个链接文件, 然后这个文件指向了源inode, 类似windows的快捷方式, 创建方式ln -s source target

上一篇 下一篇

猜你喜欢

热点阅读