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

相关推荐

  • 第一周初入Linux世界 —马哥教育网络班N22_第一周课程练习

    一、描述计算机的组成及其功能        计算机体系结构以图灵机理论为基础,属于冯·诺依曼体系结构。    计算机由运算器、控制器、寄存器、输入输出设备组成            运算器:是计算机中执行各种算术和逻辑运算操作的部件。运算器…

    Linux干货 2016-08-15
  • 九.Linux博客-2016年8月10日脚本、sed、vim

    格式说明: 操作 概念 命令 说明及举例 九 脚本sed、vim sed 文本编辑工具 行编辑器,每次取出一行在内存里处理,处理完成后屏幕打印。完成后再取出一行放到内存里处理,覆盖原来内存中的行,循环。。 sed -n '3d' f1 把文件f1中的第三行删掉并不在屏幕上显示 sed -n…

    Linux干货 2016-08-24
  • 快速运用NFS共享web页面

    环境:centos7.3最小化三台,前期准备关闭防火墙和selinux 目的:通过文件共享,使客户端访问web服务器时是同样的页面。 拓扑图: 优势:减少WEB服务器的压力。 一、安装软件 NFS、WEB1、WEB2: #yum install nfs-utils -y WEB1、WEB2: #yum install httpd -y 二、配置 NFS: #…

    2017-04-27
  • web服务及常见配置

    一次HTTP请求过程1、建立连接:接收或拒绝连接请求2、接收请求:接收客户端请求报文中对某资源的一次请求的过程Web访问响应模型(Web I/O)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求复用I/O结构:启动一个进程,同时响应N个连接请求实现方法:多线程模型和…

    Linux干货 2017-10-09
  • Linux文件查找之find命令详解

    文件查找 文件查找就是在在文件系统上查找符合条件的文件; 文件查找分为: 实时查找:遍历所有文件进行条件匹配 非实时查找:根据所以查找 locate: 1、查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 2、locate属于非实时查找,依赖于事先构建的索引; 索引的构建是在系统较为空闲时自动进行(周期性任务);管理员手…

    Linux干货 2016-08-18
  • ./././

    ./././

    Linux干货 2016-08-04

评论列表(1条)

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

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