Linux之用户管理

总概

  • Linux系统账户包括用户账号和组账号两类。
  • 用户账号又分为普通用户账号和超级用户账号(root)。
  • 组账号又分为私有组、系统组和标准组。建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组只容纳了一个用户。标准组可以容纳多个用户,组中的用户都具有组所拥有的权利。系统组是Linux系统自动建立的。

创建/删除用户

创建用户

命令格式:useradd [命令参数] 参数

常见命令参数:
-d<登入目录>:指定用户登入时的启始目录;
-D:查看或变更预设值;
-g<群组>:指定用户所属的群组;
-p:用户密码;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-s:指定用户登入后所使用的shell。

useradd必须以root权限才能执行,如果是普通用户想创建一个新用户时,需要在命令前加sudo命令来提升权限为root权限。

*Linux中用户信息是保存在/etc/passwd文件中,我们可以使用命令tail /etc/passwd命令查看/etc/passwd文件最后10行中是否存在刚刚新创建的test用户信息。

删除用户

命令格式:userdel [命令参数] 参数

常见命令参数:
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。

userdel必须以root权限才能执行,如果是普通用户想使用该命令时,需要在命令前加sudo命令来提升权限为root权限。

用户密码管理

用户密码存放地及方式

Linux中用户的登录密码是存放在/etc/shadow文件中,/etc/shadow文件中存放的是加密过后的密码,所以在/etc/shadow文件中看到的密码是加密过后的密文。

内容格式如下:
在这里插入图片描述
第一个冒号前是用户名,用户名是以明文的方式存放。

第一个冒号和第二个冒号之间存放的是加密过后的密码,密码是以密文的方式存放,其中密文是由用户密码和其它信息加密后组成的,如果第一个冒号和第二个冒号之间是*或者!或者空,则表示该用户没有密码,否则,则表示该用户是有密码。

例如:用户名fzm是存在密码,而mysql是不存在密码的。

使用passwd命令修改用户密码

命令格式:passwd [命令参数] 参数

常见命令参数:
-d 删除密码;
-l 停止账号使用;
-S 显示密码信息。

passwd必须以root权限才能执行,如果是普通用户想执行passwd时,需要在命令前加sudo命令来提升权限为root权限。

使用chpasswd命令修改用户密码

chpasswd命令通常是用于批量修改用户密码,从标准输入批量读取成对的用户名和密码,其中输入的用户名和密码的格式为 用户名:密码。

例如要批量更新用户密码,将用户名和密码写入到一个文件中,格式如下所示:
在这里插入图片描述
然后执行如下命令来更新密码:

sudo chpasswd < batch.txt
("<"符号表示输入重定向)

命令格式:chpasswd [命令参数] 参数

常见命令参数
-e:输入的密码是加密后的密文;
-h:显示帮助信息并退出。

chpasswd必须以root权限才能执行,如果是普通用户执行时,需要在命令前加sudo命令来提升权限为root权限。

Linux用户权限切换

Linux用户登陆的三种方式

图形化界面登录

Linux中添加用户后,用户在图形界面登录系统的方式和Windows一样,都是选择要登录的用户后直接输入登录密码即可。

使用login命令登录

login命令是让用户登录系统,可通过它的功能随时更换登入身份。当/etc目录里含名称为nologin的文件时,系统只允许root帐号登入系统,其他用户一律不准登入。

当使用login命令登录系统后,可以使用logout命令或者exit命令来退出当前用户登录,返回到登录前的用户状态。

命令格式:login [命令参数] 参数

参数为登录的用户名,可以不输入登录的用户名,直接输入login命令后回车,然后根据提示再输入用户名和密码。

常见命令参数
-p:告诉login指令不销毁环境变量;
-h:指定远程服务器的主机名。

login必须以root权限才能执行,如果是普通用户执行时,需要在命令前加sudo命令来提升权限为root权限。

使用su命令切换用户身份

su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号的密码。

当使用su命令切换用户后,使用exit命令退出当前身份,返回原有登录用户身份。

:如果当前用户身份是root,则使用su命令切换到其他用户的时候不需要相应用户的密码

命令格式:su [命令参数] 参数
参数为登录的用户名,如果没有参数,则默认切换为root用户。

常见命令参数
-c<指令>或–command=<指令>:执行完指定的指令后,即恢复原来的身份;
-l或–login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或–preserve-environment:变更身份时,不要变更环境变量;
-s或–shell=:指定要执行的shell。

su命令所有使用者都可以执行。

创建/删除用户组

创建用户组

命令格式:groupadd [命令参数] 参数

常见命令参数:
-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;

删除用户组

命令格式:groupdel 参数
参数为要删除的已经存在的用户组名

groupadd必须以root权限才能执行,如果是普通用户想使用该命令,需要在命令前加sudo命令来提升权限为root权限。

用户所属组变更

查看用户所属组

使用id命令查看
命令格式:id [命令参数] 参数
参数为要查询的用户名,默认是当前登录用户。

常见命令参数:
-g或--group:显示用户所属群组的ID;
-G或--groups:显示用户所属附加群组的ID;
-n或--name:显示用户,所属群组或附加群组的名称。

id命令的执行权限是面向所有用户

使用group命令查看
命令格式:groups 参数
参数为要查询的用户名,默认是当前登录用户。

执行权限:groups命令的执行权限是面向所有用户
修改用户所属组

使用usermod命令修改用户组
如果要一个用户仅仅属于某一个组,而不是同时属于多个组,则使用如下命令:
命令格式:usermod -g 组名 用户名

如果要给一个用户添加一个新的组,同时保留原来有所的组,则使用如下命令:
命令格式:usermod -a -G 组名 用户名

usermod必须以root权限才能执行,如果是普通用户想执行usermod时,需要在命令前加sudo命令来提升权限为root权限。

使用useradd命令创建用户的时候指定用户组
在创建新用户的同时可以修改默认用户所属组,如果想在创建的时候直接将用户所属组修改成系统中已经存在的一个组,而不是使用默认私有组,则使用如下命令:
命令格式:useradd -g 组名 用户名

在创建新用户的同时可以为用户添加其它组,如果想在创建新用户的时候为用户添加一个已经存在的组,而不仅只属于默认创建的私有组,则使用如下命令:
命令格式:useradd -G 组名 用户名

useradd必须以root权限才能执行,如果是普通用户执行时,需要在命令前加sudo命令来提升权限为root权限。

用户/用户组编辑

查看用户属性

Linux中使用id命令可以查看用户的大多数信息。

Linux中还可以通过查看/etc/passwd文件来获取用户的信息。

Linux中还可以使用finger命令来查询用户的信息。

注意:Ubuntu系统中默认没有安装finger命令,用户可以通过以下命令来安装finger,然后就可以使用finger。

sudo apt-get install finger

具体使用方法如下:

命令格式:finger [命令参数] 参数

常见命令参数:
-l:多行显示;
-s:单行显示。这个选项只显示登入名称、真实姓名、终端机名称、闲置时间、登入时间、办公室号码及电话号码。如果所查询的使用者是远端服务器的使用者,这个选项无效。

用户信息修改

命令格式:usermod [命令参数] 参数

常见命令参数:
-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s:修改用户登入后所使用的shell;
-u:修改用户ID;
-U:解除密码锁定。

usermod必须以root权限才能执行,如果是普通用户想使用该命令时,需要在命令前加sudo命令来提升权限为root权限。

用户组信息修改

命令格式:groupmod [命令参数] 参数

常见命令参数:
-g<群组识别码>:设置欲使用的群组识别码;
-n<新群组名称>:设置欲使用的群组名称。
groupmod必须以root权限才能执行,如果是普通用户想使用该命令时,需要在命令前加sudo命令来提升权限为root权限。

*整理自EduCoder网站Linux从入门到精通

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值