通过查看不同用户UID来区分用户的类别为超级用户、普通用户或是虚拟用户。
查看UID命令:id [option] [user_name]。
相关参数:
-u,-user 只输出有效UID
-n,-name 对于-ugG输出名字而不是数值
-r,-real 对于-ugG输出真实ID而不是有效ID
UID为0时,标识的是超级用户(即root用户),UID为1000-60000之间,标识的是普通用户,UID为1-999之间,标识的是虚拟用户(即系统用户)。
useradd命令可用来创建用户账号,并保存在/etc/passwd文件中。配置文件 /etc/login.defs 也影响着创建新用户的各项参数。
语法:useradd [options] user_name。
其中的命令选项说明如下:
-u 指定用户UID
-o 配合“-u”属性,允许UID重复
-g 指明用户所属基本组,既可为用户组名,也可为GID(该组必须已存在)
-d 指定用户的home目录,并自动创建用户home目录
-s 指明用户的默认shell程序
-D 显示或更改默认配置
常用用法:
useradd -D 显示创建用户所使用的默认值
useradd -D -g 500 修改创建用户所使用的默认值
useradd user1 创建名为user1 的用户
useradd -m user1 创建时给用户创建家目录
useradd -M user1 创建时不创建用户的家目录
useradd -d / user1 指定新用户的家目录为根目录
useradd -u 501 user1 指定新用户的uid
useradd -g g1 user1 指定新用户的gid,该组必须先存在
useradd -G g1,g2,g3 user1 把用户加到g1, g2, g3 三个附加组里
useradd -o -u 100 user1 -o 允许uid 重复
useradd -s /bin/python user1 使用指定的shell 程序
usermod可用来修改用户账号的各类信息。用户基本信息保存在数据库 /etc/passwd 中,其记录由用冒号分隔的7个字段组成:
name:password:uid:gid:comment:home:shell
命令 usermod 可以修改其中的6个字段。
语法:usermod [options] user_name。
其中的命令选项说明如下:
-u 修改用户UID
-g 修改用户所属用户组
-I 修改用户账号名称
-d 修改用户home目录
-s 修改用户默认shell程序
其他参数说明:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 改用户ID。
-U 解除密码锁定。
userdel用于删除指定的用户以及与该用户相关的文件。(userdel命令用于删除指定的用户以及用户相关的文件,实际上是对系统的用户账号文件进行了修改)
如果想同时删除该用户的主目录以及其中所有内容,要使用-r参数递归删除。不建议直接删除已经进入系统的用户,如果需要强制删除,请使用 userdel -f Test 命令。
若输入删除操作命令时,没有加入参数选项,则仅仅会删除用户账号,而不删除相关文件
语法:userdel [options] user_name。
其中的命令选项说明如下:
-f 强制删除用户账号,即使用户当前处于登录状态
-r 删除用户,同时删除与用户相关的所有文件
-h 显示命令的帮助信息
passwd用来修改用户的密码。
语法:passwd [OPTION…] user_name。
其中的命令选项说明如下:
-n 设置修改密码最短天数
-x 设置修改密码最长天数
-w 设置用户在密码过期前多少天收到警告信息
-i 设置密码过期多少天后禁用账户
-d 删除用户密码
-S 显示用户密码信息
(root用户可以修改任何用户的密码,普通用户只能修改自身的密码)
注意:passwd命令行操作需在root权限下进行
其他参数选项:
-f 强制执行
-k 保留即将过期的用户在期满后仍能使用
-g 修改群组密码
-e 使密码过期
-l 锁定用户密码,被锁定的用户不能登录
-u 接触用户密码的锁定状态
用户组:具有相同特性用户的逻辑集合,通过组的形式使得具有相同特性的多个用户能够拥有相同的权限,便于管理;
用户组ID(Group ID,简称为GID)和用户UID类似,作为唯一标识符来标示系统中的一个用户组:
可以通过输入命令行id [option] [user_name],查看用户组gid以及每个用户组下拥有的用户数量。每个系统预留的GID都有所不同,比如Fedora 预留了500个;在创建目录和文件时,会使用默认的用户组。
linux用户组的分类:
管理员 root :具有使用系统所有权限的用户,其UID 为0.
普通用户 : 即一般用户,其使用系统的权限受限,其UID为500-60000之间.
系统用户 :保障系统运行的用户,一般不提供密码登录系统,其UID为1-499之间.
用户组分类;
普通用户组:可以加入多个用户
系统组:一般加入一些系统用户
私有组(也称基本组):当创建用户时,如果没有为其指明所属组,则就为其定义一个私有的用户组,起名称与用户名同名.注:私有组可以变成普通用户组,当把其他用户加入到该组中,则其就变成了普通组
将用户分组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化了对用户的管理工作。
groupadd可用来创建一个新的用户组,并将新用户组信息添加到系统文件中。
语法: groupadd [options] group_name
其中的命令选项说明如下:
-f 如果组已存在,则成功退出
-g 为新用户组所使用的GID
-h 显示此帮助信息并退出
-o 允许创建有重复 GID 的组
-p 为新用户组使用此加密过的密码
-r 创建一个系统账户
其它选项:
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR directory prefix
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
groupmod可用来更改群组识别码或者名称。
语法:groupmod [options] group_name
其中的命令选项说明如下:
-g 修改为要使用的GID
-h 显示此帮助信息并退出
-n 修改为要使用的组名称
-o 允许使用重复的 GID
-p 更改密码(加密过的)
groupdel命令用于从系统中删除组,需要注意的是,若是在组中仍然包括某些用户,此时需要先删除这些用户后,才能删除组。
功能说明:用于删除指定的用户组,此命令不能删除用户归属的主用户组。
语法:groupdel [options] group_name
其中的命令选项说明如下:
-f 即便是用户的主组也继续删除
-h 显示此帮助信息并退出
gpasswd可以用来添加或删除用户到组中。
语法:gpasswd [option] group_name。
其中的命令选项说明如下:
-a 向组 GROUP 中添加用户 USER
-d 从组 GROUP 中添加或删除用户
-M 设置组 GROUP 的成员列表
-A 设置组的管理员列表
-r 移除组 GROUP 的密码
-R 向其成员限制访问组 GROUP
-Q 要 chroot 进的目录
添加用户到某一个组 可以使用 usermod -G group_name user_name 这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉。所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用 gpasswd 这个命令来添加操作用户
chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 /
,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 /
位置。
Chroot的好处:
增加了系统的安全性,限制了用户的权力;
建立一个与原系统隔离的系统目录结构,方便用户的开发;
切换系统的根目录位置,引导 Linux 系统启动以及急救系统等。
Linux涉及到管理用户信息的文件一般有以下两种:
/etc/passwd:用户账号信息文件。在这个文件中,保存着系统中所有用户的主要信息,每一行代表着一个记录;每一行用户记录中定义了用户各个方面的相关属性。
/etc/passwd 由:分割成7个字段,每个字段的具体含义是:
/etc/shadow:用户账号信息加密文件(又称为“影子文件”)。用于存储系统中用户的密码信息;
/etc/shadow文件只有超级用户(root用户)具有读权限,其他用户均没有权限,从而保证了用户密码的安全性。密码在经由/etc/shadow保护后,在/etc/passwd文件的用户记录中只会以“X”的形式呈现。与/etc/passwd文件相似,每一行记录代表一个用户,且以“:”隔开,不同之处在于/etc/passwd中每行记录被分为九个字段。
加密的密码:这里可以看到3类,分别是字符串、*和!!其中,字符串就是加密过的密码文件。星号代表帐号被锁定,双叹号表示这个密码已经过期了。字符串是以 6 6 6开头的,表明是用SHA-512加密的, 1 1 1 表明是用MD5加密的、 2 2 2 是用Blowfish加密的、 5 5 5是用SHA-256加密的。
在安装系统时,默认会自动开启shadow保护,若是发现未启用shadow保护,可以通过pwconv来启用,当然也可以通过pwunconv来取消shadow保护(这里说到的操作仅允许root用户执行)。
我们常常会因为某些原因忘记自己的账号密码,这个时候该怎么办?难道我们就不能再次使用这个账户了吗?其实是有解决办法的,可以通过root账户来解决这个问题,它可以在不知道密码的情况下,重新为你配置好指定账户的密码(这步是利用了root的身份使用passwd命令)。但是若是root账户的密码忘记了,我们就需要重新启动进入单用户模式,系统会提供对应的bash接口,那么此时呢,我们就可以利用passwd命令来修改账户密码;也可以通过挂载根目录的形式,来修改/etc/shadow,从而将账户的root密码清空,这个方式可以使得root账户不需要密码就可以登录,这里建议登陆后来使用passwd命令配置对应的root密码。
Linux下涉及到管理用户组信息的文件一般有以下两种:
/etc/group:组信息文件。在这个文件中,保存着用户组的所有信息,每一行记录代表一个用户组;将用户分组是对用户进行管理及控制访问权限的一种手段,每个用户都属于一个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。
/etc/group文件每一行由四个字段的数据组成,且字段之间用“:”隔开。这里我们以root用户为例,根据root用户的文件记录来了解/etc/group文件用户组记录中相关字段的意义:
/etc/gshadow:组信息加密文件。在这个文件中,会保存用户组加密信息,比如说用户组管理密码就保存在此(与/etc/shadow文件相似);与/etc/group文件互补,对于大型服务器来说,拥有很多用户和组,此时会针对这些用户和组来生成一些复杂的权限模型,此时设置并管理密码就显得尤为重要。
/etc/gshadow文件每一行由四个字段的数据组成,且字段之间用“:”隔开。这里我们以root用户为例,根据root用户的文件记录来了解/etc/group文件中相关字段的意义:
创作不易,如果这篇【文章】有帮助到你,希望可以给作者点个赞,你的鼓励是我最大的动力!