Linux学习之旅(五)——用户与用户组

本文详细介绍了在CentOS系统中用户与用户组的管理方法,包括UID和GID的概念,如何使用id和finger命令查看用户信息,su命令进行用户切换,以及useradd、usermod、userdel命令对用户进行增删改操作,groupadd、groupmod、groupdel命令对用户组进行管理,最后介绍了sudo命令的使用,用于非root用户执行root权限的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户与用户组

用户

UID 是确认用户权限的标识,用户登录系统所处的角色是通过 UID 来实现的,而非用户名,因此,每个用户的 UID 必须是唯一的。
CentOS 系统会把前 499 个 UID 预留出来,给系统虚拟用户占用,虚拟用户一般是系统安装时就有的,是为了完成系统任务所必须的用户,但虚拟用户是不能登录系统的,比如 ftp、nobody、adm、rpm、bin、shutdown 等。
添加普通用户时的 UID 从 500 开始的,GID 也是从 500 开始,至于其它系统,有的系统可能会把前999 UID和GID预留出来;以各个系统中/etc/login.defs文件中的 UID_MIN 的最小值为准;
CentOS 系统 login.defs 的 UID_MIN 是500,而 UID_MAX 值为 60000,也就是说我们通过useradd 添加的普通用户的UID 的值一般都是在 500 到 60000 之间 。

查看用户

查看用户可以使用两个命令 idfinger,这两个命令各有测重,id 工具更测重用户、用户所归属的用户组、UID 和 GID 的查看;而 finger 测重用户信息的查询,比如用户名(登录名)、家目录、登录 SHELL 类型等等。

  • id [用户名]
    查看某个指定用户的 UID,其初始用户组的 GID,以及它所从属的其他用户组,如果不指定用户名,则是查看调用者的相关信息。
  • finger 用户名
    查询用户相关信息的,比如用户名(登录名)、家目录、登录 SHELL 类型等等,信息较为全面

切换用户

su [选项] [用户名]
在不退出当前登录的情况下,临时切换用户身份。
注意:

  • -l 在切换用户的同时切换到相应用户的登录环境,包括家目录,SHELL 定义等。(建议使用)
  • -l 选项可以简写为 -,也即“ su -l root” 等价于“su - root”
  • 如果 su 不带[用户名]参数,默认为切换到 root 用户,也即 “su - ” 等价于“su - root”
  • 如果 root 向普通用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证

添加、修改和删除用户

1.为系统添加一个新用户。 useradd [选项] 用户名
选项:

  • -c :后面接一个字符串,是对本用户的一些描述,也可以视为用户全名。
  • -u :后面接一个数字。指定一个特定的 UID 给这个用户,该值必须唯一,不可相同,数值不可为负;
  • -g :后面接的用户组名就是我们上面提到的初始用户组;
  • -G :后面接的用户组名则是这个用户还要加入的其余用户组;
  • -M :不建立用户家目录(虚拟用户默认值) ;
  • -m :建立用户家目录 (普通用户默认值) ;
  • -d :指定某个目录成为家目录,而不使用默认值;
  • -r :建立一个系统虚拟用户;
  • -e :后面接一个日期,格式为『YYYY-MM-DD』,指定这个用户失效的日期;
  • -f :指定密码是否会失效。0 为立刻失效, -1 为永远不会失效(密码只会过期而强制在登入时重新指定而已)

2.修改某个用户信息。usermod [选项] 用户名
选项:

  • 其中-c /-d /-e /-f /-g /-G /-s /-u 选项:与 useradd 同名选项意义类同 ;
  • -l :后面跟用户名,修改用户名称;
  • -L :暂时将用户锁住,让他无法登录;
  • -U :解锁用户。

注意: usermod 不允许改变正在线上的用户名和用户 UID。当 usermod 用来改变用户名和 UID, 必须确认这名用户没在系统上执行任何程序。

3.删除当前系统里某个用户。userdel [选项] 用户名
选项:

  • -r:表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除。

注意:

  • 请不要轻易用-r 参数;他会删除用户的同时删除用户所有的文件和目录,切记先删除用户,在确认后再手动删除用户目录;
  • 不允许删除正在线上的用户。

用户组

添加用户组

groupadd [选项] 用户组名
选项:

  • -g :后面接一个数字 ,用来给用户组指定一个 GID,该值必须唯一,不可相同,数值不可为负;
  • -n :修改组的名称。
  • -p :修改组的密码。

修改用户组

groupmod [选项] 用户组名
选项:

  • -g :后面接一个数字 ,修改组的 GID;
  • -r :建立一个系统虚拟用户组。

删除用户组

groupdel 用户名
注意

  • 在删除用户组的时候请万分小心,因为这有可能涉及到其它和这个用户组相关的用户;
  • 你无法删除一个用户组,除非没有任何一个用户将这个用户作为主用户组(primary group),也即前面所提到的初始用户组(initialgroup)。

sudo命令

在很多情况下,在多人共管主机,某些用户请求执行某些需要 root 权限的命令或者干脆就是你忙不过来的时候,你就得让其他人获得 root 权限了。但将系统的 root 密码告诉很多人显然不是一个好的选择,这往往成为悲剧事件的开端。那么我们该如何做呢,sudo 命令给我们提供了一个不需要 root 密码也能执行 root 权限命令的途径。
这样一来,就不仅减少了 root 用户的登陆次数和管理时间,也提高了系统安全性。sudo 命令有以下特点:

  • sudo 命令能够限制指定用户在指定主机上运行某些命令。
  • sudo 命令可以提供日志,忠实地记录每个用户使用 sudo 命令做了些什么,并且能将日志传到中心主机或者日志服务器。
  • sudo 命令为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。
  • sudo 命令使用时间戳文件来完成类似“检票”的系统。当用户执行 sudo 命令并且输入密码后,用户获得了一张默认存活期为 5 分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值