• 用户、组及权限控制


    用户、组及权限控制

    用户和组管理

    1.资源分派

    Authentication 认证:识别用户
    Authorization 授权:
    Accoutiog 审计
    
    token,identity (username/password)

    2.Linux用户:

    Username/UID(UserID)
    管理员:root,0
    普通用户:1-65535
    系统用户:
    
      守护进程获取资源进行权限分配
    
        1-499(centos 6),1-999(centos 7)不同的发行版会不同
      登录用户(交互式登录):500+(centos 6),1000+(centos 7

    3.Linux用户组:

    Groupname/GID(GroupID)
    管理员组:root,0
    普通组:
    系统组:1-499(centos 6),1-999(centos 7)
    普通组:500+(centos 6),1000+(centos 7

    4.Linux安全上下文

    运行中的程序:进程(process)
    
    以进程发起者的身份运行
    进程所能够访问的所有资源的权限取决于进程的发起者的身份

    5.Linux组的类别

    用户的基本组(主组):
    
      组名同用户名,且仅包含一个用户,即私有组
    用户的附加组(额外组)

    6.Linux用户和组相关的配置文件:

      /etc/passwd 用户及其属性信息(名称、GID、基本组ID等)
      /etc/group 组及其属性信息
      /etc/shadow 用户密码及其相关属性
      /etc/gshadow 组密码及其相关属性
    [root@Auscoo ~]# more /etc/passwd
      name:password:UID:GID:GECOS:directory:shell
    
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin
    
      用户名:密码占位符:UID:GID(用户的基本组ID):GECOS(用户的备注信息):主目录:默认shell
    [root@Auscoo ~]# more /etc/group
    
      group_name:password:gid:user_list
      组名:组密码占位符:GID:以当前组为附加组的用户列表(分隔符为逗号)
    [root@Auscoo ~]# more /etc/shadow
    
      user1: :17684:0:99999:7: : :
      ①用户名
    
      ②加密了的密码
    
      ③最近一次更改密码的日期(相对时间,上次修改密码到unix元年经过的天数)
    
      ④密码的最小使用期限
    
      ⑤密码的最大使用期限
    
      ⑥密码警告时间段
    
      ⑦密码禁用期(非活动期限)
    
      ⑧账号过期日期(从 unix 元年到该日期经过的天数)
    
      ⑨保留字段
    
    顺序:① : ② : ③ : ④ : ⑤ : ⑥ : ⑦ : ⑧ : ⑨
    
      加密机制:
        加密:明文-->密文
        解密:密文-->明文
    
        单向加密:提取数据指纹
          md5: message digest 消息摘要 128bits
          sha1: secure hash algorithm 安全的哈希算法 160bits
          sha224:224bits
          sha256:256bits
          sha384:384bits
          sha512:512bits
    
          雪崩效应:初始条件的微小改变,将会引起结果的巨大改变;蝴蝶效应;
    
          定长输出
    
      密码的复杂性策略
        1、使用数字、大写字母、小写字母及特殊字符中至少3种
        2、足够的长度;
        3、不要使用易猜测密码,使用随机密码
        4、定期更换;不要使用最近曾经使用过的密码 

    用户和组相关的管理命令

    1.用户创建:useradd

    useradd [option] LOGIN

    用法:useradd [选项] 登录
          useradd -D
          useradd -D [选项]
    
    选项:
      -b, --base-dir BASE_DIR    新账户的主目录的基目录
      -c, --comment COMMENT         新账户的 GECOS 字段
      -d, --home-dir HOME_DIR       新账户的主目录
      -D, --defaults        显示或更改默认的 useradd 配置
     -e, --expiredate EXPIRE_DATE  新账户的过期日期
      -f, --inactive INACTIVE       新账户的密码不活动期
      -g, --gid GROUP        新账户主组的名称或 ID
      -G, --groups GROUPS    新账户的附加组列表
      -h, --help                    显示此帮助信息并推出
      -k, --skel SKEL_DIR    使用此目录作为骨架目录
      -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
      -l, --no-log-init    不要将此用户添加到最近登录和登录失败数据库
      -m, --create-home    创建用户的主目录
      -M, --no-create-home        不创建用户的主目录
      -N, --no-user-group    不创建同名的组
      -o, --non-unique        允许使用重复的 UID 创建用户
      -p, --password PASSWORD        加密后的新账户密码
      -r, --system                  创建一个系统账户
      -R, --root CHROOT_DIR         chroot 到的目录
      -s, --shell SHELL        新账户的登录 shell
      -u, --uid UID            新账户的用户 ID
      -U, --user-group        创建与用户同名的组
      -Z, --selinux-user SEUSER        为 SELinux 用户映射使用指定 SEUSER

      -u UID: UID=[UID_MIN,UID_MAX] , 定义在/etc/login.defs

        UID: 用户 ID 的数字值。此值必须为唯一的,除非使用了 -o

      -g GID: 指明用户所属的基本组,可以为组名,也可以为GID,注意:组名或GID必须已经存在 

      -c "COMMENT" :“用户的注释信息”

    [root@localhost ~]# useradd -c "I am ben." ben
    [root@localhost ~]# tail -1 /etc/passwd
    ben:x:502:502:I am ben.:/home/ben:/bin/bash

      -d /PATH/TO/HOME/DIR 以指定的路径为家目录,注意:提前条件,该目录事先不存在,如果存在,则报错

    [root@localhost ~]# useradd -d /tmp/centos cento
    [root@localhost ~]# tail -1 /etc/passwd
    cento:x:503:503::/tmp/centos:/bin/bash
    
    [root@localhost ~]# mkdir /tmp/test
    [root@localhost ~]# useradd -d /tmp/test test
    useradd: warning: the home directory already exists.
    Not copying any file from skel directory into it.

      -s SHELL 指明用户的默认shell程序,可用列表在/etc/shells 文件中

    [root@localhost ~]# useradd -s /bin/tcsh docker
    [root@localhost ~]# tail -1 /etc/passwd
    docker:x:505:505::/home/docker:/bin/tcsh

      -G GROUP1[,GROUP2,...[,GROUPN]]]: 为用户指明附加组,组必须事先存在,多个附加组之间用逗号分隔

    [root@localhost ~]# useradd -G test,docker centos
    [root@localhost ~]# id centos
    uid=506(centos) gid=506(centos) groups=506(centos),504(test),505(docker)

      -r: 创建系统用户

       centos 6 id < 500
       centos 7 id < 1000

    [root@localhost ~]# useradd -r zabbix
    [root@localhost ~]# cat /etc/passwd | grep "zabbix"
    zabbix:x:496:493::/home/zabbix:/bin/bash

    默认值设定:/etc/default/useradd文件中 比如使用 useradd -D -s /etc/tcsh 来改变默认的shell

        练习:创建用户gentoo,附加组为distro和linux,默认shell为/bin/csh,注释信息为"gentoo distribution"

    useradd -G distro,linux -s /bin/csh -c "gentoo distribution" gentoo
    
    [root@localhost ~]# useradd -G distro,linux -s /bin/csh -c "gentoo distribution" gentoo
    [root@localhost ~]# tail -1 /etc/passwd
    gentoo:x:508:508:gentoo distribution:/home/gentoo:/bin/csh
    [root@localhost ~]# id gentoo
    uid=508(gentoo) gid=508(gentoo) groups=508(gentoo),1503(distro),1504(linux)

    2.groupadd:组创建

    groupadd [OPTION].. group_name

    -g GID: 指明GID号,[GID_MIN,GID_MAX] 定义在/etc/login.defs

    [root@localhost ~]# groupadd -g 2001 cook
    [root@localhost ~]# tail -1 /etc/group
    cook:x:2001:

    -r:创建系统组
      centos 6 id < 500
      centos 7 id < 1000

    [root@localhost ~]# groupadd -r jobs
    [root@localhost ~]# cat /etc/group | grep "jobs"
    jobs:x:492:

    3.id: 查看用户相关的ID信息

    id [OPTION]... [USER]

     -u: UID 显示UID

     -g: GID 显示GID基本组id

     -G: Groups 显示所有GID

     -n: NAME显示用户名或用户组名

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

      su [OPTION] [-] [user [args...]]

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

        注意:root用户su到其他用户无须密码;非root用户切换时需要密码;

      换个身份执行命令
        su [-] UserName -c ‘COMMAND‘  仅仅只是使用另一个用户来执行命令,不进行用户切换。
         [root@localhost ~]# su - tom -c ‘echo $PATH‘
        /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tom/bin

        选项:
         -l "su -l username"相当于"su - username" 相当于登录式切换

    [root@localhost ~]# su -l tom
    [tom@localhost ~]$ echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tom/bin

    sudo 

      sudo可以针对单个命令授予临时权限

      使用visudo进行修改,可以提示报错

    usermod: 用户属性修改

    usermod [OPTION] login

      -u UID: 新的UID

    [root@localhost ~]# usermod -u 2002 tom
    [root@localhost ~]# id -u tom
    2002

      -g GID: 新的基本组id 可以是组名或者gid 注意:前提条件,新的基本组必须事先存在

    [root@localhost ~]# usermod -g cook tom
    [root@localhost ~]# id -g tom
    2001
    
    [root@localhost ~]# usermod -g 508 tom
    [root@localhost ~]# id -g tom
    508

      -G GROUP1,GROUP2...GROUP# 新的附加组,原来的附加组将会覆盖,若保留原有,则要同时使用-a选项,表示append -a选项必须作为首选项

    [root@localhost ~]# usermod -G gentoo,linux tom
    [root@localhost ~]# id tom
    uid=2002(tom) gid=508(gentoo) groups=508(gentoo),1504(linux)
    
    [root@localhost ~]# usermod -a -G cook tom
    [root@localhost ~]# id tom
    uid=2002(tom) gid=508(gentoo) groups=508(gentoo),1504(linux),2001(cook)

      -s SHELL 新的默认shell

    [root@localhost ~]# usermod -s /bin/tcsh tom
    [root@localhost ~]# cat /etc/passwd | grep "tom"
    tom:x:2002:508::/home/tom:/bin/tcsh

      -c "COMMENT": 新的注释信息[root@localhost ~]# usermod -c "I am tom." tom

    [root@localhost ~]# usermod -c "I am tom." tom
    [root@localhost ~]# cat /etc/passwd | grep "tom"
    tom:x:2002:508:I am tom.:/home/tom:/bin/tcsh

      -d HOME_DIR: 新的家目录,原有家目录中的文件不会同时移动至新的家目录,若要移动,则同时使用-m选项

    [root@localhost ~]# usermod -d /home/tom2 -m tom
    [root@localhost ~]# cat /etc/passwd | grep "tom"
    tom:x:2002:508:I am tom.:/home/tom2:/bin/tcsh

      -l LOGIN_NAME: 新的名字

    [root@localhost ~]# usermod -l tom123 tom
    [root@localhost ~]# cat /etc/passwd | grep "tom123"
    tom123:x:2002:508:I am tom.:/home/tom2:/bin/tcsh

      -L: lock指定用户,锁定用户的密码,这会在用户加密的密码之前放置一个“!”

    [root@localhost ~]# usermod -L tom
    [root@localhost ~]# cat /etc/shadow | grep "tom"
    tom:!$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7:::

      -U: unlock指定用户,解锁用户的密码,这样移除加密的密码之前的“!”

    [root@localhost ~]# usermod -U tom
    [root@localhost ~]# cat /etc/shadow | grep "tom"
    tom:$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7:::

      -e YYYY-MM-DD: 指定用户账号的过期日期 禁用日期 (从unix元年到该日期经过的天数)

    [root@localhost ~]# usermod -e 2018-12-12 tom
    [root@localhost ~]# cat /etc/shadow | grep "tom"
    tom:$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7::17877:

      -f INACTIVE: 设定非活动期限

    [root@localhost ~]# cat /etc/shadow | grep "tom"
    tom:$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7:10:17877: 

    passwd: 给用户添加密码

     passwd [OPTION] UserName 修改指定用户的密码,仅root用户有权限

     passwd: 修改自己的密码

    [root@localhost ~]# passwd
    更改用户 root 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

    常用选项:
     -l: 锁定指定用户, 在/etc/shadow 密码加密字段的前面加入"!!"

     -u: 解锁指定用户, 在/etc/shadow 密码加密字段的前面移除"!!"

     -n mindays: 指定最短使用期限

    [root@localhost ~]# passwd -n 7 tom
    Adjusting aging data for user tom.
    passwd: Success
    [root@localhost ~]# cat /etc/shadow | grep "tom"
    tom:$6$/M5PH/Al$mBtJBCMMbJhmrVTnXyjRO59KcSeLvsKQ8kOB0I3bTpyEMp0hpNLD0hVC4WEizh/vAcdx6Y8OWsqKimngwEHIE.:17622:7:99999:7:10:17877:

     -x maxdays: 指定最大使用期限

     -w warndays: 提前多少天开始警告用户修改密码

     -i inactivedays: 非活动期限(这段时间用户不能用修改密码,但是修改密码后可以继续使用)

     --stdin: 从标准输入接收用户的密码
      echo "PASSWD" | passwd --stdin UserName

    [root@localhost ~]# echo '123456' | passwd --stdin user3
    更改用户 user3 的密码 。
    passwd:所有的身份验证令牌已经成功更新。

      注意:/dev/null, bit buckets 位桶 数据黑洞 空设备,丢弃一切写入其中的数据
         /dev/zero, 当你读它的时候,它会提供无限的空字符

    例如上个修改密码成功的的信息,如果修改成功则会发出信息,这时可以将该信息
    丢给/dev/null,则不会显示任何信息
    若想知道是否执行成功,则可以使用echo $?命令查看,成功则返回0
    
    [root@localhost ~]# echo "o0p-[=" | passwd --stdin tom &> /dev/null
    [root@localhost ~]# echo $?
    0

    userdel: 删除用户

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

    [root@localhost ~]# userdel docker
    [root@localhost ~]# ll -d /home/docker
    drwx------. 4 505 docker 4096 Apr 1 16:50 /home/docker
    
    [root@localhost ~]# userdel -r centos
    [root@localhost ~]# ll -d /home/centos
    ls: cannot access /home/centos: No such file or directory

    groupmod: 组属性修改

     groupmod [OPTION]... group
     -n group_name: 新名字

     -g GID: 新的GID

    groupdel: 组删除

      groupdel [OPTION]... group

      groupdel GROUP:新名字

    gpasswd:修改组密码

      gpasswd [OPTION] GROUP

    [root@localhost ~]# gpasswd gentoo
    Changing the password for group gentoo
    New Password: 
    Re-enter new password: 
    [root@localhost ~]# cat /etc/gshadow | grep "gentoo"
    gentoo:$6$CUkW//JZ/Gm/R$6XS3FPfEa07nTZUSDkMVey3u7j6713AVAFwW1vMUBR31Ve0KVRLL6ZFIQGh.cONoZXLcL/IAH56i633z6zdu1/::

      -a user: 将user添加至指定组中

    [root@localhost ~]# gpasswd -a tim gentoo
    Adding user tim to group gentoo
    [root@localhost ~]# id tim
    uid=501(tim) gid=1502(testgrp) groups=1502(testgrp),508(gentoo)

      -d user: 删除用户user的以当期为组名的附加组

    [root@localhost ~]# gpasswd -d tim gentoo
    Removing user tim from group gentoo
    [root@localhost ~]# id tim
    uid=501(tim) gid=1502(testgrp) groups=1502(testgrp)

      -A user1,user2,...: 设置有管理权限的用户列表,用户之间用逗号隔开

    [root@localhost ~]# gpasswd -A tim,ben root

    newgrp命令,临时切换基本组

     临时切换基本组,切换后创建文件,该文件属组是切换后的组
     如果用户不属于此组,切换需要密码
     如果用户属于此组,切换不需要密码

    [root@localhost ~]# useradd ben
    [root@localhost ~]# su - ben
    [ben@localhost ~]$ newgrp mygrp
    密码:
    [ben@localhost ~]$ id
    uid=1002(ben) gid=1002(mygrp) 组=1002(mygrp),1005(ben)
    [ben@localhost ~]$ touch d.txt
    [ben@localhost ~]$ ll
    总用量 0
    -rw-r--r-- 1 ben mygrp 0 6月   2 11:07 d.txt
    [ben@localhost ~]$ exit
    exit
    [ben@localhost ~]$ touch e.txt
    [ben@localhost ~]$ ll
    总用量 0
    -rw-r--r-- 1 ben mygrp 0 6月   2 11:07 d.txt
    -rw-rw-r-- 1 ben ben   0 6月   2 11:08 e.txt

    pwck 检查密码文件的完整性

     检查密码文件的完整性,命令检查用户及其认证信息的完整性

    chage:修改用户密码过期信息

     chage [OPTION].. login     

    用法:chage [选项] 登录
    
    选项:
      -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
      -E, --expiredate 过期日期     将帐户过期时间设为“过期日期”
      -h, --help                    显示此帮助信息并推出
      -I, --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
      -l, --list                    显示帐户年龄信息
      -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
      -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
      -R, --root CHROOT_DIR         chroot 到的目录
      -W, --warndays 警告天数       将过期警告天数设为“警告天数”

     -d: LAST_DAY 格式 YYYY-MM-DD 上一次修改密码的日期 (相对时间,unix元年到该日期经过的天数)

     -E: --expiredate EXPIRE_DATE 过期日期 格式 YYYY-MM--DD (相对时间,unix元年到该日期经过的天数)

     -I: --inactive INACTIVE 设定非活动期限

     -m: --mindays MIN_DAYS 设定密码最短使用期限

     -M: --maxdays MAX_DAYS 设定密码最长使用期限

     -W: --warndyas WARN_DAYS 设定提前多少天警告

    其他命令:chfn、chsh、finger

     chfn 修改用户的注释信息

     chsh修改用户的默认shell

    [root@localhost ~]# tail -1 /etc/passwd
    ben:x:1002:1005::/home/ben:/bin/bash
    [root@localhost ~]# chsh ben
    Changing shell for ben.
    New shell [/bin/bash]: /bin/csh
    Shell changed.
    [root@localhost ~]# tail -1 /etc/passwd
    ben:x:1002:1005::/home/ben:/bin/csh

     finger查看用户的详细信息(Linux未装)

    权限管理

    1.文件的权限主要针对三类对象进行定义

    owner:属主,u
    group:属组,g
    other:其他,o

    -rw-------. 1 root root 1631 5月 5 17:57 anaconda-ks.cfg

    前三位为属主权限(红色),中间三位为属组权限(粉色),后面三位为其他权限(蓝绿色)

    2.每个文件针对每类访问者都定义了三种权限

    r:readable 可读
    w:writable 可写
    x:execuable 可执行

    文件

     r:可使用文件查看类工具获取其内容 cat tac more less head tail
     w:可修改其内容 nano vim vi
     x:可以把此文件提前内核启动为一个进程 bash

    目录

     r:可以使用ls查看此目录中文件列表 ls
     w:可以在此目录中创建文件,也可删除此目录中的文件 touch rm
     x:可以使用ls -l查看此目录中文件列表,可以cd进入此目录 ll 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-----         rw-r-xr-x:755

    3.chmod: 修改文件权限

    三种身份(user,group,others)各自的三个权限(r,w,x)

    使用八进制修改

    chmod [OPTION]... OCTAL-MODE FILE...

     -R 递归修改权限

    [root@localhost ~]# chmod -R 700 /tmp/test
    [root@localhost ~]# ls -ld /tmp/test
    drwx------ 2 root root 4096 Apr 2 09:41 /tmp/test
    [root@localhost ~]# ll /tmp/test
    total 0
    -rwx------ 1 root root 0 Apr 2 09:41 abc

     使用八进制数修改文件或目录权限

    [root@localhost ~]# chmod 640 /tmp/fstab
    [root@localhost ~]# ll /tmp/fstab
    -rw-r----- 1 root root 621 Mar 29 19:56 /tmp/fstab

    使用MODE修改

     chmod [OPTION]... MODE[,MODE]... FILE...

    MODE:
    修改一类或多类用户的所有权限,若没有任何权限,则留空,a表示所有三类用户

      u= 属主
      g= 属组
      o= 其他
      ug= 属主、属组
      a= 所有用户
      u= ,g= 多个用户指定权限 使用逗号隔开
    [root@localhost ~]# chmod u=rwx /etc/fstab
    [root@localhost ~]# ll /etc/fstab
    -rwxr--r-- 1 root root 621 Mar 23 15:04 /etc/fstab
    
    [root@localhost ~]# chmod g=r /etc/fstab
    [root@localhost ~]# ll /etc/fstab
    -rwxr--r-- 1 root root 621 Mar 23 15:04 /etc/fstab
    
    [root@localhost ~]# chmod o= /etc/fstab
    [root@localhost ~]# ll /etc/fstab
    -rwxr----- 1 root root 621 Mar 23 15:04 /etc/fstab
    
    [root@localhost ~]# chmod ug=rwx /etc/fstab
    [root@localhost ~]# ll /etc/fstab
    -rwxrwx--- 1 root root 621 Mar 23 15:04 /etc/fstab
    
    [root@localhost ~]# chmod u=rwx,g=r /etc/fstab
    [root@localhost ~]# ll /etc/fstab
    -rwxr----- 1 root root 621 Mar 23 15:04 /etc/fstab
    
    [root@localhost ~]# chmod a=rwx /etc/fstab
    [root@localhost ~]# ll /etc/fstab
    -rwxrwxrwx 1 root root 621 Mar 23 15:04 /etc/fstab

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

      u+: +表示增加权限
      u-: -表示移除权限
    [root@localhost ~]# chmod u+r /tmp/fstab
    [root@localhost ~]# ll /tmp/fstab
    -rw-r--r-- 1 root root 621 Mar 29 19:56 /tmp/fstab
    
    [root@localhost ~]# chmod u-r /tmp/fstab
    [root@localhost ~]# ll /tmp/fstab
    --w-r--r-- 1 root root 621 Mar 29 19:56 /tmp/fstab

    参考RFILE修改

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

     参考RFILE文件的权限,修改FILE的权限和RFILE一样

    [root@localhost ~]# ll /tmp/fstab
    -rw-r--r-- 1 root root 0 6月   2 16:57 /tmp/fstab
    [root@localhost ~]# ll /tmp/issue
    -r--r--r-- 1 root root 0 6月   2 16:58 /tmp/issue
    [root@localhost ~]# chmod --reference=/tmp/issue /tmp/fstab
    [root@localhost ~]# ll /tmp/{issue,fstab}
    -r--r--r-- 1 root root 0 6月   2 16:57 /tmp/fstab
    -r--r--r-- 1 root root 0 6月   2 16:58 /tmp/issue

    4.修改文件的属主,属组

    仅root有使用权限    

    chown:修改文件的属主

    chown [OPTION]...[OWNER][:[GROUP]] FILE... 
     用法:
      OWNER: 修改文件属主
    
      OWNER:GROUP: 修改文件属主、属组
    
      :GROUP: 修改文件属组
    
        注意:命令中的 : 可用 . 替换
    
           -R 递归修改文件属主、属组
    [root@localhost ~]# ll /tmp/x
    总用量 0
    -rwxr--r-- 1 root root 0 6月   2 16:06 a.txt
    -rw-r--r-- 1 root root 0 6月   2 16:19 d
    [root@localhost ~]# chown -R user2.user2 /tmp/x
    [root@localhost ~]# ll /tmp/x
    总用量 0
    -rwxr--r-- 1 user2 user2 0 6月   2 16:06 a.txt
    -rw-r--r-- 1 user2 user2 0 6月   2 16:19 d
    chown [option]... --reference=rfile file... 参考rfile的属主属组,修改file的属主属组 
    [root@localhost ~]# chown --reference=/tmp/issue /tmp/fstab
    [root@localhost ~]# ll /tmp/{issue,fstab}
    --w-r--r-- 1 tom root 621 Mar 29 19:56 /tmp/fstab
    -rw-r--r-- 1 tom root 74 Mar 29 22:38 /tmp/issue

    chgrp: 修改文件的属组

    chgrp [OPTION]... GROUP FILE...
    [root@localhost ~]# chgrp tim /tmp/fstab
    [root@localhost ~]# ll /tmp/fstab
    --w-r--r-- 1 tom tim 621 Mar 29 19:56 /tmp/fstab
    chgrp [option]... --reference=rfile file... 参考rfile的属组,修改file的属组
    [root@localhost ~]# chgrp --reference=/tmp/fstab /tmp/issue
    [root@localhost ~]# ll /tmp/{fstab,issue}
    --w-r--r-- 1 tom tim 621 Mar 29 19:56 /tmp/fstab
    -rw-r--r-- 1 tom tim 74 Mar 29 22:38 /tmp/issue

     -R 递归修改目录文件的属组

    [root@localhost ~]# chgrp -R centos /tmp/test
    [root@localhost ~]# ll -d /tmp/test
    drwx------ 2 tom centos 4096 Apr 2 09:41 /tmp/test
    [root@localhost ~]# ll /tmp/test
    total 0
    -rwx------ 1 tom centos 0 Apr 2 09:41 abc

    5.umask: 文件或目录创建的遮罩码

    创建文件: 666-umask

    创建文件的默认权限

    [root@localhost ~]# umask
    0022   
    [root@localhost ~]# touch /tmp/test.txt
    [root@localhost ~]# ll /tmp/test.txt
    -rw-r--r-- 1 root root 0 Apr 2 10:21 /tmp/test.txt
    *这里的默认umask不管第一位,为022,减后为755,这说明存在x权限,将权限加一,则为133,所以为644,-rw-r--r--*

    注意:如果某类的用户的权限减得的结果中存在x执行权限,则将其权限+1

    [root@localhost ~]# umask 023
    [root@localhost ~]# touch /tmp/test1.txt
    [root@localhost ~]# ll /tmp/test1.txt
    -rw-r--r-- 1 root root 0 Apr 2 10:23 /tmp/test1.txt

    6.创建目录: 777-umask

     创建目录的默认权限

    [root@localhost ~]# umask
    0022
    [root@localhost ~]# mkdir /tmp/test
    [root@localhost ~]# ll -d /tmp/test
    drwxr-xr-x 2 root root 4096 Apr 2 10:27 /tmp/test

    umask 查看umask

      [root@localhost ~]# umask
      0022

    umask # 设定umask

      [root@localhost ~]# umask 023
      [root@localhost ~]# umask
      0023
    用法:useradd [选项] 登录      useradd -D      useradd -D [选项]
    选项:  -b, --base-dir BASE_DIR
    新账户的主目录的基目录  -c, --comment COMMENT         
    新账户的 GECOS 字段  -d, --home-dir HOME_DIR       
    新账户的主目录  -D, --defaults        
    显示或更改默认的 useradd 配置 -e, --expiredate EXPIRE_DATE  新账户的过期日期  -f, --inactive INACTIVE       
    新账户的密码不活动期  -g, --gid GROUP        
    新账户主组的名称或 ID  -G, --groups GROUPS    
    新账户的附加组列表  -h, --help                    
    显示此帮助信息并推出  -k, --skel SKEL_DIR    
    使用此目录作为骨架目录  -K, --key KEY=VALUE          
    不使用 /etc/login.defs 中的默认值  -l, --no-log-init    
    不要将此用户添加到最近登录和登录失败数据库  -m, --create-home    
    创建用户的主目录  -M, --no-create-home        
    不创建用户的主目录  -N, --no-user-group    
    不创建同名的组  -o, --non-unique        
    允许使用重复的 UID 创建用户  -p, --password PASSWORD        
    加密后的新账户密码  -r, --system                  
    创建一个系统账户  -R, --root CHROOT_DIR         
    chroot 到的目录  -s, --shell SHELL        
    新账户的登录 shell  -u, --uid UID            
    新账户的用户 ID  -U, --user-group        
    创建与用户同名的组  -Z, --selinux-user SEUSER        
    为 SELinux 用户映射使用指定 SEUSER

    /etc/passwd    

  • 相关阅读:
    KMP+Tire树(模板)
    序列自动机(模板)
    欧拉函数(转载)
    Django之ContentType组件
    RestFramework之注册器、响应器与分页器
    RestFramework之频率组件
    RestFramework之权限组件
    RestFramework之认证组件
    RestFramework之视图组件
    RestFramework之序列化组件
  • 原文地址:https://www.cnblogs.com/Auscoo/p/13373662.html
Copyright © 2020-2023  润新知