用户管理

(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 
posted @ 2018-05-05 20:38  你很棒  阅读(200)  评论(0编辑  收藏  举报