• 用户,组及权限


    用户,组及权限

    基本概念

    1)用户,组,权限

    • 用户:获取资源的标识。(代表一个用户)/etc/passwd
    • 组:权限的集合,用于方便的指派权限,不能登录和使用。(代表一类用户 逻辑容器 可放用户 可关联权限)/etc/group
    • 权限:表示资源的访问能力。
    权限:
    r, w, x
    
    文件:
    r:可读,可以使用类似cat等命令查看文件内容;
    w:可写,可以编辑或删除此文件;
    x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核
    运行;
    
    目录:
    r: 可以对此目录执行ls以列出内部的所有文件;
    w: 可以在此目录创建文件;
    x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详
    细信息;
    

    2)/etc/passwd文件的文件结构

    passwd文件主要用来存储每个用户的相关信息,信息间用“:”隔开,具体文件格式如下:

    account: 登录名
    password: 密码
    UID:用户ID
    GID:基本组ID
    comment: 用户注释信息
    HOME DIR:家目录
    SHELL:用户的默认shell
    
    

    通过命令行cat /etc/passwd进行查看/etc/passwd文件内容:

    文件格式:LOGNAME:PASSWORD:UID:GID:COMMENT:HOME:SHELL
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin
    mengqc:x:500:500:mengqc:/home/mengqc:/bin/bash
    

    每一行都是一个用户的信息,其中的“x”表示加密的passwd,passwd经过md5的方式加密,加密后的内容在用户的影子口令文件中(/etc/shadow 组的影子口令文件是/etc/gshadow)。

    3)/etc/shadow文件的文件结构

    /etc/shadow文件主要是存储与用户密码相关的内容。同样,信息间用“:”隔开。文件格式如下:

    1)用户名:用户账号的字符串,由大小写字母和/或数字组成。登录名中不能有冒号(:),为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。
    2)密码:存放着加密后的用户口令字.
    3)最近一次修改密码的时间:表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
    4)最短使用期限:指的是两次修改口令之间所需的最小天数。
    5)最长使用期限:指的是口令保持有效的最大天数。
    6)警告时间:表示的是从系统开始警告用户到用户密码正式失效之间的天数。
    7)非活动时间:表示的是用户没有登录活动但账号仍能保持有效的最大天数。
    8)过期时间:给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
    

    通过命令行输入sudo cat /etc/shadow进行文件内容查看:

    文件格式:用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用
    期限:警告时间:非活动时间:过期时间:
    
    root:!:17043:0:99999:7:::
    daemon:*:16652:0:99999:7:::
    bin:*:16652:0:99999:7:::
    sys:*:16652:0:99999:7:::
    sync:*:16652:0:99999:7:::
    games:*:16652:0:99999:7:::
    man:*:16652:0:99999:7:::
    lp:*:16652:0:99999:7:::
    

    注意:
    1)如果为空,则对应用户没有口令,登录时不需要口令;
    2)星号代表帐号被锁定;
    3)双叹号表示这个密码已经过期了;
    4)$6$开头的,表明是用SHA-512加密;
    5)$1$表明是用MD5加密;
    6)$2$ 是用Blowfish加密;
    7)$5$ 是用 SHA-256加密;

    4)用户类别及用户组类别

    • 用户类别:
    管理员:0
    普通用户: 1-65535
    	系统用户:1-499(系统后台运行的相关服务 无法登录)
    	一般用户:500-60000
    
    • 用户组类别:
    用户组类别:
    管理员组:
    普通组:
    	系统组:
    	一般组:
    	
    用户组类别:
    	私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一
    	       个与用户名同名的组
    	基本组:用户的默认组
    	附加组,额外组:默认组以外的其它组
    

    相关管理命令

    1)用户管理命令

    • useradd
    语法:
    	useradd (选项)(参数)
    功能:
    	用于Linux中创建的新的系统用户。
    选项:
    	-u:UID (手动指定用户id) user -u 1000 user1 tail -1 
    	  /etc/passewd
    	-g:GID(基本组id)组必须存在
    	-G:GID,...  (附加组id)
    	-c:"COMMENT" (指定注释信息)
    	-d:/path/to/directory (指定家目录)
    	-s:SHELL /etc/shells:	指定了当前系统可用的安全shell
    	-m:-k 创建家目录
    	-M:不创建用户家目录
    	-r:添加系统用户
    	
    e.g:
    	useradd	-c "caojin" -d /home/caojin user4
    	useradd 	-s /sbin/nologin user5
    
    • userdel
    语法:
    	userdel (选项)(参数)
    功能:
    	删除系统用户(不指定选项时 家目录时不会被删除的)。
    选项:
    	-r: 同时删除用户的家目录
    
    • id
    语法:
    	id (选项)(参数)
    功能:
    	显示真实有效的用户ID(UID)和组ID(GID)。
    选项:
    	-u:显示用户ID。
    	-g:显示用户所属群组的ID。
    	-G:显示用户所属附加群组的ID。
    	-n 显示用户名。
    
    • usermod
    语法:
    	usermod (选项)(参数)
    功能:
    	用于修改用户的基本信息。
    选项:
        -u:修改用户ID。
    	-g:修改用户所属的群组。(基本组)
    	-a:-G GID:不使用-a选项,会覆盖此前的附加组。
    	-c:修改用户帐号的备注文字。
    	-d:修改用户登入时的目录;
    	-m:不使用-m选项,原有家目录中的文件将不会被复制到新的家目录
    		中。
    	-s:修改用户登入后所使用的shell;
    	-l:修改用户登录名
    	-L:锁定帐号
    	-U:解锁帐号
    
    • passwd
    语法:
    	passwd (选项)(参数)
    功能:
    	设置用户的认证信息,包括用户密码、密码过期时间等。
    选项:
    	--stdin:从标准输入接收用户密码
    	-l:锁定用户账号
    	-u:解锁
    	-d: 删除用户密码
    
    • pwck:检查用户帐号完整性。
    • chsh:修改用户的默认shell。
    • chfn:修改注释信息。

    2)组管理命令

    • groupadd
    语法:
    	groupadd (选项)(参数)
    功能:
       创建一个新的工作组,新工作组的信息将被添加到系统文件中。
    选项:
    	-g:指定新建工作组的id(GID)。
    	-r:添加为系统组(无家目录)。
    	
    
    • groupmod
    语法:
    	groupmod (选项)(参数)
    功能:
       更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
    选项:
    	-g:设置欲使用的群组识别码。(GID)
    	-n:GRPNAME 设置欲使用的群组名称。(指定组名)
    
    • groupdel
    语法:
    	groupdel (选项)(参数)
    功能:
       用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
    e.g:
    	# groupadd damon  //创建damon工作组
            # groupdel damon  //删除这个工作组
    
    • gpasswd
    语法:
    	gpasswd (选项)(参数)
    功能:
       是Linux下工作组文件/etc/group和/etc/gshadow管理工具。
    选项:
    	 a:添加用户到组;
    	-d:从组删除用户;
    	-A:指定管理员;
    	-M:指定组成员和-A的用途差不多;
    	-r:删除密码;
    	-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组;
    
    • newgrp
    语法:
    	newgrp (选项)(群组名称)
    功能:
       切换用户所在用户组命令,登录另一个群组。
    

    3)权限管理命令

    • chown
    语法:
    	chown (选项)(参数)
    功能:
    	改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户ID,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
    选项:
    	-R: 修改目录及其内部文件的属主
    	--reference=/path/to/somefile file,...//属主和属组都改变了e.g:
    	# chown Hadoop /tmp/abc
    	# chown --reference=/tmp/abc /tmp/test
    	# chown :Hadoop /tmp/abc
    

    注意:只有只有管理员可以使用此命令。

    • chgrp
    语法:
    	chgrp (选项)(参数)
    功能:
    	用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组名。文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
    选项:
    	-R 
    	--reference=/path/to/somefile file,...
    	(引用参考)//设定为和前面文件一样的属主  	
    
    
    • chmod
    语法:
    	chmod (选项)(参数)
    功能:
    	1)修改三类用户的权限:
    	# chmod MODE file,...
    		-R
    		--reference=/path/to/somefile file,...
    	# chmod 750 /tmp/abc //rwxr-x---
    	 	 75 表示075。5表示005
    	
    	2)修改某类用户或某些类用户权限:
    	u,g,o,a
    	# chmod 用户类别=MODE file,...
    	# chmod u=rwx /tmp/abc
    	          Rw- / rw. Rx
    	        u=r,g=r / go=r
    		  g=r,o=
    	
    	3)修改某类用户的某位或某些位权限:
    	u,g,o,a
    	# chmod 用户类别+|-MODE file,...
    	# chmod u-x /tmp/abc
    	        U+x,g-x
    	        a+x 也可写成 +x 	
    
    • umask
    语法:
    	umask (选项)(参数)
    功能:
    	用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。
    
    选项:
    	-p:输出的权限掩码可直接作为指令来执行;
    	-S:以符号方式输出权限掩码。
    e.g:
    	利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,使得组用户的写权限,其他用户的读、写和执行权限都被取消:
    	# umask u=, g=w, o=rwx
    	# umask //显示当前的umask
    	# umask 022
    
  • 相关阅读:
    rsyslog imfile 模块说明
    正确的健身是啥意思——北漂18年(79)
    CC++ 内存对齐
    异步请求和超时控制
    dubbo入门(1)
    Query Cache Configuration
    perl 批量生成分区表
    perl 通过生成mysql 批量sql
    next 跳过当前循环
    last 退出当前循环
  • 原文地址:https://www.cnblogs.com/cjaaron/p/8270723.html
Copyright © 2020-2023  润新知