第三周 用户及文件权限管理命令

一、用户管理命令

1、用户、用户组、权限管理:
Multi-tasks    Multi-Users    多用户、多任务
1)每个使用者:用户ID、密码
     Authentication  认证机制  
     Authorization    授权机制              3A机制
     Audition            审计机制
         组:用户组,用户容器
2)用户类别:
     管理:       
          普通用户:  系统用户     登录用户
          用户表示: UserID    UID
               16bits 二级制数字:0-65535
               管理员: 0
               普通用户:1-65635
                 系统用户:1-499(CentOS6) 1-999(CentOS7)
                 登录用户:500-60000(CentOS6) 1000-60000(CentOS7)
               名称解析:名称转换的过程
                 Username<-->UID
                 根据名称解析库进行:   /etc/passwd
3)组:  
    组类别(1):
         管理员组
         普通用户组:
               系统组    
               登录组
         组标识: GroupID   GID                      
               管理员: 0
               普通用户:1-65635
               系统用户:1-499(CentOS6) 1-999(CentOS7)
               登录用户:500-60000(CentOS6) 1000-60000(CentOS7)
               名称解析: /etc/group
    组类别(2):
              用户的基本组
              用户的附加组
    组类别(3):    
              用户的私有组:组名同用户名,且只包含一个用户
              用户的公共组:组内包含多个用户

4)认证信息:
     通过比对事先存储的,与登录时提供的信息是否一致
         password:
                 /etc/shadow     /etc/gshadow  数据密码库                
          密码的使用策略:
                 1、使用随机密码
                 2、最短长度不要低于8位
                 3、应该使用大写字母、小写字母、数字和标点符号之中的至少三类
                 4、定期更换
         加密算法:
                 1、对称加密:加密和解密使用同一个密码
                 2、非对称加密:加密和解密使用的一对密钥
                             密钥对儿:    公钥         私钥
                 3、单向加密: 只能加密,不能解密,提取数据特征码
                               定长输出   /]# echo "abcABC1" | md5sum
                               雪崩效应   
                          算法: md5  message digest    ,128bits
                                      sha   secure hash  algorithm   160bits   哈希算法              
                                      sha1sum    sha224sum  sha256sum  sha384sum  sha512sum
                                    1: md5     2: sha1   3: sha224   4:sha256   5:sha384  6: sha512
                            在计算之时加salt ,添加的随机数:                                    
    /etc/passwd:用户的信息库
          ntp:x:38:38::/etc/ntp:/sbin/nologin
          name:password:UID:GID:GECOS:directory:shell
                GID:用户所属的主组ID
                GECOS:用户的注释信息
                directory:用户的home路径
                shell:用户登录时默认的shell路径
    /etc/shdow:用户的密码库        
        root:$6$kAccl0KZ74DBvwrJ$OsVHXkxJw1IDRxwzzzZ7m71u3.eFZsAcM1Hsw1SjTTp5u70ldBqkufb9uKuqVruw8E0qQKQgg7pp7DSQJNE1G.:17454:0:99999:7:::
解析:  $6$   代表  sha512     
             第三个$后才是真的密码串
      用户:密码:最后一次更改密码的天数(从1970.01.01开始到今天):密码的最短使用期限: 密码的最长使用期限:密码警告期段:密码有效期间:账户过期日期:保留字段
      /etc/group :
            root:x:0:
            group_name:password:GID:user_list
                user_list:该组的用户成员,以此组为附加组的用户的用户列表
2、用户管理命令
进程以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户的权限;
系统用户:为了能够让那些后台进程或服务类进程以非管理员身份运行,通常需要为此创建多个普通用户,该类系统从不登录系统

1)groupadd命令:添加组
        groupadd [选项] group
               -g, --gid GID          手动指定GID,默认为上个组的GID+1
               -r, --system            创建系统组,随机器开启的进程为后台进程
    groupmod命令:修改组
        groupmod [选项] GROUP
                -g, --gid GID   修改GID
                -n, --new-name NEW_GROUP   修改组名
    groupdel命令: 删除组
        groupdel [选项] GROUP

2)useradd命令: 创建用户  (创建新用户若没指定组,则创建和用户名一样的组)
         useradd [选项] 登录
         useradd -D
         useradd -D [选项]
                -u, --uid UID     指定UID,默认为上个组的UID+1
                -g,--gid GROUP  指定基本组ID,此组必须事先存在
                -c, --comment COMMENT  指定注释信息
                -G, --groups GROUPS  指明用户所属的附加组,多个组之间用逗号分隔
                -d, --home-dir HOME_DIR 以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现的,指定的家目录路径如果事先存在,则不会为用户复制配置环境配置文件(隐藏文件)。
                -s, --shell SHELL  指定用户的默认shell,可用的所有shell列表存储在e/etc/shells文件
                -r, --system   创建系统用户
                -M, --no-create-home        不创建用户的主目录
                -f, --inactive INACTIVE      密码过期后,账号被彻底禁用之前的天数, 0表示立即禁用,-1表示禁用这个功能
                -D, --defaults        显示或更改默认的 useradd 配置         
                        useradd -D   显示创建用户的默认配置,修改的结果保存于/etc/default/useradd文件中       
           注意:创建用户时的诸多默认设定配置文件为/etc/logic.defs
        usermod命令:修改用户属性
                usermod [选项] 登录
                -u, --uid UID             修改用户的ID号
                -g, --gid GROUP      修改用户的基本组,原本的组必须存在
                -G, --groups GROUPS 修改用户的所属的附加组,原来的附加组会被覆盖
                -a, --append GROUP  与-G一同使用,用于添加多个附加组
                -c, --comment       修改注释信息
                -d, --home HOME_DIR   修改用户的家目录,用户的原来家目录的信息不会被复制到新的家目录
                -m, --move-home      只能与-d一同使用,用于将原来的家目录文件一起移动至新的家目录
                -l, --login LOGIN   修改用户名
                -s, --shell SHELL  修改用户的默认shell
                -L, --lock   锁定用户的密码(禁止用户登录),即在用户原来的密码串之前添加一个“!”
                -U, --unlock      解锁用户的密码,删除之前密码串的“!”
       userdel命令:删除用户的命令
                userdel [选项] 登录
                -r:删除用户时一并删除其家目录

3)passwd命令:
            passwd  [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays]  [-i inactivedays] [-S] [--stdin] [username]
            1)passwd:修改用户自己的密码
            2)passwd USERNAME:修改指定用户的密码,仅root有此权限
               -l, --lock              锁定指名帐户的密码(仅限 root 用户)
               -u, --unlock            解锁指名账户的密码(仅限 root 用户)
               -d, --delete            删除已命名帐号的密码(只有根用户才能进行此操作)
               -e, --expire      过期期限,表示日期
               -i, --inactive=DAYS    当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
               -x, --maximum=DAYS      密码的最长有效时限(只有根用户才能进行此操作)
               -n, --minimum=DAYS      密码的最短有效时限(只有根用户才能进行此操作)
               -w, --warning=DAYS      在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)    警告期限                 
               --stdin       从标准输入读取令牌(只有根用户才能进行此操                             用法: echo "PASSWIRD" | passwd --stadin USERNAME


4)gpasswd命令:默认给组定义密码
        组密码路径     /etc/gshadow
            gpasswd [选项] group
            -a, --add USER   向组中添加用户
            -d, --delete USER  从组中移除用户
5)newgrp命令:临时切换指定的组为基本组
            newgrp [-] [group]    
            -  会模拟用户重新登录以实现重新初始化其工作环境
6)chage命令:更改用户密码过期信息
            chage [选项] 登录名
              -d, --lastday 最近日期  将最近一次密码设置时间设为“最近日期”
              -E, --expiredate 过期日期    将帐户过期时间设为“过期日期”
              -W, --warndays 警告天数      将过期警告天数设为“警告天数”
               -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
                 -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
7)id命令: 显示实际和有效的ID
            id [OPTION]... [USER]
               -u, --user 仅显示有效的UID
               -g, --group 仅显示用户基本组的ID
               -G, --groups  仅显示用户所属的所有组的ID
               -n, --name  显示名称而非ID
8)su命令 :用户切换命令
           登录式切换 :会通过读取用户的shell配置文件,重新初始化
                su - USERNAME  或者  su -l USERMANE
           非登录式切换 :不会读取目标配置文件,进行初始化
                su USERNAME
            注意: 管理员可无密码切换至其他用户,其他用户切换至任何用户都需要提供密码
                  -c  'COMMAND'  仅以指定用户的身份运行此处指定的命令
练习:
1)创建组distro,其GID为2016
    [root@localhost ~]# groupadd  -g 2016 distro
    [root@localhost ~]# cat /etc/group          /*查看组*/
2)创建用户mandriva, 其ID号为1005;基本组为distro;
    [root@localhost ~]# useradd -u 1005 -g distro mandriva 
    [root@localhost ~]# cat /etc/passwd | grep mandriva
        mandriva:x:1005:2017::/home/mandriva:/bin/bash
3)创建用户mageia,其ID号为1100,家目录为/home/linux;
    [root@localhost ~]# useradd -u 1100 -d /home/linux mageia
    [root@localhost ~]# cat /etc/passwd | grep mageia
        mageia:x:1100:1100::/home/linux:/bin/bash
4)给用户mageia添加密码,密码为mageedu;
    [root@localhost ~]# passwd mageia
        更改用户 mageia 的密码 。
        新的 密码:
5)删除mandriva,但保留其家目录;
    [root@localhost ~]# userdel mandriva
6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    [root@localhost ~]# useradd -u 2002 -g distro -G pegion  slackware 
    [root@localhost ~]# cat /etc/passwd | grep slackware
        slackware:x:2002:2017::/home/slackware:/bin/bash
7)修改slackware的默认shell为/bin/tcsh
    [root@localhost ~]# usermod -s /bin/tcsh slackware
    [root@localhost ~]# cat /etc/passwd | grep slackware
        slackware:x:2002:2017::/home/slackware:/bin/tcsh
8)为用户slackware新增附加组admins
    [root@localhost ~]# usermod -G admins -a slackware
    [root@localhost ~]# cat /etc/passwd | grep slackware
        slackware:x:2002:2017::/home/slackware:/bin/tcsh

二、文件权限管理

1、文件权限管理:
进程安全上下文:
   /]#ls -l ---> rwx rwx rwx
                 左三位:定义属主 user的权限
                 中三位:定义属组 group权限
                 右三位:定义其他 other的权限
       进程对文件的访问权限应用模型:
               进程的属主与文件的属主是否相同,如果相同则应用属主权限,否则检查进程的属主是否属于文件的属组,如果属于则应用属组权限,否则应用其他权限。
       权限:   
               r :read 读        w:wirte  写        x:excute 执行    
               文件:
                   r:可获得文件的数据      4 
                   w:可修改文件的数据      2  
                   x:可将此文件执行为进程   1
               目录:
                    r:可使用Ls命令来获取其下的所有文件列表
                    w:可修改此目录下的文件列表,即创建或者删除文件
                    x:可cd到此目录中,可使用ls -l 来获取文件详细述属性信息
                mode: rwxrwxrwx
                ownership:user  group
      权限组合机制:
              --- 0     --x  1   -w-  2  -wx 3  r--  4  r-x 5  rw- 6   rwx  7
2、文件权限命令:
 1)chmod命令: 
     说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。          
                chmod [OPTION]... MODE[,MODE]... FILE...
                chmod [OPTION]... OCTAL-MODE FILE...
                chmod [OPTION]... --reference=RFILE FILE...
          三类用户:  u 属主   g属组   o 其他   a 所有
           (1) chmod [OPTION]... MODE[,MODE]... FILE...
                     chmod [选项]... 模式[,模式]... 文件...
                           MODE表示法:
                                 赋权表示法:直接操作一类用户所有权限位rwx 
                                    u=  g=  o=  a=
                                 授权表示法: 直接操作一类用户的一个权限位r w x
                                    u-x   g-r  o-r  o+rwx  u+rwx ug+r 之类
           (2)  chmod [OPTION]... OCTAL-MODE FILE...  
                        chmod [选项]... 八进制模式 文件...
           (3)  chmod [OPTION]... --reference=RFILE FILE...
                        chmod [选项]... --reference=参考文件 文件...
        选项:
                -R, --recursive   递归修改,对一个目录下所有文件进行修改
 2)从属关系管理命令:
    1、chown命令:
        说明:Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
                   chown [选项]... [所有者][:[组]] 文件...
                   chown [选项]... --reference=参考文件 文件...
                    选项: -R  递归修改
                 chgrp命令:
    2、umask:文件的权限反向掩码,遮罩码
                 文件: 666 ---umask
                 目录:777 ----umask
                    注意:之所以文件用666去减,拜师文件默认不能拥有执行权限,如果减的结果中有执行权限,则加1  比如 666-023=644
                 umask命令:查看当前umask
                 umask MASK :设置umask
                注意:此类设定只对当前shell进程有效         
    3、install命令:
                    install [OPTION]... [-T] SOURCE DEST   单源复制
                    install [OPTION]... SOURCE... DIRECTORY  多源复制
                    install [OPTION]... -t DIRECTORY SOURCE... 多源复制
                    install [OPTION]... -d DIRECTORY...  创建目录
                选项:
                    -m  --mode=MODE  设定目标文件权限,默认为755
                    -o   --owner=OWNER  设定目标文件属主    
                    -g    --group=GROUP  设定目标文件属组

    4、mktemp命令: 创建临时文件(变量赋值)通常在tmp目录下创建,会自动删除
                        mktemp [选项]... [TEMPLATE]
                        eg: mktemp /tmp/aba.xxx---> /tmp/aba.agag 随机生成文件
                -d  创建临时目录  xxx
                -u  测试是否可以创建文件,文件并不存在
                    注意:  mktemp会将创建的临时文件直接返回,可直接通过命令引用保存起来。
 3)chown与chmod命令的区别
    (1)chown 修改文件和文件夹的用户和用户组属性
        1、要修改文件hh.c的所有者.修改为sakia的这个用户所有
                chown sakia hh.c
                    这样就把hh.c的用户访问权限应用到sakia作为所有者
        2、将目录 /tmp/sco 这个目录的所有者和组改为sakia和组net
                chown -R sakia:net /tmp/sco
    (2)chmod 修改文件和文件夹读写执行属性
        1、把hh.c文件修改为可写可读可执行
                chmod 777 hh.c
        要修改某目录下所有的文件属性为可写可读可执行
                chmod 777 *.*
        把文件夹名称与后缀名用*来代替就可以了。同理若是要修改所有htm文件的属性
                chmod 777 *.htm
        2、把目录 /tmp/sco修改为可写可读可执行
                chmod 777 /tmp/sco
            要修改某目录下所有的文件夹属性为可写可读可执行
                chmod 777 *
                把文件夹名称用*来代替就可以了
            要修改/tmp/sco下所有的文件和文件夹及其子文件夹属性为可写可读可执行
                chmod -R 777 /tmp/sco
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值