zoukankan      html  css  js  c++  java
  • linux用户登录

    一、linux用户登录过程访问的文件

    • /etc/passwd---用户登录时,linux会先到这里查看用户Id、组Id、登录后的shell、用户工作目录
    • /etc/shadow(影)---linux在这里取得用户密码比较和密码修改周期等策略问题在这里设置
    • /etc/group---在这里取出组名称、组id,组密码,支持的账号

    /etc/passwd文件结构分析

    /etc/shadow文件结构分析

    /etc/group文件结构分析

    1. 用户和组都可以设置密码,密码都是保存在/etc/shadow文件里,但是一般不使用组登录,所以组的密码一般为空的
    2. /ect/passwd文件主要提供登录后的shell信息和shell自动进入的工作目录
    3. 一个组当然可以有多个用户,多个用户用","分割
    4. adduser、passwd等shell脚本操作的就是以上文件,完全可以手动更改,但是注意默认位置
    5. 用户的运行权限是根据用户ID和组ID来判断的(详细内容见:linux的文件权限分析

    二、linux登录后的权限设置

     我们知道linux的权限概念是非常重要的,但是传统的权限仅是三种身份(owner,group,others)搭配三种权限(r,w,x)而已,并没有办法针对某一个用户或者某一个组来设置特定的权限需求。ACL可以针对单一用户、单一文件或目录进行r w x的权限设置,对于特殊权限的使用情况非常有帮助。(具体参见另文:待续。。。

    三.Quota

     linux是多用户的多任务的环境,所以会有多用户使用一个硬盘空间的情况,如果其中有几个用户大量占掉了硬盘的空间的话,那肯定会影响其他用户的使用权限,因此管理员应该适当限制硬盘空间给用户,以妥善的分配系统资源。这就需要用到Quota,这是linux权限的一个应用。(具体参见另文:待续。。。

    四、进程

      linux的哲学是"一些都是文件",而文件是有user group other的rwx权限的。程序是放置在磁盘中的文件,通过用户的行为来执行触发。触发后会加载到内存中成为一个个体,这就是进程。为了操作系统可管理这个进程,因此进程被给予了执行者的权限/属性等参数,并包括所需要的脚本与数据和文件数据等,最后再赋予一个PID。系统就是根据这个PID和他所携带的权限信息来判断其是否有执行某个操作的权限。

      在linux里任何的操作都是属于用户的,不存在没有用户的文件和线程。

      linux的/bin目录的用户是bin,他的权限是[rwxr-xr-x]。而bin用户本身是不可以登录的。所有的登录用户从/bin/bash里获得的程序都是执行的read和execute权限。每个用户登录的时候本身还是在和另一个用户在交互,不同的用户获得的bash线程的PID是不一样的。

    参考资料:Linux中用户管理详解(上)

    参考图书:鸟哥的linux私房菜            

  • 相关阅读:
    C#控件开发(三)
    C#控件开发(四)
    如何将方行的按纽改变为其他的形状
    C#绘制圆角矩形
    Win7右键不能新建文件夹
    WinForm窗体FormClosing事件导致无法关机
    反射动态调用WinForm窗口
    C#钩子本线程内消息拦截
    C#控件开发(一)
    七个C#编程小技巧
  • 原文地址:https://www.cnblogs.com/zhanghaiyublog/p/3596028.html
Copyright © 2011-2022 走看看