Linux用户与用户组详解 |
您所在的位置:网站首页 › 南方日报频繁改版的原因 › Linux用户与用户组详解 |
文章目录
1.用户标志符UID与GID1.1详解用户配置文件/etc/passwd1.2 详解账号密码文件/etc/shadow1.3详解用户组配置文件/etc/group1.4 有效用户组与初始用户组有效用户组的切换
1.5 详解用户组密码文件/etc/gshadow
2.用户的增删改2.1 useradd新增用户2.2 useradd的参考文件(基本账号设置值)2.3 其他相关账号设置值2.4 passwd为新增用户设置密码2.5 用户数据修改usermod2.6 删除用户userdel
3.普通用户常用的账号数据更改与查询命令3.1finger3.2 chfn3.3 chsh3.4 id
4.用户组的增删改4.1用户组的增加groupadd4.2用户组相关信息的修改groupmod4.3删除用户组groupdel4.4用户组管理员功能
本篇主要深入介绍用户与用户组,具体包括用户与用户组标志符,用户管理(账号管理)。
1.用户标志符UID与GID
我们登录Linux系统时通常运用用户名,但是Linux系统只识别一组号码,因此该号码与用户名之间存在对应关系,记录在/etc/passwd文件中,称呼这组号码为UID即用户在系统中的唯一验证符号,同样的用户组也有用户组名与用户组ID的对应关系也存放在/etc/group文件中,称为GID。 登录系统时系统会去查找这两个文件,只有找到相应的ID之后才会进入到记录密码的文件/etc/shadow中去核对密码是否正确,进而确认是否可以进入系统。 1.1详解用户配置文件/etc/passwd /etc/passwd文件的具体内容如下图所示: /etc/shadow用于存放密码相关的信息,包括用户密码,文件具体结构如下图所示: 该文件结构相对简单,包含四个字段: 我们知道一个用户可以属于多个用户组,在读取写入执行文件时,只要是用户组支持的,用户都可以拥有,在我们初次登录系统时,初始的用户组是在/etc/passwd文件中指定的。但是当我们新建一个文件时,文件的用户组属性是哪一个呢?这得看当下的有效用户组。 groups:用户支持的所有用户组查询第一个输出的即为有效用户组,那么用户新建的文件的用户组属性值就是该用户组。 有效用户组的切换/对于用户所支持的用户组,可以在其间切换有效用户组: newgrp 想要切换到的用户组名注意切换的用户组是以另外一个shell来提供这个功能,新的shell给予用户切换后的有效用户组;如果想回到原来的shell,可以使用exit指令。 1.5 详解用户组密码文件/etc/gshadow在/etc/group文件中我们有讲到用户组密码一般不设置,仅提供给用户组管理员使用,查看该文件的内容我们发现该文件的结构基本与/etc/group文件相同: 其他相关参数: -e:后接日期,格式为YYYY-MM-DD,此选项写入shadow文档的第八项,表示账号的失效日期;-f:后接shadow的第七字段,指定密码是否会失效,0为立刻失效,-1表示永远不失效(密码只会过期而强制于登录时重新设置而已)-r:创建一个系统账号;该账号对UID有限制0-500;-m:强制创建用户主文件夹;-M:强制不创建用户主文件夹; 通常我们不会使用这么复杂的方式添加新账户,而是使用以下简短的方式: useradd 账号:创建新用户系统会帮助我们修改相应的文件,添加一些信息: 在/etc/passwd文件中创建一行数据,我们知道该文件是记录账号的UID,GID,账号密码,主问价夹等信息的;在/etc/shadow里面将账号密码的相关参数填入,但是尚未有密码;在/etc/group里面加入一个与账号名称一模一样的组名;在/home目录下添加一个与账号同名的子目录作为用户主文件夹,且权限为700; 使用useradd -r 指令添加系统用户时不会创建用户的主文件夹,且用户与用户组的UID和GID都小于500; 2.2 useradd的参考文件(基本账号设置值) 如图所示,这是小主新建自己的用户后的主文件夹: shadow文件的参考数据从哪里来呢?/etc/login.defs文件提供了相关的参考内容,关于密码更改天数PASS_MAX_DAYS;关于多久不可以重新修改密码天数PASS_MIN_DAYS ; 关于密码的最短字符长度PASS_MIN_LEN;关于过期前会警告的天数PASS_WARN_AGE ;还有关于用户与用户组ID设定的参考数据在此不做详细说明; 使用useradd命令新建用户后,该账号是被锁定的,只有设置完密码之后才能才能使用新账号,给新账号设置密码使用命令: passwd 账号名;设置用户密码;passwd指令后不接账号名时表示设置当前用户的密码,注意root用户可以设置所有用户的密码,一般用户得看用户是否具有权限。一般账号在更改密码时需要先输入自己的旧密码,然后再输入新密码。但是使用root用户重置其他用户的密码时不需要输入旧密码就可以重置。 passwd命令还有一些参数: -l:时lock的意思,会将/etc/shadow第二列最前面加上!使密码失效;-u:与-l相对,是Unlock的意思;-S:列出密码相关信息;-n:后面接天数,shadow的第四个字段,多久不可修改密码天数;-x:后面接天数,shadow的第五哥字段,多久内必须要改动密码;-w:后面接天数,shadow的第六个字段,密码过期前的警告天数;-i:后面接日期,shadow的第七哥字段,密码失效日期;–stdin:可以通过来自前一个管道的数据,作为密码输入,echo “abcd123” | passwd --stdin 用户名,直接将abcd123作为用户的密码; 2.5 用户数据修改usermod新增用户,设置了相关的参数,可能后期会想要进行修改,除了去修改对应的文档,还可以使用usermod指令去修改一些参数: usermod [-cdegGlsuLU] username -c:后接账号说明,/etc/passwd的第五列,可以加入一些账号的说明;-d:后面接账号的主文件夹,/etc/passwd文件的第六列;-e:后面接日期,/etc/shadow的第八个字段数据;-f:后面接天数,为shadow的第七个字段;-g:后面接初始用户组;-G:后面接次要用户组;-a:与-G组合使用增加次要用户组的支持而非设置;-l:后面接账号名称,即是修改账号名称,/etc/passwd的第一列-s:后面接shell的实际文件;-u:后面接UID数字,即/etc/passwd第三列的数据;-L:暂时将用户的密码冻结,让其无法登录;-U:将/etc/shadow密码列的!去掉,也就是将账号密码冻结解除; 2.6 删除用户userdel这个指令就比较简单,顾名思义就是删除用户的相关数据:用户账号/密码相关参数:/etc/passwd,/etc/shadow;用户组相关参数:/etc/group,/etc/gshadow;用户个人文件数据:/home/username,/var/spool/mail/username… userdel [-r] username :连同用户的主文件夹也一起删除;注意,这样删除用户相关文件可能不全面,可以使用find / -user username 查找出整个系统内属于用户的文件,再进行删除。 3.普通用户常用的账号数据更改与查询命令useradd,usermod,userdel都是系统管理员能够使用的命令,那么一般用户有什么办法查看与更改用户相关数据?可以使用以下这些指令: 3.1finger手指,指纹,该指令可以查看很多用户相关信息,大部分是/etc/passwd文件中的账户信息; finger -s username :仅列出用户的账号,全名,终端机代号与登录时间; finger -m username:列出与后面的账号相同者,而不是利用部分对比; 在小组的云主机中查找该命令并没有找到,无法执行该指令,需要下载安装: 相当于是change finger;finger是查看用户的一些信息,那么该指令就是修改用户的一些信息,相当于是修改个人属性(想要呈现的全名,办公号码等相关信息),一般都使用不到: change shell,更改指定的shell: -l:列出目前系统上面可用的shell,实际就是/etc/shells的内容; -s:设置修改自己的shell;在讲到bash的时候我们将具体来讲讲shell。 3.4 id 该命令可以查看某人或者自己相关的UID和GID等信息;可以用来判定是否存在某个账号: 用户组的信息与/etc/group,/etc/gshadow两个文件有关,用户组的增删该其实就是针对这两个文件的增删改。 4.1用户组的增加groupadd groupadd [-g gid] [-r ]用户名 -g:后面接某个特定的GID,用来直接给用户组配置GID;-r:新建系统用户组,与/etc/login.defs内的GID_MIN有关 4.2用户组相关信息的修改groupmod groupmod [-g gid] [-n group_name] 用户组名 参数: -g:修改既有的GID数字 -n:修改既有的组名; 4.3删除用户组groupdel groupdel groupname只有某个用户组不是用户的初始用户组时才能被删除,也就是说要删除某个用户组,必须确认/etc/passwd内的账号没有任何人使用用户组作为初始用户组。 4.4用户组管理员功能通过用户组管理员可以实现往某个用户组中添加删除用户,而不用麻烦忙碌的root用户。 系统管理云=员使用该指令的操作: gpasswd groupname:给用户组一个密码; gpasswd [-A user1] groupname:将用户组的管理权限交给user1; glasswd -M user2,user3... groupname:将用户user2,user3添加到用户组中; gpasswd [-rR]将用户组的密码删除或者让其密码栏失效; 用户组管理员使用该指令的操作: gpasswd -a username groupname:添加用户到某个用户组; gpasswd -d: username groupname:删除用户组的某个用户; |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |