3DAY 用户管理
0xff001用户/组管理
1、描述
用户和组:
- 系统上的每一个进程(运行程序)都是作为一个特定的用户运行的 
- 每个文件都由特定的用户拥有 
- 对文件和目录的访问受到用户的限制 
- 与正在运行的进程相关联的用户决定该进程可访问的文件和目录 
2、查看当前用户信息
[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
3、查看文件的owner
[root@localhost ~]# ll
总用量 0
-rw-r--r--. 1 root root 0 4月 30 11:21 1.txt
-rw-rw-rw-. 1 root root 0 4月 30 11:29 4.txt
drwxr-xr-x. 2 root root 6 4月 30 11:21 dir
drwxrwxrwx. 2 root root 6 4月 30 11:29 dir1
4、查完运行的进程username
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 128092 4000 ? Ss 11:13 0:01 /usr/lib/systemd/systemd --swi
5、用户组信息存储的文件
- 用户基本信息文件/etc/passwd 
- 用户密码信息文件/etc/shadow 
- 用户组信息文件/etc/group -  
0xff002用户管理
1、创建用户
[root@tianyun ~]# useradd user01
. 未指定该用户的主组
. 未指定该用户的附加组
. 未指定用户的HOME
. 未指定用户的SHELL
. 未指定用户的UID...
[root@tianyun ~]# grep 'user01' /etc/passwd /etc/shadow /etc/group
/etc/passwd:user01:x:507:512::/home/user01:/bin/bash
/etc/shadow:user01:!!:16589:0:99999:7:::
/etc/group:user01:x:512:
[root@tianyun ~]# id user01
uid=507(user01) gid=512(user01) groups=512(user01)
[root@tianyun ~]# ls /var/spool/mail/user01
/var/spool/mail/user01
小结:
如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group.
[root@tianyun ~]# useradd user02 -u 1503 //创建用户usr02,指定uid
[root@tianyun ~]# useradd user03 -d /aaa //创建用户user03 指定家目录
[root@tianyun ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell
[root@tianyun ~]# useradd user07 -G hr,it,fd //创建用户,指定附加组
[root@tianyun ~]# useradd user10 -u 4000 -s /sbin/nologin
2、删除用户
[root@tianyun ~]# userdel user10
//删除用户user10,但不删除用户家目录和mail spool
[root@tianyun ~]# ll -d /home/user10/
drwx------ 3 506 510 4096 09-01 21:14 /home/user10/
[root@tianyun ~]# ll /var/spool/mail/user10
-rw-rw---- 1 506 mail 0 09-01 21:14 /var/spool/mail/user10
[root@tianyun ~]# userdel -r user2
//删除用户user2,同时删除用户家目录和mail spool
3、用户密码
方法一:root修改其他用户(alice)密码
[root@tianyun ~]# passwd alice
方法二:用户(zhuzhu)登录,自己修改密码。
[zhuzhu@tianyun ~]$ passwd
4、组成员管理
注意:只针对已存在的用户 -G 组名 组名 ... 用户名
[root@tianyun ~]# usermod -G hr niuniu2 //覆盖原有的附加组
[root@tianyun ~]# usermod -G fd,it niuniu2
[root@tianyun ~]# usermod -aG hr niuniu2 //增加新的附加组
5、其他选项管理
[root@tianyun ~]# usermod -s /sbin/nologin niuniu2
修改登录SHELL
0xff003组管理
1、创建、删除组
[root@tianyun ~]# groupadd hr
[root@tianyun ~]# groupadd net01 -g 2000
//添加组net01,并指定gid 2000
[root@tianyun ~]# grep 'net01' /etc/group
//查看/etc/group中组net01信息
[root@tianyun ~]# groupdel net01
//删除组net01
0xff004提权
1、永久提权
[alice@tianyun ~]$ useradd u1
-bash: /usr/sbin/useradd: 权限不够
[alice@tianyun ~]$ su - root
password:
[root@tianyun ~]# useradd u1
成功
2、临时提权
以root身份授权普通用户xulei
[root@tianyun ~]# vim /etc/sudoers
%wheel ALL=(ALL) NOPASSWD: ALL
允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
[root@tianyun ~]# useradd xulei -G wheel
[root@tianyun ~]# id xulei
uid=504(xulei) gid=504(xulei) 组=504(xulei),10(wheel)
# passwd xulei
切换用户xulei登陆
[xulei@tianyun ~]$ useradd gougou10
-bash: /usr/sbin/useradd: 权限不够
[xulei@tianyun ~]$ sudo useradd gougou10
[xulei@tianyun ~]$ id gougou10
uid=505(gougou10) gid=505(gougou10) 组=505(gougou10)
0xff004案例
1、案例
1 useradd是创建用户的命令。
2 usermod是修改用户的命令。
3 groupadd是创建组的命令。
4 -u 制定用户的UID。
5 -g 制定用户的基本组。
6 -G 制定用户的附加组。
7 /etc/passwd 可以查看的是用户的基本组。
8 /etc/group 可以查看用户的附加组。
一、创建用户AAA,同时生成基本组AAA
[root@QF ~]# useradd AAA
[root@QF ~]# grep AAA /etc/passwd
AAA:x:6001:6001::/home/AAA:/bin/bash
二、创建用户BBB,同时生成基本组BBB
[root@QF ~]# useradd BBB
[root@QF ~]# grep BBB /etc/passwd
BBB:x:6002:6002::/home/BBB:/bin/bash
三、创建组CCC
[root@qf ~]# groupadd CCC
[root@qf ~]# grep CCC /etc/group
CCC:x:7001:
四、修改用户AAA的基本组为CCC.
五、查看passwd中,用户AAA的基本组是CCC。
[root@qf ~]# usermod AAA -g CCC
[root@qf ~]# grep AAA /etc/passwd
AAA:x:6001:7001::/home/AAA:/bin/bash
六、修改用户BBB的附加组为CCC.
七、查看group中,用户BBB的附加组是CCC。
[root@qf ~]# usermod BBB -G CCC
[root@qf ~]# grep CCC /etc/group
CCC:x:7001:BBB
0xff05扩展知识
1、用户创建时的默认设置能否改变呢?(比如SHELL是禁止登陆)
[root@tianyun ~]# vim /etc/default/useradd
SHELL=/sbin/nologin
尝试新建用户吧。
2、用户密码策略能否设置
1.设置用户密码最小天数(-m),最大天数(-M),提醒天数(-W),不活跃天数(-l)
chage -m 0 -M 90 -W 7 -I 14 username
2.设置用户下次登录立刻更改密码。
chage -d 0 username
3.列出用户密码策略信息。
chage -l username
4.设置用户密码过期日期。
chage -E YYYY-MM-DD username
3、用户密码策略能否设置?(比如密码有效期只有14天)
- 描述 
/etc/login.defs是设置用户帐号密码限制的文件。该文件里的配置对root用户无效
- 示例 
[root@tianyun ~]# vim /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 30
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
CREATE_HOME yes
ENCRYPT_METHOD SHA512
- MAN手册 
man login.defs
/etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。
如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。
# *REQUIRED* required
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
#密码最大有效期
PASS_MIN_DAYS 0
#两次修改密码的最小间隔时间
PASS_MIN_LEN 5
#密码最小长度,对于root无效
PASS_WARN_AGE 7
#密码过期前多少天开始提示
#
# Min/max values for automatic uid selection in useradd
#创建用户时不指定UID的话自动UID的范围
UID_MIN 500
#用户ID的最小值
UID_MAX 60000
#用户ID的最大值
#
# Min/max values for automatic gid selection in groupadd
#自动组ID的范围
GID_MIN 500
#组ID的最小值
GID_MAX 60000
#组ID的最大值
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#当删除用户的时候执行的脚本
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes
#使用useradd的时候是够创建用户目录
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
#用MD5加密密码
4、如何将多个用户加入到指定的组
- 描述 
usemod -G 改写用户的组之后,用户的组信息是覆盖,也就是说usermod使用户只能存在于一个组。那么如何使用户同时属于多个组呢? gpasswd -a试试吧
- 案例 
[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# useradd user3
[root@localhost ~]# groupadd group1
[root@localhost ~]# gpasswd -a user1 group1
正在将用户“user1”加入到“group1”组中
[root@localhost ~]# gpasswd -a user2 group1
[root@localhost ~]# cat /etc/group
group1:x:1011:user1,user2
5.如何替换某个组的所有成员呢?
[root@localhost ~]# gpasswd -M user2,user3 group1
[root@localhost ~]# cat /etc/group
group1:x:1011:user2,user3
6.如何删除某个组的某个成员
原组中有三个用户,删除其中一个用户。
[root@localhost ~]# grep group1 /etc/group
group1:x:1011:user3,user1,user2
[root@localhost ~]# gpasswd -d user1 group1
正在将用户“user1”从“group1”组中删除
[root@localhost ~]# grep group1 /etc/group
group1:x:1011:user3,user2
3DAY 用户管理的更多相关文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
		系列目录 前言 本节主要是关注者(即用户)和用户组的管理,微信公众号提供了用户和用户组的管理,我们可以在微信公众号官方里面进行操作,添加备注和标签,以及移动用户组别,同时,微信公众号也提供了相应的接口 ... 
- MySQL用户管理
		主要总结MySQL进行用户管理的基本实现,包含MySQL登录,添加用户,删除用户,为用户分配权限,移除某用户的权限,修改密码,查看权限等基本操作,所有命令均亲测实现.本博文是本人的劳动成果所得,在博客 ... 
- mysql  用户管理和权限设置
		用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; 创建 mysql> create user ... 
- Laravel大型项目系列教程(二)之用户管理
		Laravel大型项目系列教程(二) 一.前言 本节教程将大概实现用户的注册.修改个人信息.管理用户功能. 二.Let's go 1.创建用户注册视图 $ php artisan generate:v ... 
- linux 用户管理
		linux 用户管理 创建一个用户 foo 这个用户只能在/home/foo 上面增加删除文件, foo 不能在其他目录加减文件 useradd -d /home/foo -m foo [root@] ... 
- mongodb的用户管理及安全认证
		1.确认mongodb的版本 > use admin switched to db admin > db.runCommand({}) { "version" : &q ... 
- linux 用户管理(一)
		本节内容梗概: 1.用户管理配置文件 2.用户管理命令 3.用户组管理命令 4.批量添加用户 5.用户授权 学东西先讲原理,所以从配置文件入手 1.用户信息文件 /etc/passwd 存放了用户的 ... 
- MVC4做网站后台:用户管理 —用户
		这块进行用户管理,可以浏览.查询已注册的用户,修改用户资料,删除用户等.没有做添加用户,不知是否必要.列表页还是使用easyui的datagrid.这个思路跟用户组的方式差不多. 1.接口Interf ... 
- MVC4做网站后台:用户管理 ——用户组
		用户管理这块包含用户和用户组两部分. 用户组包括浏览 用户组列表,添加.修改.删除用户组等.按照前面思路系统是依据用户组来判断用户权限的,用户组的最主要目的是划分权限.权限这块以后单独在做. 下面实现 ... 
随机推荐
- Toggle Slow Animations
			Toggle Slow Animations iOS Simulator has a feature that slows animations, you can toggle it either b ... 
- 第一模块  Python开发入门
			第一章 Python语法基础 变量的定义规范 一.声明变量 name = "Alex" 二.变量的定义规则 变量名只能是字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 ... 
- cocoa-charts 导入其依赖库TABlib 报UIKit Foundation找不到的问题
			对于应用到项目中的一些第三方类库,尤其是C/C++ 写的,里面的大部分类文件的后缀都是 .C. 解决办法: 在 build setting 里按照如图所示,进行设置: 这说明以后只要是第三方类库中使用 ... 
- VirtualBox 使用物理硬盘
			/******************************************************************************* * VirtualBox 使用物理硬盘 ... 
- cf——C. Serval and Parenthesis Sequence
			括号正确匹配问题,应该不难 #include <iostream> #include <cstring> #include <string> #include &l ... 
- string   迭代器
			#include <iostream>#include <string>#include<algorithm>#define m 10000000using nam ... 
- java学习之路重新出发
			一.Java发展史: 1995年由詹姆斯高斯林带领团队开发 java问世 2004 jdk1.5版本更名jdk5.0 2010 sun公司被oracle公司收购 二.java三大体系: java ... 
- creator rotationY的问题
			最近在做一个2D的小游戏,碰撞方面由于懒,就直接使用cocos自带的物理组件RigidBody了. 但是在父节点挂载RigidBody之后,会导致设置rotationY时失效,具体原因没有深查,估计是 ... 
- 恢复win7快捷方式小箭头
			reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons&q ... 
- Acrobat.CAcroPDDoc open  无法找到指定文件
			pdfDoc = (Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc&quo ... 
