8-2 用户组和权限管理

用户组和权限管理

    本节主要是:su、passwd、chage、chown、chgrp、chmod、umask等命令及文件的三种普通权限和三种特殊权限

 

 

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

su [options…] [-] [user[args…]]

切换用户的方式:

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

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

Noteroot su 至其他用户无需密码,非root用户切换时需要密码。

换个身份执行命令:

    su [-] UserName -c COMMAND

       选项:-l   –login

        su -l UserName相当于 su – UserName

 

 

给用户添加密码:passwd

    管理员可以修改任何用户的密码,普通用户只能修改自己的密码

    Passwd [options] UserName:修改指定用户的密码,仅root用户权限

       -l:锁定指定用户

       -u:解锁指定用户

       -n:指定最短使用期限

       -x:指定最长使用期限

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

       -i:非活动期限

       -e:强制用户下次登录修改密码

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

               echo PASSWORD | passwd –stdin USERNAME

       Note:Linux 系统之上有两个特殊的文件:

            /dev/null:能够接收任何内容,并将其丢弃

            /dev/zero:能够连续不断的输出0信息

 

 

修改用户密码属性:chage

 chage [options] LOGIN

     -d LAST_DAY:修改用户最近一次修改密码的时间

     -E EXPIRE_DATE:从1970年到账号不能访问的时间

     -I INACTIVE:修改用户的非活动期限

     -m, –mindays MIN_DAYS:修改密码最短时间

     -M, –maxdays MAX_DAYS:修改密码最长时间

     -W, –warndays WARN_DAYS:提醒密码过期时间

     -l:显示密码策略

创建组:groupadd

 groupadd [option]… group_name

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

     -r:  创建系统组

删除用户:userdel

Userdel [options]LOGIN

-r:删除用户家目录

组属性修改:groupmod

groupmod [options] GROUP

-n:新名字

-g:新的GID

组删除:groupdel

groupdel GROUP

组密码:作用是为用户切换基本组

gpasswd [option] group

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

-d user:user从指定组中删除

-A userlist:设置有组管理权限的用户列表

临时切换基本组:newgrp

 

 

修改文件的属主:chown和属组:chgrp

修改文件的属主:chown

    chown [option]… [OWNER][:[GROUP]] FILE…

        OWNER:只修改属主

        OWNER:GROUP:修改属主和属组

        :GROUP:只修改属组

命令中的冒号可用. 替换;

    -R:  递归

修改文件的属组:chgrp

    chgrp [option]… group file…

    chgrp [option]… –reference=RFILE FILE…

     -R 递归

 

文件权限

三类对象

  u 属主

  g 属组

  o 其他

三种权限

   r    w    x

    对文件:

        r:查看文件内容

        w:修改文件内容

        x:把文件提请内核启动为一个进程

    对目录:

        r:查看此目录文件

        w:在此目录可创建、删除文件

        x:查看目录下文件列表,也可进入该目录

        X:只给目录x权限,不给文件x权限

修改文件权限:chmod

v  chmod [option]… OCTAL-MODE FILE…

v  chmod [option]… MODE[,mode]… FILE…

         -R:  递归修改权限

修改权限:

   直接设定权限 u=  g=  o=  ug=  a=  u=  g=

   调整一些权限u+  u-  g+  g-  o+  o-  a+  a-  

v chmod [option]… –reference=RFILE FILE…

参考RFILE 文件的权限,将FILE 的修改为同RFILE

 

 

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

       遮掩码是指在创建一个文件或目录时的默认权限为:

           FILE: 666-umask

           DIR: 777-umask

      umask 命令

         umask:查看umask

     umask #:设定 umask

     umask -S:模式方式显示

     umask -p:输出可被调用

 

Linux 文件系统上的特殊权限:  SUID, SGID, Sticky

              三种常用权限:r, w, x      user, group, other

安全上下文:

 前提:进程有属主和属组;文件有属主和属组

      (1)  任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限

      (2)  启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组

      (3)  进程访问文件时的权限,取决于进程的发起者:

            (a)  进程的发起者,同文件的属主,则应用文件属主权限

            (b)  进程的发起者,属于文件的属组,则应用文件属组权限

            (c)  应用文件“其他位”权限

SUID:Set UID

前提:此类文件为有可执行权限的命令

        (1)任何一个可执行文件能不能启动为进程:取决于发起者对程序文件是否拥有执行权限

        (2)启动为进程之后,其进程的属主为原程序文件的属主

         权限设定:

         chmod u+s FILE…

         chmod u-s FILE…

 注:SUID 只能作用在二进制的程序上

SGID:Set GID

可执行文件上:

任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限

启动为进程之后,其进程的属主为原程序文件的属组

权限设定:

    chmod g+s FILE…

    chmod g-s FILE…

目录中时:

    一般,用户创建文件时,其属组为此用户所属的主组

v  一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组

权限设定:

chmod g+s DIR…

chmod g-s DIR…

注:sgid 作用在二进制的程序上:用户运行该程序时,自动继承该程序所属组的权限

       chmod g+s file

    sgid 作用在目录上时,该目录内新建的文件或目录的所属组自动继承该目录的所属组

       chgrp groupname dir; chmod g+s dir

Sticky:粘滞位

对于一个多人可写的目录,设置了sticky,则每个用户仅能删除自己的文件

权限设定:

chmod o+t DIR…

chmod o-t DIR…

注:sticky 只能作用在目录上

设定文件特定属性

 chattr +i  不能删除,改名,更改

 chattr +a  只能增加

 lsattr  显示特定属性

ACL  

   实现灵活的权限管理除了文件的所有者,所属组和其它人,可以对更多的用户设置权限。

   其生效顺序:所有者,自定义用户,自定义组,其他人

   ACL文件上的group 权限是mask 值, 而非传统的组权限。默认ACL权限给了x ,文件也不会继承x 权限。

   mask值只影响除所有者和other 的之外的人和组的最大权限。它需要与用户的权限进行逻辑与运算后,才能变成有限的权限


 附:

/etc/passwd

username:x:uid:gid:comment:home:shell

姓名:密码:uidgid:注释:家目录:shell

/etc/shadow

username:password:password age:min:max:warn:inactive:usernameage:xxx

姓名:密码:上次改密时间:最小:最大:过期前警报:过期后:账号有效期:xxx

/etc/group

groupname:x:gid:groupmember

组名::gid:组员

/etc/gshadow

groupname:password:groupadmin:groupmember.

组名:加密口令:组管理员:组员

原创文章,作者:Dadi,如若转载,请注明出处:http://www.178linux.com/29456