Linux系统下用户与组的管理
Linux系统下用户与组的管理
一、用户及组基本概述
Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配。
1、uid(用户身份标识)
(1)root用户
uid为0
(2)普通用户:1--65535
系统用户 系统已经已经存在专门用来对系统服务或者系统资源进行管理的
1--499(CentOS 6.X)
1--999 (CentOS 7.X)
登录用户(平时专门做系统管理的用户)
500+ (CentOS 6.X)
1000+ (CeentOS 7.X)
2、gid(用户组身份标识)
(1)root组
gid为0
(2)普通组
系统组:1-499(CentOS 6.X), 1-999(CENTOS7)
普通组:500+(CentOS 6.x), 1000+(CENTOS7)
3、用户和组的关系:
(1)每个用户必须属于一个与用户同名的组(默认的情况) 这个组一般叫做基本组(主组)
(2)一个用户可以属于除基本组之外的其他组,这个组就叫做(附加组)(辅助组)
二、用户和组的配置文件
1、用户的配置文件和用户的信息文件/etc/passwd
[root@localhost yum.repos.d]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
共有七个字段以“:”分隔,作用为:
第一字段root:用户名
第二字段x:密码占位符
第三字段0:用户UID
第四字段0: GID
第五字段root: 用户说明信息
第六字段 /root: 用户家目录
第七字段 /bin/bash 用户的shell
2、用户的配置文件/etc/shadow
[root@localhost yum.repos.d]# cat /etc/shadow
root:$6$NJND277cVP5/NHvE$tH3CGuhyQJ.btAswXYkcJUNr62LjEy24hXlvu.AA2fVLSfNwrSrIHhcBrZM5N61XkiE5M/t6x3k/XDkdcBObO1::0:99999:7:::bin:*:16659:0:99999:7:::
共有九个字段以“:”分隔,作用为:
第一字段 root:用户名
第二字段 为加密后的密码(密码这一段 如果是 ! * 说明这个账号是不可用被锁定)
第三字段 密码的最后一次修改日期(使用1970年1月1日作为标准时间,每过一天,时间戳加一)
第四字段 两次密码修改的时间间隔
第五字段 密码的有效期,为99999时表示永不过期
第六字段 密码到期几天时提示修改密码,此处表示密码到期之前7天提醒修改密码
第七字段 密码到期后的宽限天数,即密码到期后这个账户还可以使用几天
0 代表密码过期后立即失效
-1 代表密码过期后用户失效
第八字段 账号的失效时间,用时间戳表示
第九字段 保留
3、用户的组信息文件/etc/group
[root@localhost ~]# cat /etc/group
root:x:0:
共有四个字段以“:”分隔,作用为:
第一字段 组名
第二字段 密码占位符
第三字段 组ID即GID
第四字段 组里附加的用户
4、组密码文件/etc/gshadow
[root@localhost ~]# cat /etc/gshadow
root:::
共有四个字段以“:”分隔,作用为:
第一字段 组名
第二字段 组密码
第三字段 组管理员用户名
第四字段 组中附加用户
三、用户和组的管理
1、用户管理的重要目录
(1)用户的家目录
普通用户:/home/UserName,所有者和所属组都是此用户权限是700
超级用户:/root/,所有者和所所属组都是root用户,权限是550
(2)用户的模板目录:
/etc/skel目录:用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会被复制到新添加的用户的家目录下,/etc/skel目录下的所有文件都是隐藏文件。
/etc/default/useradd:
作用:在使用useradd添加用户时的一个需要调用的一个默认配置文件
内容: # useradd defaults file
GROUP=100
HOME=/home 默认家目录
INACTIVE=-1 密码失效日期,shadow第7列
EXPIRE= 账号失效日期 第8列
SHELL=/bin/bash
SKEL=/etc/skel 家目录下面的隐藏文件的模板
CREATE_MAIL_SPOOL=yes 是否创建一个邮箱账户
/etc/login.defs :
作用:用来定义创建用户时需要的一些用户配置信息
内容:MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999 #密码有效期
PASS_MIN_DAYS 0 #密码修改间隔
PASS_MIN_LEN 5 #密码最小为5位
PASS_WARN_AGE 7 #密码到期警告
UID_MIN 1000 #最小的uid范围
UID_MAX 60000 #最大的uid范围
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000 #最小的GID范围
GID_MAX 60000 #最大GID范围
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 #密码的加密算法
2、添加用户命令useradd
(1)useradd命令格式:useradd [选项] UserName
(2)选项: -u 指定UID (默认500|1000开头)
-o 新建用户前不检查指定的UID是否存在(一般不要使用这个选项)
-g GID|组名 指明用户所属的基本组 (使用比较多)
-G 指明用户所属的附加组
-d 指定某个目录作为家目录,默认/home
-s 指明用户默认的shell 默认/bin/bash 通常会指定/sbin/nologin(使用较多)
-c “ ” 指定用户注释信息
-r 新建系统用户
-m 默认选项 创建用户家目录
-M 不创建用户家目录 (使用较多)
-D 修改用户的默认选项(修改的是/etc/default/useradd中的选项)
(3)指定选项添加用户:
useradd –u 550 –g dayi123 –G root –d /home/dayi123 –c “test user” –s /bin/bash dayi123
3修改用户属性usermod
(1)用法:usermod [选项] UserName
(2)选项:参数同useradd,部分不同参数如下:
-G GROUP1,GROUP2:新附加组,原来的附加组将会被覆盖,若要保留原有,则 要同时使用-a选项,表示追加
-l login_name:新的名字
-L 锁定指定用户
-U 解锁指定用户
-e YYYY-MM-DD:指定用户的过期日期
-f INACTIVE:指定非活动期限
-d 修改用户的家目录
4、给用户设定密码:
(1)用法:password [选项] UserName
(2)选项: -l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin 可以通过管道符输的数据作为用户密码
(3)应用
修改root用户密码:passwd 回车即可修改
[root@dayi123 ~]# passwd
Changing password for user root.
New password:
BAD PASSWORD: it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.
修改普通用户密码:passwd [选项] UserName
[root@dayi123 ~]# passwd dayi123
Changing password for user dayi123.
New password:
BAD PASSWORD: it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.
通过管道符修改密码(不需要确认):echo “password@123” | passwd –stdin dayi123
[root@dayi123 ~]# echo 'dayi123' | passwd --stdin dayi123
Changing password for user dayi123.
passwd: all authentication tokens updated successfully.
注意:注意字符串有一个$符号 会把后面的内容给替换成变量 而这个变量为空,所以切记改密码的时候要使用单引号 强引用
5、修改用户密码的状态chage
(1)用法:chage [选项] 用户名
(2)选项:-l 列出用户详细密码状态
-d 日期:修改密码最后一次修改日期(shadow3字段)
-m 天数:两次密码修改间隔(shadow中四字段)
-M 天数:密码有效期(shadow中5字段)
-W 天数:密码过期前警告天数(shadow中6字段)
-I 天数:密码过期后宽限天数(shadow第7字段)
-E 日期:账号失效时间(shadow中8字段)
(3)应用:
要求用户在第一次登陆的时候必须强制一定要修改密码:chage -d 0 dayi123
6、删除用户userdel
(1)用法:userdel [参数] UserName
(2)参数:-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
(3)应用:
删除dayi123用户及所有相关文件:userdel dayi123
7、组管理命令groupadd、groupdel、groupmod、gpasswd
(1)groupadd 新建用户组
语法:groupadd [参数] GroupName
参数: -g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;
应用举例:新建组dayi并指定GID为555
[root@dayi123 ~]# groupadd -g 555 dayi
[root@dayi123 ~]# cat /etc/group | grep dayi
dayi:x:555:
(2)groupdel 删除用户组(首先删除对应的用户 然后才能执行对应的组的删除操作)
语法:groupdel GroupName
(3)groupmod修改组信息
语法:groupmod [参数] GroupName
参数:-n 新的名字
-g 新的GID
修改组dayi名称为dy,修改GID为666:
[root@dayi123 ~]# groupmod -g 666 -n dy dayi
[root@dayi123 ~]# cat /etc/group | grep dy
dy:x:666:
(4)gpasswd给组新建一个密码
(5)groupmems用户主组的管理员成员
用法:groupmems [选项] [动作]
参数:-g 组 -a 用户名
-g 组 -d 删除
-g 组 -p 清空
-g 组 -l 列出组内所有的用户
应用:把test添加到dayi123用户组,并列出dayi123组内所有成员
[root@dayi123 ~]# groupmems -g dayi123 -a test
[root@dayi123 ~]# groupmems -g dayi123 -l
test
7、用户和组管理的其他命令
(1)chfn命令
1)作用:改变finger命令显示的信息
2)用法: chfn [参数]
3)应用举例:
[root@localhost
data]# chfn
Changing
finger information for root.
Name
[root]: root
Office
[]: mgedu
Office
Phone []: 123456
Home
Phone []: 23456
Finger
information changed.
(2)chsh命令
1)作用:更换登录系统时使用的shell
2)语法:chsh [参数]
3)应用举例:
[root@localhost
data]# chsh
Changing
shell for root.
New
shell [/bin/bash]:
(3)finger命令
1)作用:用于查找并显示用户信息
2)语法:finger [ 参数]
3)应用举例:
[root@localhost
data]# finger
Login Name
Tty Idle Login Time
Office Office Phone Host
root root
tty1 22:23 Mar 30 13:16 mgedu 123456
root root
pts/0 Mar 31 08:54
mgedu 123456
四、用户身份切换su
1、作用:进行用户身份的切换
2、语法:su – UserName #切换用户身份,所有的环境都会切过去
su UserName #切换用户身份,某些环境变量可能不会切换过去
su - UserName -c "date +'%Y %m'" #以某个用户的身份执行命令但不切换用户
3、使用su的一些注意事项:
1)使用root切换到其他普通的时候 是不需要密码的
2)通用户切换到root或者切换到其他用户的时候是需要密码登录的
3)su - root 用户名可以省略 但是仅限于root用户
4)如果想切换到root用户不用输密码,可以只用visudoer编辑
xian ALL=(ALL) NOPASSWD: ALL1
4、应用
1)用户身份的切换
[root@localhost
data]# su - dayi123
Last
login: Fri Mar 31 10:49:16 EDT 2017 on pts/0
[dayi123@localhost
~]$ su -
Password:
Last
login: Fri Mar 31 10:51:18 EDT 2017 on pts/0
[root@localhost
~]# su -
Last
login: Fri Mar 31 12:45:12 EDT 2017 on pts/0
[root@localhost
~]# su dayi123
2)不切换身份,以其他用户执行命令
[dayi123@localhost
~]$ su - root -c "ls /root"
Password:
anaconda-ks.cfg baoding.log
dayi123.txt EOF instll.log
sn.txt test tr
[dayi123@localhost
~]$ exit
exit
[root@localhost
~]# su - dayi123 -c "mkdir /root/dayi123"
mkdir:
cannot create directory ‘/root/dayi123’: Permission denied
[root@localhost
~]# su - dayi123 -c "mkdir /tmp/dayi123"
[root@localhost ~]# su - dayi123 -c "ls
/tmp/dayi123 -d"
/tmp/dayi123
Linux系统下用户与组的管理的更多相关文章
- Linux学习--4.用户和组的管理
用户和组的管理 前言 本篇文章主要讲Linux系统下用户和组的概念,还有添加用户和组,修改用户和组的基本操作,会涉及不少与之相关的配置文件与命令的介绍,几乎所有 正文 首先,简单提下概念,用户是操作系 ...
- 使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理
http://www.ibm.com/developerworks/cn/linux/l-ipmi/ 1.简介 IPMI(Intelligent Platform Management Interfa ...
- 浅析Linux系统下用户与权限管理
Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过 ...
- Linux 系统的用户和组
目录 1. 用户及组相关文件 2. 用户相关查询 2.1 直接通过cat文件查看用户及组文件内容 2.2 使用下面查询命令查看 3. 使用操作命令修改用户及组相关文件 3.1 专有编辑命令(仅限高级用 ...
- linux学习17 运维核心技能-Linux系统下用户权限管理
一.权限管理 1.ls -l rwxrwxrwx 左三位:定义user(owner)的权限 中三位:定义group的权限 右三位:定义other的权限 1.进程安全上下文 a.进程对文件的访问权限应用 ...
- linux笔记四-------用户和组的管理
1.linux多用户.多任务操作系统 cat /etc/passwd //查看当前系统用户信息 cat /etc/group //查看当前系统组别信息 2.rbac:基于角色进行权限分配 用 ...
- Linux系统下用户行为审计
以下内容在RHEL 6.4下测试通过. 1.编写脚本Command_history.sh,生产历史命令记录文件,内容如下 #!/bin/bash [ -d /usr/lib/.cmdlog ] || ...
- Linux 系统的用户和组详解_【all】
1.Linux 用户和用户组详解 2.Linux 文件特殊权限详解 3.Linux 文件的读写执行权限的说明 4.Linux 架构之简述企业网站 5.Linux 环境变量设置详解 6.企业生产环境用户 ...
- Linux系统下用户如何膝盖FTP用户密码
其实修改ftp用户密码与修改普通用户的密码的过程是一眼高的其具体步骤如下 1.用root账户登录系统 2.使用passwd命令修改密码: 第一次输入密码后提示:The password fails t ...
随机推荐
- PageObject设计模式,在selenium自动化测试中的运用
PageObject设计模式1. Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架. 2. web测试时,建议 ...
- [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.js
解决办法: 双击server,勾选上[Server Options]里面的[Publish module contexts to separte XML files],如下图即可.
- css div旋转之后自适应
css: .rotate90deg { transform: rotate(90deg); -ms-transform: rotate(90deg); /* IE 9 */ -moz-transfor ...
- JavaScript看书笔记01
JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...
- Windows下JNI的使用教程
JNI的使用大致有以下4个步骤: 一.在Java中写native方法 二.用javah命令生成C/C++头文件 三.写对应的C/C++程序实现头文件中声明的方法,并编译成库文件 四.在Java中加载这 ...
- vue.js拓展篇(8):测试开发与调试
内容 第15章:测试开发与调试 任何实际项目的开发,除了功能性代码的完成,规范的开发流程和严谨的测试都是不可或缺的.合理使用工具将事半功倍. 1.ESLint ESLint是Lint语法检查工具,避免 ...
- 堆排序—Java
堆排序: 一棵完全二叉树,如果父节点的值大于等于左右节点的值,则称此完全二叉树为小根堆(小顶堆):如果父节点的值小于等于左右节点的值,则次完全二叉树为大根堆(大顶堆). 堆排序是建立在大顶堆或小顶堆的 ...
- [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
上一讲为大家讲了什么是JSON,那么这一讲为大家带来了在WEB项目中JSON的用法,也就是JSON的封装与解析. 此图是数据库中的部分内容 一.JSON封装 所谓的JSON封装,指的是在Servlet ...
- prop解决一个checkbox选中后再次选中失效的问题
//问题点 初始状态复选框没有全选, 点击全选按钮调用checkAll方法, 实现了全选, 然后点击全不选按钮, 实现了全不选, 然后再次点击全选按钮, 结果却木有全选, 再反复点击木有任何反应. d ...
- MySQL的JOIN(三):JOIN优化实践之内循环的次数
这篇博文讲述如何优化内循环的次数.内循环的次数受驱动表的记录数所影响,驱动表记录数越多,内循环就越多,连接效率就越低下,所以尽量用小表驱动大表.先插入测试数据. CREATE TABLE t1 ( i ...