用户组和权限管理

目录

一、用户和组管理

1.资源分派的三个层次:

2.Linux用户:Username/UID

3.Linux组:Groupname/GID

3.Linux安全上下文

4.Linux组的类别

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

二、用户和组相关的系统管理命令

1.用户创建:useradd

练习

2.组创建:groupadd

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

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

5.用户属性修改:usermod

6.给用户添加密码:passwd

7.删除用户:userdel

8.组属性修改:groupmod

9.组删除:groupdel

10.组密码:gpasswd

11.修改用户属性:chage

12.其它命令

回顾

三、权限管理

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

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

3.修改文件权限:chmod

4.修改文件的属主:chown

5.修改文件的属组:chgrp

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

命令总结

回顾

参考资料

 

一、用户和组管理

      认证机制,身份标识

      用户的作用:实现资源分派

1.资源分派的三个层次:

            Authentication:认证(能够进入系统)

            Authorization:授权(能够进行一些操作)

            Accouting( Audition ):审计(保证权限的合规使用)

 

            手段(机制)

            token:只有密码,没有用户名,令牌认证机制

,           identity(username/password)     账号

2.Linux用户:Username/UID

            管理员:root, 0

            普通用户:1-65535

                  系统用户:1-499, (CentOS 7)1-999

对守护进程获取资源进行权限分配

保留给系统使用的ID, (提供了一个所有者账号),使系统上面启动的有些服务可以以较小的权限运行

1-99为发行版自行创建的系统账号

                  登录用户:500+, 1000+

                       交互式登录

3.Linux组:Groupname/GID

      将某一类用户和文件建立关联关系

            管理员组:root, 0

            普通组:

                  系统组:1-499, (CentOS)1-999

                  普通组:500+, 1000+

3.Linux安全上下文

            运行中的程序:进程 (process)

                  以进程发起者的身份运行:

                       root:cat

                       tom:cat

[root@Tux tmp]# su - me

[me@Tux ~]$

[me@Tux ~]$ cat /etc/shadow

cat:/etc/shadow:权限不够

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

4.Linux组的类别

            用户的基本组(主组):

                  组名同用户名,且仅包含一个用户:私有组

                       创建用户时没有特别指明组名的话,会自动创建私有组

问题:主组有什么用呢?

                       在创建文件时,默认设定属主和属组

            用户的附加组(额外组)

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

            /etc/passwd:用户及其属性信息(名称、UID、基本组ID等等)

                  并不保存密码

            /etc/group:组及其属性信息

            /etc/shadow:用户密码及其相关属性

            /etc/gshadow:组密码及其相关属性

                                   用户完成基本组切换时使用

 

      /etc/passwd:

            name:password:UID:GID:GECOS:directory:shell

            用户名:密码占位符:UID:GID:用户的详细信息:主目录:默认shell

 

      /etc/group:

            group_name:password:GID:user_list

            组名:组密码占位符:GID:以当前组为附加组的用户列表(分隔符为逗号)

            作用:在用户完成基本组切换时使用到组密码

 

      /etc/shadow

            用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段

 

                  加密机制:

                       加密:明文--> 密文

                       解密:密文--> 明文

                      

                       单向加密:提取数据指纹,考虑计算机性能速度

                             md5:message digest, 128bits

                             sha1:secure hash algorithm, 160bits

                             sha224:224bits

                             sha256:256bits

                             sha384:384bits

                             sha512:512bits

                             命令:md5sum提取数据指纹   sha1sum

                             雪崩效应:初始条件的微小改变,将会引起结果的巨大改变

                             定长输出

加上杂质,防止当两个人密码相同时,其中一个人通过相同的密文猜测到另一个人的密码

                  密码的复杂性策略:

                       1、使用数字、大写字母、小写字母及特殊字符中至少3种

                       2、足够长

                       3、使用随机密码

                       4、定期更换:不要使用最近曾经使用过的密码

二、用户和组相关的系统管理命令

1.用户创建:useradd

            useradd [options] LOGIN

                  -u UID:[UID_MIN, UID_MAX], 要大于最近最大的UID,定义在/etc/login.defs

                  -g GID:指明用户所属基本组,可为组名,也可以GID;

                       组要事先存在

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

                  -d /PATH/TO/HOME_DIR:以指定的路径为家目录;

      创建用户时从/etc/skel复制文件到家目录下,用于信息设定,如果-d指定的目录已经存在,则不从skel中复制文件

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

            不指明的话默认在/etc/default/useradd中定义

问题:查看当前系统有哪些shell

      cat /etc/shells

 [root@Tux ~]# useradd -s /bin/tcsh usertcsh

 [root@Tux ~]# !tail

tail -1 /etc/passwd

usertcsh:x:507:507::/home/usertcsh:/bin/tcsh

                  -G大写 GROUP1[,GROUP2,...[,GROUPN]]](p.s.逗号隔开):为用户指明附加组组必须事先存在;

                  -r:创建系统用户,ID号从500或1000开始递减创建

                             CentOS 6:ID<500

                             CentOS 7:ID<1000

      !!表示禁用

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

                  useradd -D 查看或修改默认设置

      e.g. [root@Tux etc]# useradd -D -s /bin/tcsh

练习

创建用户gentoo,附加组为distro和linux,默认shell为/bin/csh,注释信息为"Gentoo Distribution";

[root@Tux etc]# groupadd distro

[root@Tux etc]# groupadd linux

[root@Tux etc]# useradd -G distro,linux -s /bin/tcsh -c "Gentoo Distribution" gentoo

[root@Tux etc]# id gentoo

uid=510(gentoo) gid=510(gentoo) 组=510(gentoo),1017(distro),1018(linux)

2.组创建:groupadd

      groupadd [OPTION]... group_name

            -g GID:指明GID号;[GID_MIN, GID_MAX]

            -r:创建系统组,ID号从500或1000开始递减创建

                  CentOS 6:ID<500

                  CentOS 7:ID<1000

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

      id [OPTION]... [USER]

            无选项无参数,默认显示当前用户所有相关的ID信息

            -u:UID

            -g:GID

            -G:所有组(包括基本组和附加组)

            -n:Name  e.g.  id -g -n me显示基本组名称

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

      su [options...] [-] [user [args...]]

            切换用户的方式:

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

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

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

 

            换个身份执行命令:

                  su [-] UserName -c 'COMMAND'

            选项:

                  -c

                  -, --login, -l“su -l UserName”相当于“su - UserName”

                  -s指定shell

5.用户属性修改:usermod

            usermod [OPTION] login

                  -u UID:新UID

                  -g GID:新基本组

                  -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append

                  -s SHELL:新的默认SHELL

                  -c 'COMMENT':新的注释信息

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

[root@Tux ~]# usermod -d /home/me2 -m meuse

                  -l login_name:新的名字

                  -Llock指定用户,加了密的密码前会多一个符号!

                  -Uunlock指定用户

                  -e YYYY-MM-DD:指明用户账号过期日期

                  -f INACTIVE:设定非活动期限

6.给用户添加密码:passwd

      命令主要操作的文件 /etc/shadow

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

passwd:修改自己的密码,用户具有权限使用该命令

            常用选项:

                  -l:锁定指定用户

                  -u:解锁指定用户

 

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

                  -x maxdays:最大使用期限

                  -w warndays:提前多少天开始警告

                  -i inactivedays:非活动期限(密码过期后的宽限期)

 

                  --stdin:从标准输入接收用户密码

                             echo "PASSWORD" | passwd --stdin USERNAME

                       Note:/dev/null, bit buckets数据位桶

                             /dev/zero, 吐0

P.S. usermod -f 密码禁用期  &&  passwd -i

usermod -e  YYYY-MM-DD:禁用账户

问题:当不想展示用户命令执行状态结果时可以如何操作

e.g. echo ‘centos’ | passwd –stdin user1 &> /dev/null

7.删除用户:userdel

      userdel [OPTION]... login

            -r:连同用户家目录一并删除

            只有userdel 用户名 不会删除其家目录

8.组属性修改:groupmod

      groupmod [OPTION]... group

            -n group_name:新名字

            -g GID:新的GID

9.组删除:groupdel

      groupdel GROUP

10.组密码:gpasswd

      gpasswd [OPTION] GROUP

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

            -d user group删除用户user的以当前组为组名的附加组

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

            命令:newgrp  临时切换基本组

                  如果用户本不属于此组,则需要组密码

跟密码相关的命令

命令:pwck账号密码审计:检查密码文件完整性

11.修改用户属性:chage

            chage [OPTION]... LOGIN

                  -d LAST_DAY 设定最近一次修改密码时间

                  -E, --expiredate EXPIRE_DATE 账户过期期限

                  -I, --inactive INACTIVE 非活动期限

                  -m, --mindays MIN_DAYS 密码最小使用天数

                  -M, --maxdays MAX_DAYS 密码最大使用天数

                  -W, --warndays WARN_DAYS 警告天数

 

12.其它命令

chfn(修改用户详细信息相当于useradd -c)

chsh(改默认shell)

finger(查看用户详细信息)

回顾

      命令总结:useradd, groupadd, su, id, usermod, userdel, groupmod, groupdel, passwd, newgrp, pwck, gpasswd, chage, chsh, chfn, finger

三、权限管理

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

            owner:属主, u

            group:属组, g

            other:其他, o

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

            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

3.修改文件权限:chmod

      chmod [OPTION]... OCTAL-MODE FILE...    按八进制格式修改文件或目录权限

            -R递归修改权限,连同目录中的文件权限也改

[root@Tux modtest]# chmod 700 mod

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

            MODE:

                  修改一类用户的所有权限:

                             u=rx

                             g=

                             o=

                             ug=

                             a=

                             u=,g=

                                   没有任何权限=后空白或---

[root@Tux tmp]#chmod u=rwx a.txt

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

                             u+

                             u-

                             a+              <=> +

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

                  参考RFILE文件的权限,将FILE的权限修改成与RFILE通用

4.修改文件的属主:chown

      修改文件的属主和属组

            此命令仅root可用

      chown [OPTION]... [OWNER][:[GROUP]] FILE...

                  用法:

                       OWNER      改属主

                       OWNER:GROUP      改属主和属组

                       :GROUP            只改属组          Note:命令中的冒号可用.替换

                       -R:递归

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

5.修改文件的属组:chgrp

           chgrp [OPTION]... GROUP FILE...       相当于chown :group file

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

                   -R

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

导入:为什么用户创建的文件默认为664或644,目录是775或755...,而不是其他呢?

      usmak是设置用户默认权限的补码

    文件:666-umask

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

    目录:777-umask 

用法:

         umask:查看

         umask #:设定

仅对当前用户当前shell有效

命令总结

chmod, chown, chgrp, umask

回顾

      用户管理:

            修改相关

            useradd, usermod, chsh, chfn, chage, userdel

            groupad, groupmod, groupdel

            密码相关

            passwd, gpasswd, pwck

            信息查看

            id, finger, who, whoami, w

            su

            配置文件:/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow

      权限管理:

            perm:mode(rwxrwxrwx), ownership

                  chmod

                  chown

                  chgrp

                       -R, --reference=RFILE

umask [UMASK]

                  FILE:666-umask

                  DIR:777-umask

参考资料:

马哥随堂笔记

注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值