• Linux笔记 用户组管理


    一、用户管理


    1.用户
    - 特性:
        每个用户都有唯一UID。UID=0为root用户;1-500为系统用户,只是用于运行进程,不需要登陆系统;500+为普通用户。不同Linux版本可能有所不同。
        每个用户都有一个家目录。root用户家目录为/root;普通用户家目录为/home/USERNAME。
        每个用户都有自己的邮箱文件。一般文件路径为/var/spool/mail/USERNAME。邮箱文件与家目录均是在用户创建时默认生成的。
        每个用户都属于一个基本组。如果创建用户时没有指定基本组,则默认属于与用户名同名的基本组中。基本组用于用户在创建文件或目录时所属组的归属。
        用户如果不设置密码不允许登陆。
     
     
    - 用户管理
        ①用户创建:
                useradd [OPTION] USERNAME
                    -u UID    指定用户UID号
                    -g GID|GROUPNAME   指定用户GID号/基本组,如不指定,默认创建与用户名同名的组作为其基本组。
                    -G GID|GROUPNAME  指定附加组,用户可以在基本组之外添加多个附加组。
                    -s SHELL  指定登陆shell,默认为/bin/bash,如果指定为/sbin/nologin,表示非登陆shell,一般用于系统用户。
                    -d DIR   指定家目录,如不指定,默认/home创建用户名同名的家目录。
                    -r   创建系统账号,不会自动创建家目录和邮箱文件,不需要登陆shell。
     
        ②用户删除:
                userdel -r USERNAME  
                    -r   删除家目录和邮箱文件,如果没有加选项,会保留家目录和邮箱文件,对后续会造成影响。
        
        ③用户删除:
                usermod [OPTIONS] USERNAME
                    *选项与useradd基本一致
     
        ④切换用户:
                su -l USERNAME
     
     
     
    2.用户组管理
    - 创建:groupadd GROUPNAME
    - 删除:groupdel GROUPNAME
     
     
     
    3.用户密码管理
    - 对于root用户,可以修改所有用户的密码:
            passwd USERNAME  交互式修改密码,回车后再输入密码
            echo "PASSWORD" | passwd --stdin USERNAME  无交互式修改密码
        
    - 对于普通用户,只可以修改自己的密码:
            passwd   交互式修改密码,回车后需先输入旧密码才可进行修改。
     
     
     
    4.相关配置文件
        用户:/etc/passwd
            test1:x:501:501::/home/test1:/bin/bash
            用户名:x:UID:GID:用户描述:家目录:登录shell
     
        用户组:/etc/group
            test4:x:1002:
            组名:x:GID:组成员
     
        密码:/etc/shadow
            test2:xxxxxxxx:17233:0:99999:7:::
            用户名:加密密码:各种时间
     
     
     
     
    二、权限管理
    1.三种用户访问类型:用户访问资源时,进程携带用户信息(UID和GID)。
    - 拥有者:用户UID和资源UID一致,则此用户为该资源拥有者。
    - 所属组:用户UID和资源UID不一致,进而比较用户GID和资源GID比较,一致则该用户为资源所属组。
    - 其他人:用户与资源的UID和GID都不一致。
     
    2.基础权限:
     
     
        <1>root:localhost -->ls -l
    total 1012
    -rw-------. 1 root  root    1382 Mar 30 08:10 anaconda-ks.cfg
    -rw-r--r--. 1 root  root    296 Jul 22 03:18 grade.txt
    drwxr-xr-x. 9 alice mary    4096 Apr 15 00:43 nginx-1.14.0
    -rw-r--r--. 1 root  root 1016272 Apr 17  2018 nginx-1.14.0.tar.gz
    -rwxr-xr-x. 1 root  root    202 Jul 14 07:46 test.py
    
    drwxr-xr-x. 9 alice mary    4096 Apr 15 00:43 nginx-1.14.0
        drwxr-xr-x  第一位为文件类型。后面九位为基本权限(每三位分别为拥有者、所属组、其他人)
        alice  创建该文件的用户,即资源所有者。对该资源的权限为rwx
        mary  文件资源所属组。该组的其他用户对此文件的权限为r-x。mary用户组之外的其他用户对此资源的权限为r-x
     
     
    - 三种基本权限
        ① r  可读权限
            对于普通文件,r权限可以读取文件内容。cat、vi、more、less等查看命令。
            对于目录,r权限可以查看目录内容。ls命令。
         
        ②w 可写权限
            对于普通文件,w权限可以修改文件内容。vi、sed、nano等编辑命令。
            对于目录,w权限可以修改目录内容,创建删除重命名文件。对文件内容本身的修改与目录的w权限无关。touch、mv、rm等命令。
     
        ③x 可执行权限
            对于普通文件,x权限可以执行文件内容,一般可执行的文件为二进制文件、脚本文件等。./FILE。
            对于目录,x权限指可以进入到目录中。cd命令。
     
     
    - 修改权限
        chmod -R MODE FILE 
            -R  表示递归,对目录下面的文件都进行权限修改
            MODE 指定修改的权限,一般有数字和符号两种表示方法。
                数字:775  -->  rwxrwx-wx
                           644  -->  rw- -w- -w-
                符号:【u 用户|g 组|o 其他人|a 所有】【+ | - | = 】【r | w | x 】  对不同的对象增加/减少/赋予不同的权限
                
                
    - 修改资源属者属组
        chown [-R] USER:GROUP FILE 
            chown USER FILE  只改拥有者
            chown :GROUP FILE  只改所属组
            chown [-R] GROUP FILE 递归,对目录中所有文件进行修改。
     
     
    3.默认权限:用户创建目录/文件时,实际默认权限为初始权限 - umask权限
            初始权限:文件初始权限为666,目录初始权限为777.
            umask权限:umask命令可以查看设置的umask值。默认为0022。第一位为特殊权限,暂且不提。后三位即控制稳健或目录在创建时的默认权限。
            计算方式:
                    文件:初始权限(666)- umask权限(022)=实际权限(644)。注意不要用数字直接相减,如666(rw-rw-rw-)- 033(----wx-wx)= 633(rw-r--r--)
                    目录:初始权限(777) - umask(022) = 实际权限(755)。同样不可以用数字直接相减。
     
        
    4.特殊权限
    - suid  set-UID,让用户临时取得文件拥有者权限。只能对可执行文件设置。如passwd命令,如果不设置suid权限,则普通非root用户对/etc/passwd无拥有者(root)权限,无法更改本地用户密码,加上suid权限才可以。MODE为u + s。
     
    - sgit  set-GID,可以对文件或目录进行修改。对于可执行文件,可以让用户临时取得文件所属组的权限。对于目录,目录A下创建的文件的所属组为目录A的所属组。一般用于创建共享文件。即先创建一个含有sgit权限的目录,之后不同用户在此目录创建的文件可以进行共享。MODE为g + s。
     
    - sbit  sticky-Bit,粘贴位,只可以对目录进行修改,目录下的用户不可以删除目录所属组其他用户的文件。MODE为o + t。
     
    - umask 0022   第一位指特殊权限
        0 --> 000 三个特殊权限都无
        1 --> 001 只含有sbit权限
        2 --> 010 只含有sgit权限
        4 --> 100 只含有suid权限
        以此类推...
     
     
    三、配置文件读取过程【拓展】
    1.登录过程:/etc/profile --> /etc/profile.d/* -->  ~/.bash_profile  --> ~/.bashrc  --> /etc/bashrc
    2.非登录过程:~/.bashrc  --> /etc/bashrc
     
            
     
     
  • 相关阅读:
    测试候选区
    This is my new post
    发布到首页候选区
    nb
    []
    隐藏列(gridview遍历)
    交叉表、行列转换和交叉查询经典
    数据库设计中的14个技巧
    jQuery操作表格,table tr td,单元格
    不愿将多种编程语言杂糅在一起?可能你还没意识到而已
  • 原文地址:https://www.cnblogs.com/dumpling-z/p/11277770.html
Copyright © 2020-2023  润新知