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

Linux学习日记--基础命令(5)--用户和组概念与管理--文件权限

时间:2015-09-25 14:42:49      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:文件

用户和组管理:


以下区间区别于centos6,和centos7

 Linux用户:Username/UID
        管理员:root, 0
        普通用户:1-65535
            系统用户:1-499, 1-999
                对守护进程获取资源进行权限分配;
            登录用户:500+, 1000+
                交互式登录;


Linux组:Groupname/GID
         管理员组:root, 0
         普通组:
            系统组:1-499, 1-999
            普通组:500+, 1000+

           组的类别
        用户的基本组(主组):
            #组名同用户名,且仅包含一个用户:私有组
        用户的附加组(额外组):一个用户可能属于多个组 

  Linux用户和组相关的配置文件:
        /etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);
        /etc/group:组及其属性信息;
        /etc/shadow:用户密码及其相关属性;
        /etc/gshadow:组密码及其相关属性;

  Linux安全上下文:
        运行中的程序:进程 (process)

            以进程发起者的身份运行:
                root: cat  则cat以系统管理员root权限运行
                tom: cat  则cat以普通用户tom权限运行

            进程所能够访问的所有资源的权限取决于进程的发起者的身份;

    Linux用户和组相关的配置文件:
        /etc/passwd:name:password:UID:GID:GECOS:directory:shell (用户名:密码:UID:GID:GECOS:主目录:默认shell
        /etc/group:group_name:password:GID:user_list [组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)]
        /etc/shadow:用户密码及其相关属性;

              用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
        /etc/gshadow:组密码及其相关属性;



用户和组相关的管理命令:
用户创建:useradd
            useradd [options] LOGIN
                -u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs
                -g GID:指明用户所属基本组,可为组名,也可以GID;
                -c "COMMENT":用户的注释信息;
                -d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
                -s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;
                -G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在;
                -r: 创建系统用户
                    CentOS 6: ID<500
                    CentOS 7: ID<1000

            默认值设定:/etc/default/useradd文件中

删除用户:userdel
        userdel [OPTION]... login
            -r: 删除用户家目录;

组创建:groupadd
        groupadd [OPTION]... group_name

            -g GID: 指明GID号;[GID_MIN, GID_MAX]
            -r: 创建系统组;
                CentOS 6: ID<500
                CentOS 7: ID<1000

组删除:groupdel
        groupdel GROUP

用户属性修改:usermod
        usermod [OPTION] login

            -u UID: 新UID
            -g GID: 新基本组
            -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;
            -s SHELL:新的默认SHELL;
            -c ‘COMMENT‘:新的注释信息;
            -d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
            -l login_name: 新的名字;

            -L: lock指定用户
            -U: unlock指定用户

            -e YYYY-MM-DD: 指明用户账号过期日期;
            -f INACTIVE: 设定非活动期限;


    给用户添加密码:passwd
        passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
        passwd: 修改自己的密码;

            常用选项:
                -l: 锁定指定用户
                -u: 解锁指定用户

                -n mindays: 指定最短使用期限
                -x maxdays:最大使用期限
                -w warndays:提前多少天开始警告
                -i inactivedays:非活动期限;

                --stdin:从标准输入接收用户密码;
                    echo "PASSWORD" | passwd --stdin USERNAME

   组密码:gpasswd
        gpasswd [OPTION] GROUP

            -a user: 将user添加至指定组中;
            -d user: 删除用户user的以当前组为组名的附加组

            -A user1,user2,...: 设置有管理权限的用户列表

        newgrp命令:临时切换基本组;
            如果用户本不属于此组,则需要组密码;
 



组属性修改:groupmod
        groupmod [OPTION]... group
            -n group_name: 新名字
            -g GID: 新的GID;

切换用户或以其他用户身份执行命令:su

            切换用户的方式:
                su UserName:非登录式切换,即不会读取目标用户的配置文件;
                su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;

                //Note:root su至其他用户无须密码;非root用户切换时需要密码;

            换个身份执行命令:
                su [-] UserName -c ‘COMMAND‘

            选项:
                -l:“su -l UserName”相当于“su - UserName”


文件权限管理:
    
  
 文件的权限主要针对三类对象进行定义:
        owner: 属主, u
        group: 属组, g
        other: 其他访问者, o

    每个文件针对每类访问者都定义了三种权限:
        r: Readable 读
        w: Writable 写
        x: eXcutable  执行

        文件:
            r: 可使用文件查看类工具获取其内容;
            w: 可修改其内容;
            x: 可以把此文件提请内核启动为一个进程;

        目录:
            r: 可以使用ls查看此目录中文件列表;
            w: 可在此目录中创建文件,也可删除此目录中的文件;
            x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录;

        --- 000 0
        --x 001 1
        -w- 010 2
        -wx 011 3
        r-- 100 4
        r-x 101 5
        rw- 110 6
        rwx 111 7

        例如:
            640: rw-r-----
            rwxr-xr-x: 755

    修改文件权限:chmod
        chmod [OPTION]... OCTAL-MODE FILE...

            -R: 递归修改权限

        chmod [OPTION]... MODE[,MODE]... FILE...
            MODE:
                修改一类用户的所有权限:
                    u=
                    g=
                    o=
                    ug=
                    a=
                    u=,g=

                修改一类用户某位或某些位权限
                    u+
                    u-

        chmod [OPTION]... --reference=RFILE FILE...
            参考RFILE文件的权限,将FILE的修改为同RFILE;


 修改文件的属主:chown         仅root可用;
            chown [OPTION]... [OWNER][:[GROUP]] FILE...

                用法:
                    OWNER
                    OWNER:GROUP
                    :GROUP

                    Note: 命令中的冒号可用.替换;

                -R: 递归

            chown [OPTION]... --reference=RFILE FILE...

        修改文件的属组:chgrp
             chgrp [OPTION]... GROUP FILE...
               chgrp [OPTION]... --reference=RFILE FILE...

               -R

申请进程执行权限:

前提:进程有属主和属组;文件有属主和属组;
        (1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;
        (2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组;
        (3) 进程访问文件时的权限,取决于进程的发起者:
            (a) 进程的发起者,同文件的属主:则应用文件属主权限;
            (b) 进程的发起者,属于文件的属组;则应用文件属组权限;
            (c) 应用文件“其它”权限;

在LINUX文件或文件夹存在3种特殊权限:SUID,SGID,sticky

      SUID
       
        文件拥有SUID后,当用户有执行权限,启动为进程之后,其进程的属主为原程序文件的属主

        权限设定:
            chmod u+s FILE...
            chmod u-s FILE...

       SGID
        默认情况下,用户创建文件时,其属组为此用户所属的基本组;
        一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组

        权限设定:
            chmod g+s DIR...
            chmod g-s DIR...

        Sticky
        对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除自己的文件;
        #/tmp默认拥有Sticky权限 防止用户删除非自身文件
        权限设定:
            chmod o+t DIR...
            chmod o-t DIR...

    文件或目录创建时的遮罩码:umask
        FILE: 0666-umask
            Note: 如果某类的用户的权限减得的结果中存在x权限,则将其权限+1
        DIR: 0777-umask    
    其中第一位为 (SUID, SGID, Sticky)
        umask: 查看
        umask #: 设定


Linux学习日记--基础命令(5)--用户和组概念与管理--文件权限

标签:文件

原文地址:http://openex.blog.51cto.com/6280069/1698137

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