Linux用户管理

用户和组

Linux安全模型:3A资源分派

Authentication:认证

       Authorization:授权

       Accounting|Audition:审计

用户user:

       Linux用户:Username/UID(identity身份验证成功后发放相应token令牌)

              管理员:root,0

              普通用户(1-60000自动分配)

                     系统用户:1-499(centos6),1-999(centos7)

                     登录用户:500+(centos6),1000+(centos7)

组group:

       Linux组:Groupname/GID

              管理员组:root,0

              普通组

                     系统组:1-499(centos6),1-999(centos7)

                     普通组:500+(centos6),1000+(centos7)

       组与用户的关系->多对多映射

              一个组可以有多个用户

              一个用户可以加入多个组

组存在的意义->简化授权

安全上下文:

       Linux上下文content:

环境->进程发起者->访问资源的权限取决于进程发起者的身份

       以不同身份发起进程(Process)能访问资源的权限取决于其身份

              root->/bin/cat

              user1->/bin/cat

组的类别:

       主组(Primary Group)

              用户必须属于一个且只有一个主组

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

       附加组(Supplementary Group)

              一个用户可以属于0个或多个附加组

       Linux在创建新用户user1时会创建一个user1组,并将组user1作为用户user1的主组

       Windows创建新用户时不会常见新组,统一将新用户加入users组

       *一个用户必须用于一个主组的身份,附加组可有可无

用户和组的配置文件:

       用户:

              /etc/passwd:用户及其属性信息

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

       组:

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

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

       /etc/passwd:

              可使用getent passwd [user1] 查看用户user1的/etc/passwd信息

              共有7个字符段(name:passwd:UID:GID:GECOS:homedirectory:shell)

              出于安全性考虑passwd字段统一写作x(可以使用pwunconv或pwconv)查看

              可以通过更改UID切换管理员,UID为0的用户是管理员(root不一定是管理员)

              GECOS:用户全名或注释(可以通过finger name查看,chfn name更改)

              homedirectory:用户家目录(可以通过usermod –d更改)

              shell:用户默认使用shell (可使用chsh –s [/bin/bash] [name]更改)

       /etc/shadow:

              loginname:登录用户

              encryptedpasswd:用户密码,默认sha512加密

              dateof last password change:密码最近一次更改距1970.01.01的天数

              minimumpassword age:密码再过几天可以被更改(默认为0,随时更改)

              maximumpassword age:密码再过几天必须更改(默认999999,永不过期)

              passwordwarning period:密码过期前几天提醒(默认7天)

              passwordinactivity period:密码过期几天后会被锁定

              accountexpiration date:账号有效期

              reservedfield:预留字段

              *以上/etc/shadow内字段除预留字段外均可使用chage命令更改

       /etc/group:

              可使用getent group [group1] 查看用户group1的/etc/group信息

              groupname:组名

              grouppassword:通常不需要设定,密码被记录在/etc/gshadow中

              GID:群组ID

              userlist:以当前组为附加组的用户列表(分隔符为逗号)

       /etc/gshadow

              群组名称

              群组密码

              组管理员列表

              以当前组为附加组的用户列表(分隔符为逗号)

用户和组管理命令:

       用户管理:

              useradd

              usermod

              userdel

       组管理:

              groupadd

              groupmod

               groupdel

权限

文件权限

       r:readable(文本文件)

        w:writable(文本文件)

        x:excutable(二进制程序或脚本)

文件权限针对对象

       u:owner文件所有者

       g:group组成员

       o:other其他人

八进制权限

       ---000->0

       --x001->1

       -w-010->2

       r--100 ->4

       rwx111 ->7

       [eg]

              640:rw-r-----

              755:rwx-r-xr-x

       *奇数->有执行权限;偶数->无执行权限

权限分配

共十位,以drwxrwxrwx为例,d表示文件属性,后续1-3位表示u权限,4-6位表示g权限,7-9表示o权限

修改文件所属情况

       chgrpgroup file:将file的属组更改为group

       chown[owner]:[group] file:将file的属主更改为owner,属组更改为group(:可用.替换)

       chown--reference=file2 file1:将file1的属主和属组按照file2进行更改

修改文件权限

       模式法:

              chmodwho opt per file

                     who:u,g,o,x

                     opt:+,-,=

                     per:r,w,x

              [eg]

                     chmodu+rwx,g+rw,o+r file:将file文件权限更改为rwxrw-r--

       数字法:

              chmodnum file

              [eg]

                     chmod764 file:将file文件权限更改为rwxrw-r—

       *chmod --reference=file2 file1:将file1的文件权限按照file2进行更改

默认权限

umask掩码:二进制遮挡

umask+默认权限=777(目录)/666(文件)

       文件默认权限:

              root:644,对应umask为022

              普通用户:664,对应umask为002

       目录默认权限:

              root:755,对应umask为022

              普通用户:775,对应umask为002

       掩码可使用umask命令设定:

              umasknum:将umask设定为num(如umask 022)

       配置文件:

              全局:/etc/bashrc

              用户:~/.bashrc

Linux文件系统特殊权限

        SUID:作用于二进制可执行文件,当用户执行此文件时,会继承此文件的所有者权限

       SGID:作用于二进制可执行文件,当用户执行此文件时,会继承此文件的所属组权限

                    作用于目录,当用户在此目录新建文件时,新文件所属组为继承目录的所属组

        Sticky:作用于目录,对目录内的文件只能删除自己的文件,无视文件权限

        添加特殊权限命令:

               chmod u=rws,g=rws,o=rwt F:将目录或文件F的权限更改为rwsrwsrwt

               chmod 4777 F:添加SUID

               chmod 2777 F:添加SGID

               chmod 1777 F:添加Sticky

       设定文件特殊权限

              chattr+i:不能删除、改名、更改

              chattr+a:只能追加内容

              lsattr:显示特定内容

ACL访问控制列表

       ACL:Access Control List,实现灵活的权限管理

       文件系统支持:ext4和xfs支持,fat不支持

       ACL生效顺序:

              所有者->自定义用户->自定义组->其他

       ACL文件上的group权限是mask值,相当于限高线

       命令:

              getfacl:查看文件ACL权限

              setfacl:更改文件ACL权限

相关练习

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

命令:useradd -s /bin/bash -G bin,root -c "Gentoo Distribution" gentoo
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容