Linux中的用户、组和权限的管理

一、Linux的安全模型

    在Linux中用户登陆时必须提供用户名和密码(用户是由root用户创建的,最初的密码也是root用户设定的)。系统使用用户和群组来控制使用者访问文件和其他资源的权限。每一个文件都一定属于一个用户(一般该用户就是文件的创造者)并与一个群组相关。每一个进程(处理程序)都会与一个用户和群组关联,可以通过在所有的文件和资源上设定权限来允许该文件的所有者或者某个群组的成员访问他们。主要由系统管理员维护系统的安全。

二、基本规则

    在Linux中,一般情况下每一个用户都有唯一的用户名和UID,root(系统管理员)的UId为0,CentOS7以前的版本中,系统用户的UID为1-499,这些用户是维持运行所需服务的对应进程,Linux中任何进程都有对应的用户,从CentOS7开始,系统用户的UID范围增加到1-999,其他UID为一般用户使用。

    用户组的GID分配方式与UID相同。创建用户时默认创建一个与用户名相同的主组,每个用户必须有且仅有一个主组,但是可以添加到多个辅助组中。

    Linux用户和组的主要配置文件:

        /etc/passwd:用户属性信息,中间用冒号隔开,格式:

            (用户名:密码:UID:GID:描述:家目录:shell类型)

        /etc/group:用户组属性信息,格式:

            (组名:密码:GID:用户列表)

        /etc/shadow:密码文件,格式:

            用户名

            加密后的密码,不设置密码的账户默认为!!,代表不能登录

            最后一次修改密码的时间

            密码更改的最短期限

            密码更改的最长期限

            从系统开始警告用户到用户密码正式失效的天数

            密码没有登陆但是账号仍然有效的最大天数

            失效时间,当设置了这个选项,密码失效后不能再登陆

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

三、用户、组管理命令

    

用户创建:用户账号的管理只要涉及到用户账号的添加、删除和修改。添加用户账号就是在系统中创建一个新账号,然后为新账号分配UID,指定用户组、家目录和登陆shell等资源。

    useradd [options] LOGIN (默认值设定:/etc/default/useradd)

    -u UID 创建用户时,指定用户的UID

    -o 一般配合-u使用,指定UID时,不考虑UID是否唯一,

    -g GID(或组名) 指定用户的所属基本组

    -c "COMMENTS" 为用户添加注释信息

    -d HOME_DIR 为用户创建制定的家目录

    -s SHELL 指定用户默认shell程序类型(所有可用shell在文件/etc/shells中)

    -G GROUP1[GROUP2…] 指定用户的附加组,组必须提前存在

    -N 不创建私用组作为主组,让users组作为用户的基本组

    -r 创建系统用户

创建用户家目录时,需要从/etc/skel/目录下复制用户文件。

批量创建用户:

    newusers 后接一个passwd格式的文件,可以批量创建用户,

    chpasswd 批量修改用户口令

    (用户创建后家目录中没有基本文件,需要另行拷贝)

用户属性修改:修改用户账号就是根据实际情况更改用户的有关属性,如UID、家目录、用户组等基本属性。

    usermod [options] login

    -u UID 为用户设置新的UID

    -g GID(或组名) 为用户指定新的基本组

    -G GROUP1[,GROUP2…] 为用户指定新的指定新的附加组,原来的附加组会被覆盖,增加-a选项可以保留原来的附加组

    -s SHELL 为用户指定新的默认shell

    -c "COMMAENT" 为用户设置新的注释信息

    -d HOMME_DIR 新的家目录不会自动创建,原家目录中的文件不会同时移动到新的家目录中;如果想要创建新的家目录并移动原家目录中的数据,使用-m选项

    -l LOGIN_NAME 更换新的用户名

    -L 锁定用户使其不能登录,在/etc/shadow密码栏中增加!

    -U 解锁用户,去掉密码栏中的!

    -e YYYY-MM-DD 为用户指定账号过期时间

    -f INACTIVE 设置非活动期限

删除用户;userdel [OPTIONS]… login

    -r 删除用户的家目录等文件

查看用户相关的ID信息

    id [options]… [USER] 默认查看当前用户的id信息

    -u 查看UID

    -g 查看主组GID

    -G 查看用户辅助组的GID

切换用户su [OPTIONS…] [-] [USERNAME[args…]]

    su USERNAME:非登陆式切换,即不会读取目标用户的配置文件,也不会改变当前工作目录

    su -[l] USERNAME:登陆式切换,读取用户的配置文件并切换至用户家目录

    root用户切换其他用户式不需要密码,非root用户切换时需要密码

    su [-] USERNAME -c 'COMMAND' 更换身份执行命令

设置密码

passwd [OPTIONS] USERNAME 可以修改指定用户的密码,仅root用户有此权限

    -l 锁定指定用户

    -u 解锁指定用户

    -e 强制用户下次登陆时修改密码

    -n MINDAYS 设置用户密码最短使用期限

    -x MAXDAYS 设置用户最大使用期限

    -w WARNDAYS 设置提前开始警告的天数

    -iINTCTIVEDAYS 非活动期限

    –stain 从标准输入接受用户的密码

如同用户可以使用passwd修改自己的密码

用户组管理 

    添加组

    groupadd [OPTION]…GROUP_NAME

    -g GID 指明GID号

    -r 创建系统组

    

    删除组

    groupdel GROUP

    更改组密码

    gpasswd [OPTION] GROUP_NAME

    -a USER 将USER添加至组中

    -d USER 从指定组中一尺用户USER

    -A USER1[,USER2…] 设置有管理权限的用户列表

    newgrp可以临时切换基本组,如果用户不属于此组,需要组密码

    更改和查看组成员

    groupmems [OPTIONS] [ACTION]

    options:

    -g –group GROUP_NAME 更改为指定组(只有root)

    actions:

    -a –add USER_NAME 指定用户加入组

    -d –delete USER_NAME 从组中删除指定用户

    -p –purge 清空组中所有成员

    -l –list 显示组成员列表

    

    groups [OPTIOBS] [USER_NAME] 查看用户所属组列表

四、权限管理

文件属性:在Linux中ls -l可以查看文件或目录的属性。第一个字段中的第一个字符表示文件的种类,2-4个字符表示属主对文件或目录的操作权限,5-7表示属组用户的操作权限,最后三个字符表示其他用户的权限。后面的字段依次表示文件或目录的引用计数、属主、属组、大小、时间戳、文件名称。

修改文件的属主和属组

    修改文件的属主:

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

    用法: 

    OWNER 

    OWNER:GROUP 

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

    -R: 递归修改 

    chown [OPTION]… –reference=RFILE FILE… 参考其他文件

修改文件属组:chgrp

    chgrp [OPTION]… GROUP_FILE…

    chgrp [OPTION]… reference=RFILE FILE 参考其他目录修改

    -R 递归修改

r.w.x对文件的作用

    r:可以使用文件查看类工具获取其中内容

    w:可以修改内容

    x可以把此文件作为一个进程启动

r.w.x对目录的作用

    r:可以使用ls查看目录中的文件列表

    w:可以在目录中创建或删除文件

    x:可以用ls -l查看目录中的文件列表,也可以用cd进入目录

    

用数字表示r.w.x

    —    000    0 

    –x    001    1 

    -w-    010    2 

    -wx    011    3 

    r–    100    4 

    r-x    101    5 

    rw-    110    6 

    rwx    111    7


umask


    创建新文件是根据用户的umask值来设置文件默认权限。当用户创建目录是,使用用户的umask值屏蔽最大权限的777,得出的结果就是目录的默认权限;当用户创建文件时,用umask值屏蔽权限值666,得出文件的默认权限。root用户默认的umask为022,所以当root用户创建的目录默认权限为755,文件的默认权限是644;而一般用户的默认umask是002,所以当一般用户创建目录是默认权限为775,文件默认权限是664。全局umask默认设置在目录:/etc/bashrc中,用户默认设置:~/.bashrc。

    umask  查看当前用户的umask

    umask #    临时设置用户umask值

    umask -S    使用模式的方式显示umask

    umask -p    输出umask,使之可被调用


Linux文件系统上的特殊权限

    

    SUID:可执行文件搭配SUID权限,能够获得特权,任意存取该文件的所有者能够使用的全部系统资源。

    权限设定:chmod u+s FILE

                      chmod u-s FILE


    SGID:设置在文件上面,效果去SUID相同,只不过文件的所有者换成用户组,该文件就可以任意存取整个用户组是能使用的系统权限。

    权限设定:chmod g+s FILE(或DIR)

                      chmod g-s FILE(或DIR)

    

     Sticky:当一个目录设置了Sticky为权限时,只有文件的所有者和root用户才能删除该目录下的文件。

    权限设定:chmod o+t DIR

         chmod o-t DIR

访问控制列表:

    ACL(访问控制列表)可以实现灵活的权限管理,除了文件的所有者,所属组和其他人,对更多的用户设置权限。

为多用户或者组的文件和目录赋予访问权限rwx

    mount -o acl /directory

    getfacl file |directory 

    setfacl -m u:wang:rwx file|directory

    setfacl -Rm g:sales:rwX directory 

    setfacl -M file.acl file|directory 

    setfacl -m g:salesgroup:rw file| directory 

    setfacl -m d:u:wang:rx directory 

    setfacl -x u:wang file |directory

    setfacl -X file.acl directory


mask

    mask影响除所有者和other用户之外的所有人的最大权限,范围内的任何人的权限不能超过mask。




  

                

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

(0)
zhanghuanyuzhanghuanyu
上一篇 2016-08-07
下一篇 2016-08-07

相关推荐

  • 马哥教育网络班22期+第5周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell;     cat /etc/passwd | grep -E '^(root|fedora|user1)\>' | awk -F …

    Linux干货 2016-10-17
  • sed文本编辑工具

    用法:sed[option]… ‘script’ inputfile…常用选项:-n:不输出模式空间内容到屏幕,即不自动打印-e: 多点编辑-f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本-r: 支持使用扩展正则表达式-i.bak: 备份文件并原处编辑script:‘地址命令…

    Linux干货 2017-05-02
  • 用户和组管理 第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d' ' -f1 | sort -u who:查看当前已经登陆的所有用户的详细信息 cut -d ' ' -f1:以空格为界显示每行第一列 sort -u :在输出行中去除重复行。 2、取出最后登录到当前系…

    Linux干货 2017-02-13
  • LVS NAT + Keepalived HOWTO

    LVS NAT + Keepalived HOWTO   这篇文章主要讲解了,基于LVS/NAT,安装,运行与检测keepalived 目录     1、什么是keepalived?     2、规划你的网络 &nbsp…

    Linux干货 2015-09-21
  • Linux 文本编辑器三剑客之 sed

    参考手册: http://www.gnu.org/software/sed/manual/sed.html 转载请注明:马哥教育!!

    Linux干货 2017-01-12
  • Linux文件系统简介

    文件系统是Linux的十分基础的知识,同时也是学习Linux必不可少的知识。本文将简单的介绍一下Linux的文件系统,主要包括FHS文件层级结构、Linux的文件类型及对应的颜色标识、man帮助手册页以及命令编辑特性的快捷键的介绍。这仅仅是属于自己的一个总结,以后会对深入学习Linux有一定的帮助吧。 如有不对之处还请帮忙指出。 FHS文件层级结构 FHS(…

    Linux干货 2016-10-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-07 22:46

    文章整体架构清晰,对命令的常见选项有了很好的总结。可以加上一些自己在练习过程中的操作,这样在以后的复习中会更直观明了哦。