linux用户和用户组及权限管理

前言

初始学习linux时不知道学习用户或用户组以及权限是干嘛的,慢慢了解到在实际应用中起着很重要的作用

用户

我的理解,用户其实就是操作系统的使用者,比如widow操作系统可以建立一个或多个账户,linux也是类似
linux是多用户多任务的操作系统,即用户A可以使用操作系统同时用户B也可使用且可同时打开多个进程;

用户的类别

管理员:root,拥有所有权限
普通用户:
     系统用户:仅用于运行服务程序;
     登录用户:系统资源的正常使用者; 

用户标识:UserID, UID

用户标识可理解为就是一个id,即一个英文对应一个数值,由解析库解析,范围为16bits二进制数字:0-65535;
     管理员:用户标识为0
     普通用户:
         系统用户:
                 CentOS 5, 6: 用户标识范围 1-499
                 CentOS 7: 用户标识范围 1-999
         普通用户:
                 CentOS 5,6: 500+
                 CentOS 7: 1000+
     解析库: username <==>UID 
           cat /etc/passwd:用户名、UID及其它属性信息解析库;可查询对应的用户跟用户标识

用户组

即多个用户的组合,一个组所有的权限,其下的的用户也拥有

用户组类别

 大类可分为:
 		管理员组
 		普通用户组:
              系统组
              登录组
  用户组标识:GroupID, GroupID(与用户标识类似)
         管理员组:0
         普通用户组:
              系统组:
                CentOS 5,6: 1-499
                CentOS 7: 1-999
              登录组:
                CentOS 5,6: 500+
				CentOS 7: 1000+
          名称解析:groupname <==> gid 
          解析库:/etc/group 有对应的用户组以及用户组标识
  以用户为核心可分类为:
       用户的主组:基本组;
       用户的附加组:额外组;
  根据组内容纳的用户来划分:
       私有组:与用户名相同,且只有一个此用户;
       公共组:组内包含了多个用户;

用户、用户组认证机制

此机制主要用于验证用户的确是它所声称的人,存储位置如下:
	用户的认证信息库:/etc/shadow
	用户组的认证信息库:/etc/shadow
用户密码为加密存放,使用单项加密机制(单向加密仅能加密,不能解密,数据相同加密结果相同)
加密算法:一般有md5、sha1、sha224、sha256、sha384、sha512

用户和组的管理

用户和组的管理主要以命令进行增删改查:
 	组:groupadd(添加用户组),  groupmod(修改用户组), groupdel(删除用户组)
 	用户:useradd(添加用户), usermod(修改用户), userdel(删除用户)
 	认证:passwd命令(主要用于修改用户密码)
	组解析库文件说明:/etc/group
  		GRPNAME:x:GID:user1, user2, ...
  		组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔
			Eg:  nologin:x:2015:
					storm:x:2016:
	用户解析库文件说明:/etc/passwd 
       username:password:UID:GID:GECOS:directory:shell
           Eg:storm:x:2016:2016::/home/storm:/bin/bash

 groupadd命令:添加用户组
 		使用方法:groupadd  [选项]  GROUPNAME
         		选项:-g  GID:指明GID;
         				eg:~]# groupadd -g 1005 apple    ##添加用户组apple且组id为1005,为普通组
          				 -r, --system:系统组;
 groupmod命令:修改组信息
       使用方法:groupmod [选项] GROUPNAME
                 选项:-g  GID :修改组的id
                 			-n NEW_NAME:修改组名;
                 			eg:~]# groupmod -n apple9 apple    ##将apple组名修改为apple9
 groupdel命令:删除组
 		使用方法:groupdel [选项] GROUPNAME
 useradd命令:添加用户
 		使用方法:useradd  [选项]  USERNAME
        	选项:	-c, --comment COMMENT:注释信息,一般为Full Name;
          				-d, --home  /PATH/TO/HOME_DIR:家目录路径;目标路径不能事先存在,否则会有警告;不指名此
          					参数则创建用户时会默认创建一个家目录
          				-g, --gid GROUP:用户的基本组组名或GID;
          				-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用户所属的附加组列表,彼此间用逗号隔开,中
          					间没有空格;
          				-m, --create-home:强制创建家目录; 
          				-M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes;
          				-r, --system:创建一个系统账户
          				-s, --shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 
          					变量选择默认的登录shell;(注意:创建登录用户时,为其自定义的shell程序必须为可登录
          					shell,且要位于/etc/shells文件中;)
          				-u, --uid UID:用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使
          					用大于等于UID_MIN,且大于任何其他用户 ID 最小值。
		eg:useradd -d /usr/local/nginx/html/file apple    ##即创建一个apple用户,且其家目录为/usr/local/nginx/html/file
            			-e, --expiredate  EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定
             			-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。

     为用户提供默认配置的配置文件:/etc/login.defs, /etc/default/useradd
	影子口令文件说明:/etc/shadow
		登录名:密码:最近一次的修改时间:密码的最短使用期限:密码最长使用期限:提前警告的天数:非活动期限:账号的禁用日期:保留
		示例:apple:$6$x0jm5KMu$N.gOtGoel2RGUsh2HaboaZr/2dECBuoZRH91MYjMvnS5lZgfXQRuOkvzOcTtNcPAE5kudAa.IBvVFTlrwckiM.:16870:0:99999:7::2019:
       密码结构说明:$加密算法$salt$加密的密码字符串

 usermod命令:修改用户信息
		使用方法:usermod  [选项]  USERNAME
    		选项:	-c, --comment  COMMENT   修改注释信息
        			-d, --home  HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文
        				件会移动到新目录中;
    				-g, --gid GROUP   eg:   ~]# usermod -g 2006 apple  修改用户属组
    				-G, --groups  GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表
    					示为用户添加新的附加组;
    				-l, --login  NEW_LOGIN:修改当前用户的用户名;
    				-s, --shell  SHELL
					-u, --uid  UID  修改用户的UID
    				-L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”
    				-U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”

userdel命令:删除用户账号
		使用方法:userdel [选项]  USERNAME
        		选项:-r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除
				eg:userdel -r apple
passwd命令:密码管理命令
     passwd   [-l]  [-u  [-f]]  [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username]
    (1) passwd:修改当前登录用户的密码;
    (2) passwd  username:修改其它用户的密码,仅root有此权限;
  	选项:
    	-l:锁定密码
    	-u:解锁解密
    	-d:清除密码
    	--stdin:从标准输入接收密码;
			echo "PASSWORD" | passwd  --stdin  USERNAME
			Eg:    ~]# echo "apple6892234" | passwd --stdin apple3
	密码复杂度:
   		(1) 不能少于8个字符;
  		(2) 不能使用与过去的密码太相似的密码;
   		(3) 应该使用四类字符中的至少三类;
id命令:查看用户相关的id信息;
 		使用方法:id  [OPTION]...  [USER]
      		-u:仅查看uid
			-g:仅查看gid
      		-G:查看所属的所有组的ID;
      		-n:显示名称,而非ID;
su命令:switch user切换当前登录系统的用户
		切换用户时:
        	(1) 不读取目标用户的配置文件(非登录式切换,半切换);
                su  USERNAME
        	(2) 读取目标用户的配置文件(登录式切换,完全切换);
                su  -l  USERNAME
                su  -  USERNAME
      -c command, --command=command:仅以指定的用户的身份运行此处指定的命令,而不执行真正的身份切换操
      		作;一般用于普通用户需要执行某个root才能执行的命令时使用,比如 su root -c "mkdir /home/apple"(以
      		root用户创建apple目录)
  		注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码;
  		
 gpasswd命令:为组添加密码
		使用方法: gpasswd [选项] group
			eg:gpasswd apple    ##给apple这个组添加密码
			-a USERNAME:把用户添加至组中;
			-d USERNAME:从此组中移除此用户;
         组密码文件:/etc/gshadow
  newgrp命令:登录到一个新组
  chage命令:修改用户账号的各种期限;

权限管理

进程:以某个用户的身份运行,进程对资源的操作权限取决于它所代表的用户;
文件:权限模型
属主:owner
属组:group
其它:other
权限模型生效的机制:
进程的运行者遵循规则:
	是否与文件的属主相同,如果是,则以文件属主的身份来访问此文件;否则
	是否属于文件的属组,如果是,则以文件属组的身份来访问此文件;否则
	以文件的其它用户的身份来访问此文件;
文件系统文件权限:
	三类用户:
    	属主:owner, u
        属组:group, g
        其它:other, o
	文件权限说明:
		r: readable,可读,即可获取文件的数据;
		w: writable, 可写,即可修改文件的数据;
		x:excutable, 可执行 ,即可将此文件运行为进程;
	目录权限说明:
		r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;
		w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;
		x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;
	权限组成说明:
		rwxrwxrwx:
          	前三位rwx :owner,文件所属拥有者拥有的权限
          	中三位 rwx :group文件所属的组拥有的权限
			后三位 rwx :other文件其他用户所拥有的权限
    权限组合机制:
        以owner为例:
			---      		000     0      ##计算以2的幂次方计算
			--x      		001     1
			-w-      		010     2
			-wx     		011     3
			r--      		100     4
			r-x      		101     5
			rw-      		110     6
			rwx      	111     7
    练习:
        rwxr-xr-x:755
        rw-r--r--: 644
        750: rwxr-x---,  640: rw-r-----

权限管理命令

ownership: 仅管理员有权限 修改
	改属主命令:chown
	改属组命令:chgrp
mode(permission):仅属主有权限执行修改
chmod命令用法:用户对文件或目录调用的使用权限修改
      	chmod [OPTION]... MODE[,MODE]... FILE...
      	chmod [OPTION]... OCTAL-MODE FILE...
		chmod [OPTION]... --reference=RFILE FILE...
    用户的标识符:u,g,o,a
     	(1) chmod [OPTION]... MODE[,MODE]... FILE...
        	 [apple@buck ~]$ ll /tmp 
           	drwxr-xr-x. 2 apple apple1 6 Mar 10 08:24 apple
         	[apple@buck ~]$ chmod u=rw- /tmp/apple
         	[apple@buck ~]$ ll /tmp
         	drw-r-xr-x. 2 apple apple1 6 Mar 10 08:24 apple
      		MODE:
          		赋权表示法:直接操作一类用户的所有权限位rwx;
		              u=
		              g=
		              o=
		              a=
        			两类用户权限相同:ug=, go=
       				不同类的用户权限不同:u=,g=,o=
       			授权表示法:操作一类用户一位或多位权限;
			           u+, u-
			           g+, g-
			           o+, o-				
			           a+, a-
       				两类用户权限收授机制相同:ug+, ug-, ...
       				不同类的用户权限不同:u+,g+,o+
		(2) chmod [OPTION]... OCTAL-MODE FILE...
		(3) chmod [OPTION]... --reference=RFILE FILE...
				--reference=RFILE:RFILE表示参考其权限模型
     			常用选项:
               	-R, --recursive:递归修改;即修改某个目录下所有文件的属性
chown命令:修改文件或目录的拥有者
        chown [OPTION]... [OWNER][:[GROUP]] FILE...
        chown [OPTION]... --reference=RFILE  FILE...
     	常用选项:
               -R, --recursive:递归修改;
chgrp命令:改变文件或目录的所属群组
         chgrp [OPTION]... GROUP FILE...
         chgrp [OPTION]... --reference=RFILE FILE...

umask:显示或设定文件模式掩码
        文件:
        666-umask
        目录:
        777-umask
      说明:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,             则需要加1;
     显示文件模式掩码:
        直接命令执行:umask
     设定模式掩码:
		直接命令执行:umask MASK
		注意:此设定仅对当前shell进程有效;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值