码迷,mamicode.com
首页 > 系统相关 > 详细

m20预习笔记整理--linux基础知识

时间:2016-07-24 21:09:52      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:linux基础知识

程序由指令+数据组成
    高级语言--编译器--汇编语言--编译器--机器语言
    linux指的是GUN tools+linux内核


系统结构
    硬件
        内核(内核隐藏了硬件特性,将计算机的计算能力抽象提供给应用程序使用)
            应用程序(基于内核的systemcal实现的程序)
            shell(也是应用程序)
            库函数(.a或.so----是程序,但是没有执行入口,只能被调用)
                应用程序,基于库函数实现的程序


所有程序的运行,都是向内核发起请求,通过内核代为访问硬件。
    运行应用程序的空间---用户空间
    运行内核的内存空间---系统空间


应用程序的执行接口API
开发程序的接口---ABI


API不同决定了不同类型操作系统的应用程序不能在其他平台执行


systemcal过于底层,后来有人开发了高级的实现--库
    专有库--.a
    共享库--.so


程序的编译方式
    静态编译--内嵌库
    动态编译--使用共享库



进程的类型
    与终端相关,通过终端启动
    与终端无关,操作系统引导启动过程中自动启动


linux内核功能
    进程管理
    内存管理
    文件系统
    网络功能
    硬件驱动
    安全机制


linux的基本法则
    由目的单一的小程序组成,组合小程序完成复杂任务
    一切皆文件
    尽量避免捕获用户接口,尽量少的与用户交互
    配置文件以文本形式保存


linux根文件系统--树形结构


FHS文件层级结构标准
        /
        ├── bin         所有用户的基本命令程序文件
        ├── boot        引导加载器必须用到的静态文件,kernel,initramfs(initrd),grub
        ├── dev        存储特殊文件或设备文件
        ├── etc        系统程序的配置文件,只能是静态的
        ├── home    普通用户的家目录
        ├── lib         位系统启动或根文件系统上的应用程序(bin,sbin)提供共享库
            以及为内核提供的内核模块/lib/modules
        ├── lib64
        ├── media    便携设备挂载点
        ├── mnt        其他文件系统的临时挂载点
        ├── opt        附加应用程序的安装目录(第三方软件)
        ├── proc        伪文件系统---多为内核参数,抽象为文件格式
        ├── root        超级管理员的家目录
        ├── run       
        ├── sbin         供管理员使用的工具程序
        ├── srv        当前主机为服务提供的数据
        ├── sys        伪文件系统--主要用来管理设备
        ├── tmp        存放临时文件---系统会定期清理
        /usr        本身也是一个层级结构
        ├── bin
        ├── etc
        ├── games
        ├── include
        ├── lib
        ├── lib64
        ├── libexec
        ├── local        安装第三方程序的目录,也是一个层级结构安装本地应用程序
        ├── sbin
        ├── share
        ├── src
        └── tmp -> ../var/tmp


        /var        本身也是层级结构,经常发生变化的数据的存放位置
        ├── adm
        ├── cache
        ├── crash
        ├── db
        ├── empty
        ├── games
        ├── gopher
        ├── kerberos
        ├── lib
        ├── local
        ├── lock -> ../run/lock
        ├── log
        ├── mail -> spool/mail
        ├── nis
        ├── opt
        ├── preserve
        ├── run -> ../run
        ├── spool
        ├── tmp
        └── yp
--------------------------------------------------------------------------------
linux用户权限管理


man 5 shadow
man 5 passwd


用户,计算机的使用者,每个使用者有一个id,计算机更容易识别数字
    用户标识:用户名
    用户密码:认证手段


操作系统提供
        认证
        授权
        审计
组:用户组,用户的容器,便于实现权限分配


用户分类
    管理员
    普通用户
    系统用户
    登陆用户


用户标识:userid--UID
        16bits的二进制数字0-65535
        管理员为0
        普通用户:1--65535
            系统用户:1--499(centos5,6)
                     1--999(centos7)
            登陆用户:500--60000(centos6)
                        1000--60000  (centos7)


名称解析:
    用户名<---->UID
    根据名称解析库进行  /etc/passwd


用户组的分类
    分类1
        管理员
        普通用户


组id--GID
            管理员为0
            普通用户:1--65535
                系统用户:1--499(centos5,6)
                    1--999(centos7)
                登陆用户:500--60000(centos6)
                    1000--60000  (centos7)
    分类2
            用户的主组(基本组)
            用的附加组
分类3
    私有组:组名同用户名一样,且只有一个用户
    共有组:组内可以包含多个用户


认证信息
        通过对比事先存储的,与登陆时提供的信息是否一致
        用户密码:/etc/shadow
        组密码:/etc/gshadow
        组的信息库:/etc/group


密码的使用策略
    1使用随机面膜
    2最短长度不要低于8位
    3应该使用大小写字母,数字和标点符号四类中的三类
    4定期更换


权限管理
    进程安全上下文
    进程对文件访问权限应用模型
    进程的属主与文件的属主是否相同,如果相同则运行属主权限
    进程的属主与文件的属主不相同,对比属组权限是否相同,相同则应用属组权限
    进程的属主既不是文件的属主也不是同一属组,则应用其他人权限


九个字段RWX-RWX-RWX
        前三个是属主
        第二个是属组
        第三个是其他人
        R:读
        W:写
        X:执行


对于文件
        R:可获取文件的数据
        W:可修改文件的数据
        X可将此文件运行为进程,普通文件没有执行权限
        对于目录:
        R:可使用ls命令获取其下的所有文件列表,但是不包括详细信息不能使用ls -l
        W:可以膝盖此目录下的文件列表,即创建删除文件
        X:可以cd至此目录中,可使用ls -l


八进制权限表示法:r=4 w=2 x=1
三位数字,每个数字分别表示相应的权限如:777,664,640,600,755,750,775


注意:
    用户仅能修改属主为自己的那些文件的权限
    只有管理员能修改别人文件的权限
    只有管理员能够修改文件的属主和属组


--------------------------------------------------------------------------------
linux系统上的特殊权限
    SUID
    SGID
    STICKY


    SUID:
        默认情况下,用户发起的进程,进程的属主不是其发起者;因此是不是以其发起者的身份运行,                                               
        而是以文件自己的属主身份运行。


        SUID的功能:用户运行某程序时,如果此程序拥有SUID的权限,程序以其属主身份运行
        passwd命令具有SUID
        一般情况下,不建议给程序设置SUID,风险较大。
        有执行权限的为小写的s
        没有执行权限的为大写S
        chmod 设置SUID
        chmod u+1 -s file
SGID:
    一般用户创建文件夹时应用此权限的文件夹,其他用户在此目录下创建文件的属组为SGID组。不是用户的主组


SGID的功能:
    当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组,且以属组身份在此目录中创建新文件或目录时,新建的文件的属组不是用户的基本组(私有组),而是此目录的属组。
    chmod设置SGID
    chmod u+1 -s  dir


STICKY
    功能:对于属组或全局可写的目录组内的所有用户或系统上的所有用户在此目录中都能创建新文件或删除文件;如果为此类目录设置sticky权限,则每个用户能创建文件,且只能删除自己的文件。
    chmod设置STICKY
    chmod o+1 -t dir
    如果其他用户原本有执行权限则是小写t
    否则是大写T
    系统上的/tmp和/var/tmp均有STICKY权限


管理特殊权限的另一种方式
        000    0
        001    1
        010    2
        011    3
        100    4
        101    5
        110    6
        111    7
        chmod  1755


facl:
    文件的额外赋权机制,针对指定用户和组
    在原有UGO之外,另一层让普通用户能控制赋权给另外用户或组的赋权机制


setfacl -m u:用户名:rwx 文件名
           g:组名
getfacl 文件名           查看文件的facl权限


取消授权: setfacl -x u:name file
                      g:name


m20预习笔记整理--linux基础知识

标签:linux基础知识

原文地址:http://yangyouwei.blog.51cto.com/114816/1829343

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!