• Linux 用户和用户组详解


    用户分类

    超级用户:UID范围 0 
    root用户:uid=0(root) gid=0(root) groups=0(root)
    普通用户:由管理员创建,UID范围(500-65535)
       --> eg: omd用户 :uid=502(omd) gid=502(omd) groups=502(omd)
    拟用户:满足文件或者程序运行的需要而创建,系统优化的时候可以删掉
    UID范围(1-499)  文件结尾 /noligin

    记录用户密码的文件

    /etc/passwd      # 记录用户的信息

    /etc/passwd
    		用户名	  密码   uid     gid    用户说明	 家目录  		shell解释器
    		 omd 	:  x  :  502  :  502  :           :  /home/omd  :  /bin/bash

    image

    /etc/shadow      #  记录用户密码的信息

    用户名     密码       最近更改时间   禁止修改密码的天数   到用户必须修改密码的天数   告警更改密码期限      不活动时间     标志            
    omd  : lem600@FTL :   17394 :       0          :             99999   :         7       :          :         :
    	

    image

    /etc/group        # 记录组信息

    用户名   密码    组ID
    omd  :   x  :  502:

    image

    关于用户控制的命令

    chage: 查看/修改密码信息,例如密码等
    		chage -l omd
    		-E:更改账户过期时间
    			chage -E "空格" omd   ==>设置永久
    			chage -E "2017/08/11" omd
    				==>useradd -e "2017/08/11" omd
    				==>usermod -e "2017/08/11" omd
    		chage -m7 -M60 -W10 -I30 omd -->m(min) M(max) W(warning) -I(inactive)
    			==>passwd  -n 7 -x 60 -i 30 -w 10  FTL  --> n(min) -x(max) -w(warning) -i(inactive)
    chmod:更改属性值的
    		chmod 755 -R / 系统默认临界    777-022/777-002
    		chmod 644 /    系统默认临界    666-022/666-002
    usermod:更改用户信息   -->大部分参数根useadd 一致,掌握useradd即可
    		usermod -e "2017/06/08" omd   ->只修改当前omd用户
    useradd :添加用户    -->也可以直接编辑文件添加
    	-->默认的文件在 : /etc/default/useradd
    	-->同时受控制在 : /etc/login.defs
    	-->修改的文件在 : /etc/passwd shadow group gshadow
    		useradd omd -p passwd
    	-g:添加用户组,以用户名称或者数字作为用户登录的起始组
    	-G:给用户添加多个用户组,用逗号,隔开
    	-s:指定登录shell
    	-u:指定UID
    	-c:comment
    	-e:指定过期时间
    	-r 创建系统账户 
    	-d:更改家目录,不存在系统会创建
    	-m:用户目录不存在就会自动创建
    	-M:不建立用户家目录,多用于虚拟用户nologin
    	-D:useradd -D 查看默认系统默认的添加新用户的参数
    	   -D -?:更改系统默认文件(/etc/default/useradd)中的参数
    	   		-D -e: 默认加上D后更改配置文件(useradd文件)中账号终止时间   YYYY-MM-DD 
    	   			useradd -D -e "2017/06/08" omd    -->-D 默认同时修改文件中的
    	   		usermod -e "2017/06/08" omd   ->只修改当前omd用户
    	   		useradd -e "2017/06/08" omd   ->只修改当前omd用户
    
    	-M:不指定家目录   -->多用于虚拟用户
             # 添加组用户为mysql的用户,且该用户不能登录
    	useradd -g mysql mysql -s /sbin/nologin  (若不指定组,默认增加一个和UID一样的GID)
             # 添加用户ID为502且组为uses是omd用户
    	useradd omd -u 502 -g users 
             # 添加用户ID为666组为root且家目录为/FTL的FTL用户
    	useradd -c "HandsomeBoy" -u 666 -G root,omd -s /bin/sh -d /FTL FTL
    		grep "FTL" /etc/passwd   -->只过滤包含oldboy的行
    userdel: 删除用户以及用户信息   -->也可以直接编辑文件,一般我们在工作中直接注释掉这个用户即可
         -r      删除用户的家目录        -->不要轻易使用这个参数,会删除该用户的同时删除家目录的文件
                 1.确保删除一个文件之前,先进行备份,管好你的回车键,除非你确保没问题
                 2.比删除更好的是注释掉这个文件
                 3.删除用户,可以#也可以使用/bin/nologin
                 4.pawd -l omd   -->锁定账户
                 5.chage -E "20170812" omd
         -f  删除用户登入目录以及目录中所有文件。
         userdel -r omd
    
    chgrp:  更改属组用的 change group  
             -R :递归更改权限
            users /home/omd/h.txt  -->更改h.txt的属组为users
                ==> chgrp root h.txt --> 点. 之前代表默认属性
    
    groupadd:添加用户组
        groupadd sa   添加名为sa的用户组  -->这里走的是默认的添加
        groupadd -g 666 my   添加一个名为my且gid为666的组
        groupadd users -g 502   -->添加用户组为502的user
    
    groupdel:删除用户组
        groupdel sa
    
    chown:  更改用户已经用户组的命令
              -R :递归更改权限
            chown omd h.txt
            chown omd.users h.txt
    passwd:超级用户:  passwd  omd   -->修改omd用户的密码
                        passwd        -->默认修改root用户的密码
            普通用户:  登录到omd用户下,输入passwd  默认修改omd用户的密码
    
            --stdin:    echo ftl600@HHH|passwd --stdin omd   -->stdin接受echo输入的字符,作为omd的密码
                             ==>passwd omd <ftl600@HHH
                             ==>passwd --stdin FTL <6.txt   -->6.txt是一个文件,使用的标准输入
    
                        passwd  -n 7 -x 60 -i 30 -w 10  FTL  --> n(min) -x(max) -w(warning) -i(inactive)
            查看用户密码信息;
                    chage -l FTL
    id:  查看用户的UID,GID
    		id omd
    			uid=500(omd) gid=500id(omd) groups=500(omd)
    		id -un
    w:	show who logged on and what he is doing 
    	****************w > who > users******************
    	 17:43:13 up 10:55,  2 users,  load average: 0.00, 0.00, 0.00
    	USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    	root     pts/0    192.168.25.100   06Aug17  0.00s  1.95s  0.08s w
    	root     pts/1    192.168.25.100   15:30    2:13m  0.01s  0.01s -bash
    
    who:  可以查看登录信息,比w简单 
    	# who
    	  root     pts/0        2017-08-01 20:54 (192.168.25.100)
    
    users:只显示当前终端以什么用户登录,比who还简单
    
    whoami:查看当前对象
    
    last: 显示登录的详细列表以及现在的状况
    	对应目录:last ==>last /var/log/wtmp   
    	root     pts/1        192.168.25.100   Sat Aug 12 14:45 - 15:30  (00:44)    
    	root     pts/0        192.168.25.100   Sun Aug  6 08:25   still logged in  
    
    lastlog: 查看用户的登录情况
    	lastlog的日志文件 ==> /var/log/lasglog  
    	  oldboy               **Never logged in**
    	    h                  **Never logged in**
    
    su : 角色切换
    	su 和 su - 的区别:
    		su -: 会切换root用户,也会把用户变量也切换到root的环境变量
    		su :  只是会切换root用户,但是当前的环境变量还是以前用户的环境变量
    	不切换用户而直接执行命令:
    		以omd用户执行命令:su - root -c "ifconfig"  需要输入密码
    			-->同理 创建的文件时omd用户的

    用户和组用到的文件

    /etc/skel/:存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件(包括隐含文件)都会被自动复制到新添加用户的家目录下去,默认都是隐藏文件。通过修改,添加,删除/etc/skel目录下的文件,我们可以为新创建的用户提供统一的,标准的,初始化用户环境
    /etc/login.defs:描述系统用户配置的文件,家目录的权限700(文件配置的umask是077)  邮件的目录等信息
       					从文件中可以看到uid,gid的最大值是500-60000
       					文件默认删除用户的时候删除用户组
       					密码加密的方式md5
    /etc/default/useradd: useradd命令的默认文件
    					文件设置了添加用户时的默认的一些操作
    					可以用 useradd -D  来进行编辑	
    						useradd -D -e 2015/06/09 
    passwd小结:
    	1.我们可以通过passwd和chage设置更改账户的密码
    		也可以通过/etc/login.defs配置文件或/etc/default/useradd针对所有账户进行全局修改
    	2.设置用户账户的时效,有利有弊。
    		优点:可以定期的强制系统管理人员进行密码的修改,提升系统的安全性。
    		缺点:一些用户因为过期而无法登陆
    	3.在大规模的运维环境中,我们可以通过LDAP服务对Linux账户进行统一的认证,批量管理。

    用户登录的文件日志(以上均可用id --> lastlog)

    所有的:ll    /var/log/secure*                  
          lastlog ==> /var/log/wtmp   
          lastlog ==> /var/log/lasglog             

    用户管理小结

    useradd -u -g -G -s -M -e -c -d
                    /etc/skel,/etc/default/useradd,/etc/login.defs
                userdel -r(不建议用,用其他方法,注释,nologin,-L之类) 
                usermod -u -g -G -s -M -e -c -d -L -U 
                id
                chage -l -E -m -M -W 
                passwd --stdin -n -i -x -w (suid位置)
                su
                sudo -l -k 
                visudo -c 
    

    组管理小结  

    groupadd -g
    groupdel 
    groupmod    

    用户查询命令

    w    
    id
    who    
    last 
    users
    finger      
    lastlog
    【更多参考】

    Linux su命令详解              https://www.cnblogs.com/ftl1012/p/su.html
    Linux sudo详解                 https://www.cnblogs.com/ftl1012/p/sudo.htmlLinux
    Linux chown命令详解        https://www.cnblogs.com/ftl1012/p/9259936.html
    Linux chmod命令详解        https://www.cnblogs.com/ftl1012/p/9259990.html
    Linux 文件特殊权限详解    https://www.cnblogs.com/ftl1012/p/9260157.html




  • 相关阅读:
    Learn Goroutine
    Redis eviction policies
    Hungarian Algorithm
    Prime and Factors
    HDU 2642 Stars
    236. Lowest Common Ancestor of a Binary Tree
    Leetcode 96. Unique Binary Search Trees
    Search in Rotated Sorted Array
    ID Generator
    概率问题
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9280127.html
Copyright © 2020-2023  润新知