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 ...
随机推荐
- JS中的变量和输入输出
一.使用JS的三种方式 1.在HTML标签中,直接内嵌JS(并不提倡使用) <button onclick="alert('点你咋地')">点我</button& ...
- windows重装后,不重装oracle,直接恢复数据库
windows重装后,不重装oracle,让原来的库可用的问题环境: windows 7/Oracle 11.2.0.1.0 64位 原来的Oracle安装在D盘.重装只格式化了C盘 1.修改注册表 ...
- Linux(Fedora) 安装 Oracle XE Database
Fedora 安装 Oracle XE Database Fedora 20Oracle XeOracle VM VirtualBoxFedora 安装oracle 数据库 环境: Oracle VM ...
- 【Centos7】Delete virtual bridge
Previously,Stop service which controls virtual bridges. sudo systemctl stop libvirtd.service #System ...
- 【Centos7 GRUB】修改开机等待时间
centos7与之前版本不同,在/boot/grub/下没有 grub.conf文件,但在/etc/grub2/grub.cfg可找到帮助信息 [root@za default]# cat /boot ...
- Mybatis映射原理,动态SQL,log4j
1.理清mybatis中的#和$之间的区别? #{ }:表示一个预处理参数,参数类型不定,是根据传入的参数类型来设定的. 类似于JDBC中的? 特例使用,模糊查询:(针对oracle): and us ...
- Python初学——多进程Multiprocessing
1.1 什么是 Multiprocessing 多线程在同一时间只能处理一个任务. 可把任务平均分配给每个核,而每个核具有自己的运算空间. 1.2 添加进程 Process 与线程类似,如下所示,但是 ...
- 转每天一个linux命令(2):cd命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1 ...
- MyBatis从入门到放弃七:二级缓存原理分析
前言 说起mybatis的一级缓存和二级缓存我特意问了几个身边的朋友他们平时会不会用,结果没有一个人平时业务场景中用. 好吧,那我暂且用来学习源码吧.一级缓存我个人认为也确实有些鸡肋,mybatis默 ...
- 欠了好久的CRM帖子,双11来读。
又一年双11了,觉得天猫双11越来越没特色了. 从折扣,音符旋律到红包,今年15年却找不出往年的热度,只是商家还是一样的急,备着活动目标计划,做着库存价格打标视觉设计这种苦逼的日子. 欠了好久的CRM ...