zoukankan      html  css  js  c++  java
  • 用户管理

    (1)用户基本概念

    • 用户介绍
    系统上的进程都有特定的用户运行		\ps aux | less   USER 
    每个文件都有特定的用户所拥有		\ll /home 
    文件或目录都受用户的限制			
    进程访问一个文件是否有权限根据进程所属的用户
    
    • 用户相关的文件
    /etc/passwd  		\用户信息
    	root:x:0:0:root:/root:/bin/bash
    	用户:密码占位符:UID:GID:描述:家目录:shell
    /etc/shadow			\密码信息
    	root:$6$xKjgS.FxEeCrYdqJ$12312312312::0:99999:7:::
    	用户:$加密方式:$盐:$密码:密码过期时间控制策略
    /etc/group			\组信息
    
    • 加密算法
    $1			\md5
    $5			\SHA-256
    $6			\SHA-512
    
    • 系统约定:C6
    UID:0		\root
    UID:1~499	\系统用户
    UID:500+	\普通用户
    

    (2)用户管理

    1)用户组

    • groupadd:添加组
    选项:
    	-g		//指定组的gid
    
    例:
    	groupadd it 			//添加it组
    	groupadd -g 1000 hr 	//添加gid为1000的hr组
    
    • groupdel:删除组
    例:
    	groupdel net01 				//删除组net01 
    

    2)用户

    • useradd:创建用户
    选项:
    	-u:指定用户的uid
    	-d:指定用户的家目录
    	-s:指定用户的shell类型
    	-G:指定用户的附加组
    	-g:指定用户的主组
    
    例:
    	useradd user00						//创建用户user00,未指定任何组,系统会创建一个和用户名相同的组作为用户的主组,同时会给用户创建家目录,shell类型,邮箱目录(/var/spool/mail)
    	useradd -u 501 user01 				//创建用户user01,指定uid为501
    	useradd -d /aaa user02 				//创建用户user02,指定家目录为/aaa,家目录不用事先创建,
    	useradd -s /sbin/nologin user03 	//创建用户user03,指定shell类型为/sbin/nologin 
    	useradd -G hr,it user04 			//创建用户user04,指定用户的附加组为hr,it 
    
    • userdel:删除用户
    选项:	
    	-r :删除用户的同时删除用户的家目录和邮箱目录
    
    例:
    	userdel user00 						//只会删除用户,不会删除用户的家目录和邮箱目录(/var/spool/mail)
    	userdel -r user01 					//同时删除用户的家目录和邮箱目录
    
    • passwd:修改密码
      注意:root用户可以给任何用户设置密码,普通用户只能给自己修改密码,而且必须提供原密码
    例:
    	passwd user02                                 //修改用户user02密码
            passwd                                             //修改用户自己的密码
    	echo "123" | passwd --stdin user02   //给用户user02设置密码为123
    
    • id:查看当前登录用户信息和查看当前系统是否有该指定的用户
    例
        id             //查看当前系统是哪个用户登录
        id user01     //查看用户和组信息
    uid=0(root) gid=0(root) groups=0(root)
    用户            用户主组        用户所有组(包括主组和附加组)
    

    3)组成员管理

    • usermod:修改用户属性
    	-s:修改用户的shell类型
    
    例:
    	usermod -s /sbin/nologin user03  && grep "user03" /etc/passwd 
    
    • gpasswd:修改组属性
    选项:
    	-a:给用户追加附加组
    	-d:删除用户的附加组
    
    例:
    	gpasswd -a user04 it 				//给user04用户添加到it组中
    	gpasswd -d user04 it 				//从组it中删除user04
    

    (3)其它知识

    1)nologin shell

    /sbin/nologin :用户无法登陆系统实现管理,仅作为运行进程的用户,访问FTP的用户,比较安全的设置;grep "bash$" /etc/passwd 
    /bin/bash 	  :登陆实现的用户实现管理
    shell是用户登录后运行的第一个程序
    

    2)useradd创建用户使用的文件

    第一个文件:/etc/login.defs   设置密码策略,UID,GID,加密
    [root@master ~]# egrep -v "^$|^#" /etc/login.defs 
    MAIL_DIR	/var/spool/mail
    PASS_MAX_DAYS	99999                            //密码过期时间,99999表示密码永远不过期
    PASS_MIN_DAYS	0
    PASS_MIN_LEN	5
    PASS_WARN_AGE	7
    UID_MIN                  1000
    UID_MAX                 60000
    SYS_UID_MIN               201
    SYS_UID_MAX               999
    GID_MIN                  1000
    GID_MAX                 60000
    SYS_GID_MIN               201
    SYS_GID_MAX               999
    CREATE_HOME	yes
    UMASK           077
    USERGROUPS_ENAB yes
    ENCRYPT_METHOD SHA512 
    
    chage -l root                                     //查看用户密码的过期时间策略
    chage -M 99999 root                         //设置root密码永远不过期
    
    第二个文件:/etc/default/useradd 
    SHELL=/sbin/nologin    //这样设置以后创建用户的shell种类默认就是/sbin/nologin
    

    3)用户登录加载的几个文件

    默认useradd创建用户,会从/etc/skel/这个目录下把默认的这几个环境变量文件放入到用户的家目录中

    [root@master ~]# ls /etc/skel/ -a
    .  ..  .bash_logout  .bash_profile  .bashrc
    

    4)sudo提权

    • 两种方式给用户提升执行命令的权限
    方式一:su - root  或su -                    //切换到root,需要输入root密码,不建议
    方式二:
    	创建用户的时候:useradd alex -G wheel                 //创建用户alex加入到wheel组,应为/etc/sudoers文件中已经定义wheel组有执行root命令的权限
    	用户存在的时候:gpasswd -a alex wheel                 //用户存在的时候加入到wheel组
    注意:提升权限主要是修改这个文件/etc/sudoers ,其中有这个配置%wheel	ALL=(ALL)	ALL	,只要用户加入到该组中就有权限,每次用户使用sudo需要输入密码
    
    • 使用sudo方式
    sudo useradd jack 
    
  • 相关阅读:
    绘制surfaceView 基础类
    globalfifo设备驱动
    Linux设备驱动中的异步通知与异步I/O
    ARM Linux字符设备驱动程序
    s3c2440串口裸板驱动(使用fifo)
    Linux内核结构分析与移植
    带头结点的单链表的初始化,建立,插入,查找,删除
    使用lombok时@Setter @Getter无效
    web 服务中上传文件大小控制
    Flyway 学习时遇到的错误
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/8996018.html
Copyright © 2011-2022 走看看