Linux下用户和组管理
用户与组之间的关系是,组下面有若干个用户,每个用户必须从属于唯一一个组。组可以理解为权限的集合。用户管理的命令有:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage。组管理的命令有:groupadd, groupdel, groupmod, gpasswd。
(一)linux系统下用户角色
在linux系统下用户的角色不同,权限和所能完成的任务也不同,用户角色是通过UID来识别的,在linux下要注意root用户的UID的唯一性。
1) root
系统管理员超级用户,系统唯一,可以登陆系统,可以操作任何文件和命令,拥有最高权限,UID值为0。
2) 虚拟用户
与真实的用户分开来,这类用户不能登陆系统,但是在使用某些服务的时候使用,这类用户是系统默认添加的。
3) 普通真实用户
这类用户可以登陆系统,但是只能操作自己家目录的内容,受限账户,这类用户都是管理员自行添加的。
(二)用户相关文件介绍
在windows当中可以使用计算机管理工具中的用户和组的管理工具来对用户进行管理,在linux下是通过对用户配置文件(区别与windows中的用户配置文件)的管理来实现对用户和组的管理。
1) /etc/passwd
用户账号文件,记录所有用户记录,每行表示一个用户信息,7个字段都有各自的含义。例如:root : x : 0 : 0 : root : /root : /bin/bash,这7个字段分别表示用户名、密码、UserID、GroupID、用户相关说明、用户家目录路径、用户的登陆shell。
2) /etc/shadow
用户账户的影子文件,包含用户的加密密码和其他信息,两个文件互补来记录用户信息,这个文件只有root可以读取和操作。每行包含8个字段,各项说明如下:
第1个字段,用户名;第2个字段,加密口令;第3个字段,上次口令改变时间,从1970年1月1日算起的天数;第4个字段,多少天内不能改变口令;第5个字段,多少天内必须改变口令;第6个字段,口令到期前多少天会出现警告;第7个字段,如果口令到期后几天不使用账号,则无法登陆;第8个字段,如果到这个日期不用账号则无法登陆,可以以YYYY-MM-DD格式,也可以用1970年1月1日起的天数。
3) /etc/login.de
使用vim可以对这个文件内容进行修改,下面介绍修改哪些位置有哪些作用。
MAIL_DIR,邮件存放目录;PASS_MAX_DAYS 密码有效期最长时间;PASS_MIN_DAYS,密码有效期最短时间;PASS_MIN_LEN,密码最小长度;PASS_WARN_AGE,密码到期提示时间;UID_MIN,UID最小值;UID_MAX,UID最大值;GID_MIN,GID最小值;GID_MAX,GID最大值;CREATE_HOME,是否创建家目录;UMASK,UMASK值;USERGROUPS_ENAB,当删除用户后,同名组中不在存在用户的时候,是否删除该组。
4) /etc/skel
存放用户启动文件的目录,类似与windows的用户配置文件目录,为用户提供用户环境,该目录下的文件全部为隐藏文件。在添加用户时会从该目录下复制文件到用户的家目录下,相当与统一的登陆模板。
开启和关闭投影密码命令。开启用户的投影密码,使得密码得到更好的保护,不容易被别的用户得到。该选项是一个安全选项,执行命令可以把用户名和密码分别存放在两个文件当中,影子文件就是密码文件。
pwconv,开启投影密码命令;pwunconv,关闭投影密码命令。
(三)用户管理
1) useradd 创建用户命令
useradd jake 创建名为jake的用户。useradd的常用选项及含义如下:-d指定用户的家目录;-g指定用户组;-G指定用户的附加组;-u指定用户的UID值;-p创建密码。例如,useradd -d /rose -g group -G root -u 505 rose,创建rose用户,指定家目录在/rose下,加入到group组,同时附加到root组,并设置UID号为505。
2) users
users查看所有登陆的用户(who)。
3) passwd设置密码命令
注意:没有设置密码的用户不能使用。例如:passwd rose 给用户rose设置密码。常用选项及含义如下:-d删除密码;-f强制执行下次登陆时更改密码;-l停止账号使用;-u启用已经停止的账号;-S显示密码信息。
常用的设置或密码方法有:a) passwd username,然后再在控制台中输入两次密码(不可见);
b) passwd --stdin username,然后在控制台中输入一次密码(可见);
c) echo “newpassword” | passwd --stdin username,使用管道将新密码传到标准输入。
4) userdel删除账号命令
userdel rose删除rose账号。userdel -r rose删除用户登陆目录及目录下的文件(类似于windows的删除用户选择是否删除用户的文档)。
5) usermod修改账号命令
usermod -l newname oldname。其常用选项-d、-g、-G、-u等参数与useradd命令参数使用方法一样。例如,usermod -d /home/rose -g group0 -G group1 -u 600 rose是指将rose用户的家目录,主组和附加组以及UID值更改。
6) 用户的锁定与解锁
usermod -L rose 锁定rose用户
usermod -U rose 解除rose用户的锁定
7) gpasswd用户添加到其他组的命令
gpasswd -a u1 g1 将u1加入到g1组;gpasswd -d u1 g1 将u1退出g1组;gpasswd -A u1 g1 将g1组的管理员指派给u1。注意:只有root和组管理员能够改变组成员。
8) id查看ID信息命令
id rose 查看rose用户的ID信息。id - print real and effective user and group IDs。其用法是选项后面接用户名id [OPTION]... [USERNAME]。作用是打印用户的id和组的id,Print user and group information for the specified USERNAME, or (when USERNAME omitted) for the current user。常用选项有-u,-g。-u是只打印用户id,-g是只打印组id。
9) root单用户
如果希望计算机除了root账号外其他账号不能登陆,在/etc目录中执行touch nologin,创建1个名称为nologin的文件。如果系统只有一个人使用,可以考虑修改/etc/inittab文件,将默认启动值改为2。
(四)组相关文件介绍
1) /etc/group
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去。
/etc/group的内容包括用户组、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:group_name:passwd:GID:user_list。例如,bin: x : 1 :bin,daemon。bin是组,x是密码段,GID是1,bin用户组下包括bin、daemon以及GID为1的其它用户(可以通过 /etc/passwd查看)。
2) /etc/gshadow
/etc/gshadow是/etc/group的密码文件,用户组(Group)管理密码就是存放在这个文件。/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码。
/etc/gshadow格式如下,每个用户组独占一行:groupname:password:admin,admin,...:member,member,...
第1字段:用户组;第2字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;第3字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;第4字段:组成员,如果有多个成员,用,号分割。
(五)组管理
1) groupadd添加用户组
常用选项及含义为:-g指定GID;-o一般和g选项同时使用,可以与已有组的GID相同。例如,groupadd -go 501 g1 创建组g1其GID可以与已有的组重复。
2) gpasswd设置用户组的密码
一般的情况下,没有必要设置用户组的密码;例如,gpasswd rose 修改rose 组的密码。
3) groupdel删除用户组
groupdel g1 删除g1组(没有用户的空组)。
4) groupmod 修改组属性
其常用属性有:-g指定新的GID;-o与-g配合使用同groupadd的-o;-n修改组名。例如groupmod -g 601 g1修改g1的GID为601。再如,groupmod -n g11 g1将g1组改名为g11。
5) newgrp 切换用户组
newgrp root切换到root组。
Linux下用户和组管理的更多相关文章
- 【Linux下用户和组管理】
创建用户--useradd . 命令格式:useradd [参数] 用户名 useradd也可写成adduser . 参数如下 -u 指定UID号 -d 指定宿主目录 -e 指定生效时间 -g 指定基 ...
- linux系统用户和组管理
用户和组管理 Linux是多用户多任务的网络操作系统,作为网络管理员,掌握用户的组的创建与管理至关重要. 学习要点: 了解用户和组的群的配置文件. 熟悉掌握Linux下用户的创建和维护管理. 熟悉掌握 ...
- linux下用户和组相关的文件及相关管理命令
1.用户信息文件 /etc/passwd 示例root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2: ...
- Linux:Day4(下) 用户及组管理
Linux用户:Username/UID 管理员:root,0 普通用户: 1-65535 系统用户:1-499 对守护进程获取资源进行权限分配: 登陆用户:500+ 交互式登录: Linux组:Gr ...
- 2017.7.18 linux下用户、组和文件的操作
参考来自:<鸟叔的linux私房菜(基础学习篇)-第14章> 0 目的 在linux下搭建ELK环境时,因为elasticsearch不能在root下操作,所以要为其新增一个用户,以及随之 ...
- Linux的用户和组管理
1.用户和组 一个用户必须有一个主组 一个用户可以同时属于多个组 一个组可以拥有多个用户 用户信息存在: /etc/passwd 组信息存在:/etc/group 密码信息存在: /etc/shado ...
- 命令行界面下用户和组管理之groupmod和groupdel的使用
NAME groupmod - modify a group definition on the system SYNOPSIS groupmod [options] GROUP O ...
- linux下用户以及用户组管理
/etc/passwd ‘/etc/passwd’ 由 ‘:’ 分割成7个字段,每个字段的具体含义是: 1)用户名.用户名字符可以是大小写字母.数字.减号(不能出现在首位).点以及下划线,其他字符不合 ...
- Linux基础--用户和组管理
1.账号管理相关文件 1)/etc/passwd 每一行都代表一个账号,有几行就代表有几个账号在你的系统中,不过需要特别留意的是,里头很多账号本来就是系统中必须要的,我们可以简称他为系统账号, ...
随机推荐
- PHP中文网上的分页代码
page.php <html> <head> <meta http-equiv="CONTENT-TYPE" content="text/h ...
- 【转】vim取消高亮显示
vim是vi的加强版. 进入vim或编辑完毕按esc后,输入/可帮助查找字符串,例如/main帮助查找main函数,找到的main高亮显示. 取消高量显示的两个办法: 1)按esc键,输入:nohl ...
- 【ASP.NET Core】MVC中自定义视图的查找位置
.NET Core 的内容处处可见,刷爆全球各大社区,所以,老周相信各位大伙伴已经看得不少了,故而,老周不考虑一个个知识点地去写,那样会成为年度最大的屁话,何况官方文档也很详尽.老周主要扯一下大伙伴们 ...
- 小谈ConcurrentHashMap
面试的时候被面试官问了点相关知识,再次记录一些自己的总结 一. 1.HashTable也可实现线程安全,但是它是用synchronized实现的,所以其他线程访问HashTable的同步方法时,可能会 ...
- ios中pch文件的创建与配置
PCH文件(Precompile Prefix Header File),也就是预编译头文件,其作用就是,方便你一次性导入在多个文件中同时用到的头文件.宏或者URL地址等(全局使用),可以有效的帮你 ...
- Python实现XML文件解析
1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...
- css正三角倒三角
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- SQL Server判断小数位数
项目中需要写一规则,目的是判断数值的小数位数,可以分为2中情况. 1.直接以小数点为分界点,小数点后的数据表示小数的位数,此种情况比较简单,直接使用CHARINDEX函数就可以搞定 其中CHARIND ...
- JAVA并发编程学习笔记------锁顺序死锁
一.需求描述: 将资金从一个账户转移到另一个账户. 二.程序实现: (1)账户类: public class Account { private long account; public Accoun ...
- 00_Python面试题_迭代更新
一.Python是什么类型的语言,以及和其他语言对比 1.Python是一种解释性语言,他和C语言以及C衍生的语言不通,在Python运行之前不需要编译,其他解释语言还有Ruby.PHP. 2.Pyt ...