Linux系统用户与用户组管理
3.1用户配置文件和密码配置文件
用户的配置文件在/etc/passwd;文件权限见下图:
用户的配置文件/etc/passwd内的每一行代表一个用户。用户又划分三类,如下:
第一类 超级用户(系统管理员)
root UID=0,GID=0 也可以认为UID=0的用户就是超级用户
第二类 虚拟用户
存在Linux系统中,满足文件或程序运行需要,而创建的 特点是不能登录,不能直接使用,类似傀儡
UID与GID范围 1-999 /etc/passwd用户配置文件对应用户名的结尾基本以/sbin/nologin(不能被shell 解析登录的)
第三类 普通用户
超级用户(管理员)创建生成的用户 UID与GID是以1000开始的
注意: root创建用户普通用户是可以指定UID的。不允许和已有的用户UID相同。
/etc/passwd是由 “ :” 分割7个字段,每个字段的含义如下:
1. 用户名(如第一行中的root就是用户名):代表用户账号的字符串。用户名字符可以是大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位为点时,另外减号也不建议使用,因为容易造成混淆。
2.口令(passwd):存放的就是该账号的口令,为什么是 ‘x’ 呢?早期的unix系统口令确实是存放在这里,但基于安全因素,后来就将其存放到 ‘/etc/shadow’ 中了,在这里只用一个 ‘x’ 代替。现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。当然shadow文件是不能被普通用户读取的,只有超级用户才有权读取。此外,需要注意的是,如果passwd字段中的第一个字符是“*”的话,那么,就表示该账号被查封了,系统不允许持有该账号的用户登录。
3.用户标识号(UID):这个数字代表用户标识号,也叫做uid。系统识别用户身份就是通过这个数字来的,0就是root,也就是说你可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。通常uid的取值范围是0~65535(但实际上已经可以支持到4294967294),0是超级用户(root)的标识号,1~499由系统保留,作为管理账号,普通用户的标识号从500开始,如果我们自定义建立一个普通用户,你会看到该账户的标识号是大于或等于500的。
4. 组标识号(GID):表示组标识号,也叫做gid。这个字段对应着/etc/group 中的一条记录,其实/etc/group和/etc/passwd基本上类似。
5.注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等。不过,当你使用finger的功能时就会显示这些信息的
6. 用户的家目录,当用户登录时就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,这个字段是可以自定义的,比如你建立一个普通用户test1,要想让test1的家目录在/data目录下,只要修改/etc/passwd文件中test1那行中的该字段为/data即可。
7.shell,用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有很多种sh, csh, ksh, tcsh, bash等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录。如果你想建立一个账号不让他登录,那么就可以把该字段改成/sbin/nologin,默认是/bin/bash.
用户密码配置文件在/etc/shadow;文件权限见下图:
/etc/shadow和etc/passwd是一一对应的,这个文件是专门用来控制用户的密码的,也用冒号分割成9段:
- 用户名,跟/etc/passwd对应。
- 用户密码,这个才是该账号的真正的密码,不过这个密码已经加密过了,但是有些黑客还是能够解密的。所以,该文件属性设置为000,但是root账户是可以访问或更改的。
- 上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + (2012-1970)/4 + 1 = 15341’. 因为如果是闰年,则有366天。
- 要过多少天才可以更改密码,默认是0,即不限制。
- 密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。
- 密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
- 账号失效期限。你可以这样理解,如果设置这个值为3,则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过3天,则这个账号就失效了,即锁定了。
- 账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废。
- 作为保留用的,没有什么意义。
3.2 用户组管理
查看用户组文件:/etc/group
/etc/group和/etc/passwd不太一样,没有完全对应,/etc/passwd有的/etc/group
因为默认创建用户的同时也会创建跟用户名一样的组,字段含义和/etc/passwd类似
查看用户组密码存放的配置文件:/etc/gshadow
/etc/shadow对应的,有一个/etc/gshadow ,它是组的密码的配置文件,几乎不动它
以上关于用户与用户组相关的配置文件(/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow),系统都会主动帮助用户备份。备份的名称是以配置文件名结尾处加上减号”-”。如图:
既然提到了用户组,下面说一下怎么增、删用户组:
groupadd 用户组名 增加用户组
groupadd -g GIU 用户组 增加用户组并给新增用户组指定GID (指定GID不可以和已经存在的相同)
groupdel 用户组名 删除已经存在不需要的用户组 (删除用户组,用户组内没有用户)
3.3用户管理
useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
-d<登入目录>:指定用户登入时的启始目录
-g<群组>:指定用户所属的群组,也可以是GID号
-G<群组>:指定用户所属的附加群组 也可以是GID号
-M:不要自动建立用户的登入目录;
-u<uid>:指定用户id
-s<shell>:指定用户登入后所使用的shell
useradd -d 用户家目录 用户名
特殊说明: 家目录可以不事先存在,自动创建,指定用户家目录。
useradd -g 用户组名或GID 用户名
useradd -G 用户组名或GID 用户名
注: 不创建用户家目录,但是在/etc/passwd用户配置文件显示了用户家目录。实质没有用户家目录
本地登录,常规普通用户创建使用的shell类型是/bin/bash
在CentOS中 useradd 等同于assuser
3.4 usermod命令
选项-u 更改用户的UID。例:usermod -u 1000 xiaosan 将用户xiaosan的UID更改为1000。
选项-g 更改用户的GID(只能指定一个已存在的组,且最多一个)。例:usermod -g 1000 xiaosan 将用户xiaosan的用户组更改为1000。
选项-G 为用户增加扩展组,在使用,分割时可以同时扩展多个组。例:
选项-d 表示为用户自定义家目录。
选项-s 指定用户的shell,默认为/bin/bash,可以设定为/sbin/nologin 禁止登陆。例:usermod -s /bin/bash xiaosan 解除xiaosan用户禁止登陆。
选项-L 锁定用户
选项-U 解锁用户
命令id查看用户的uid和gid等信息
3.5 用户密码管理
命令passwd更改对应用户的密码
命令passwd -l 锁定用户密码,锁定的用户密码,会在/etc/shadow的第二段密码前加注!!
命令passwd -u 解锁用户密码
命令passwd --stdin 更改用户密码时,可以只输入一次并明文显示密码。
命令echo “111222” |passwd --ssdin 用户名,“|”可以将前面的命令输出的结果传递给后面的命令,使得passwd修改密码直接成功。
命令echo -e “11112222\n11112222" |passwd 用户名, 可以生成一个换行的结果直接修改密码。(-t可以分割输出结果)
3.6 mkpasswd命令
使用mkpasswd前需要先安装 yum install -y expect工具
命令mkpasswd 可以生成一个随机密码
命令mkpasswd -l 12 -s 3 生成一个12个(-l)字符串并且包含3个(-s)特殊符号的密码。如图:
3.7 su命令
命令su - 可以切换至指定用户及用户环境。
使用id命令可以查询当前用户及信息。
命令su也可以切换到指定用户但不会切换当前的环境。
使用 su -c “命令” +用户名 可以使用指定用户名权限执行命令。如图:在root用户下,使用xiaosan创建1.txt文件。
当指定用户未创建用户家目录而无法登陆时可通过以下方式创建家目录。
ls -la /etc/skel/ 在该文件下有家目录文件的模板。
使用mkdir 在/home/目录下创建家目录(家目录为用户名称)
使用cp命令将/etc/skel/下的模板复制到新建的用户家目录下。
使用chown - R命令更改用户家目录及目录下子文件的所属用户和所属组。
3.8 sudo命令
1、 su命令
whoami 查看当前用户
su - zhou 彻底切换用户
id
pwd 查看当前目录
su - -c "touch /tmp/zhou.111" zhou 用zhou用户创建一个文件
cp /etc/skel/.bash* /home/user5
chown -R user5:user5 !$
允许root用户允许所有命令
2、sudo命令
sudo 可以让普通用户指定身份运行一条命令
visudo
允许root用运行所有命令
:set nu 查看文件行数
chmod g-s /usr/bin/ls 去掉ls小s权限
用sudo运行ls命令
用sudo运行cat命令
visudo
切换user5用户,可以使用sudo ls查看root
命令的别名
用户组
3.9 限制root远程登录
使用vi /etc/ssh/sshd_config 中将Root用户远程登录改为no(使用/Root搜索,并将#去除,修改为no后保存退出),然后使用 systemctl restart sshd.service重启服务。
visudo设置一个用户的Alias(别名)
设定规则,为这几个用户添加,root用户的su权限。
此时,便可不使用密码直接使用命令 sudo su - 登录root用户。
转载于:https://my.oschina.net/u/3992081/blog/2253846
Linux系统用户与用户组管理相关推荐
- 2019/12/11学习内容摘要(Linux系统用户与用户组管理①)
一,认识/etc/passwd和/etc/shadow 1. /etc/passwd :文件中保存系统中所有的用户和用户的主要信息. 在命令行输入 cat /etc/passwd | head ( ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- 【身份鉴别-身份标识】Linux系统用户及用户组管理
目录 1 认识/etc/passwd 和 /etc/shadow 1.1 /etc/passwd 1.2 /etc/shadow 2 新增/删除用户和用户组 2.1 新增一个组 2.2 删除组 3 c ...
- 麒麟linux创建用户组,麒麟Linux系统用户和组管理指南(21页)-原创力文档
中标麒麟Linux服务器操作系统培训系列 中标麒麟Linux系统用户和组管理指南 技术创新,变革未来 本章目标 •熟悉中标麒麟Linux服务器操作系统中用户和组的 基本操作命令和方法: •了解用户和用 ...
- Linux的用户和用户组管理(转)
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟 ...
- linux运维管理系统培训,Linux运维教程之Linux系统用户与组管理
今天小编要跟大家分享的文章是关于Linux运维教程之Linux系统用户与组管理.正在从事Linux运维工作和学习的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助. 一.Linux系统用户 ...
- 05 Linux系统用户与组管理
Linux系统用户与组管理 用户信息管理 用户增删改查 用户权限管理 用户组管理 nginx / tomcat 用户登录 [root@myserver ~] # 用户名称@主机名称 位置 (可以使用 ...
- Linux 目录所属组设置,Linux系统用户与组管理命令及配置文件总结
一.Linux系统用户及组分类 1.用户类别 Linux系统中的用户大致可分为三类:root用户.系统用户.普通用户.每一个用户都拥有一个唯一的身份标识UID. 2.组分类 与用户信息对应的,Linu ...
- Linux操作系统——系统用户与用户组管理
目录 一. 用户和用户组管理 1.1 新增组的命令groupadd 1.2 删除组的命令groupdel 1.3 增加用户的命令useradd 1.4 删除账户的命令userdel 二. 用户密码管理 ...
最新文章
- TowerKing随笔汇总集
- java中的泛型的使用与理解
- Redis的哨兵模式Sentinel
- 【LeetCode笔记】581. 最短无序连续子数组(Java、数组)
- 整型与布尔型的转换(信息学奥赛一本通-T1022)
- ActiveMQ学习总结(5)——Java消息服务JMS详解
- 【零基础】计算机网络技术
- vue组件化学习第一天
- java actionsupport_struts2为什么action要继承actionSupport类
- iOS获取DSYM文件
- Unity渐进式GPU烘焙找不到显卡
- vue热敏打印机_方振起技术手记 - vue 使用打印机打印数据 print-js
- Python实现熵权法(正负指标)并计算综合评分—————附增完整代码和测试用例
- inssider序列号_AP注册问题-华三.ppt
- Android 事件拦截分发
- 今秋如何让自己的C币也来个大丰收
- Action Extension
- android 六边形简书,六边形RecyclerView
- 基于树莓派语音合成小白避坑
- 2021龙岩一中高考成绩查询,喜报!龙岩这7所一中的高考成绩出炉啦~
热门文章
- 如何给爸妈解释什么是“爬虫”?
- 判断三个老师教哪门课命题c语言,语文教学论复习资料
- Akka FSM 源代码分析
- r语言t检验输出检验统计量_R语言中实现T检验及可视化
- 区块链技术与应用(北大公开课,肖臻)-ETH The DAO
- MATLAB简单三维曲面的绘制
- php wind8.5,通用型建站软件phpwind 8.5正式版发布
- python自动写作软件_Windows 下优秀的写作软件有哪些?
- OpenFOAM——圆柱绕流对流换热
- “上市公司易主谜案”背后|一点财经