Linux当中的用户和组

本文围绕Linux系统展开,介绍了用户分类,包括超级用户、本地用户和系统用户。阐述了用户信息保存文件 /etc/passwd 和密码保存文件 /etc/shadow 的内容。还详细说明了添加、修改、删除用户及用户组的命令,如 useradd、usermod、userdel、groupadd 等。

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

用户的分类:

超级用户:root 至高无上

本地用户:由管理员创建,权限受到一定能限制,在自己的宿主目录是完整的权限

系统用户:(伪用户)一般是不会登陆系统的,用户维持某个服务程序正常运行。Linux当中的每个命令都要有个用户对应。因此与这些命令对应的用户就叫做伪用户。例如:nobody用户,它的用户id和组id都是99. 可以通过cat /etc/passwd | grep nobody查看。由于这个用户不需要登录,因此它的shell就是sbin下的nologin。

用户信息保存的文件:/etc/passwd  每一行代表一个账号,例如:root:x:0:0:root:/root:/bin/bash,一共有七部分组成,每一部分使用冒号分开:

  1. 账号名称,用来对应UID的,root的账号名对应的UID为0(第三栏位)

  2. 密码:早期Unix系统的密码就是放在这栏位上!但是因为这个档案的特性是所有的程序都能够读取,这样一来很容易造成密码资料被窃取,因此后来就将这个栏位的密码放在/etc/shadow中了。所以这里你会看到一个'x'

  3. UID:使用者识别码。id为0表示为系统管理员,所以当你要让其他的帐号名称也具有 root 的权限时,将该帐号的 UID 改为 0 即可。 这也就是说,一部系统上面的系统管理员不见得只有 root 喔! 不过,很不建议有多个帐号的 UID 是 0。1到499是系统账号(CentOS7从1到999),由于系统上面启动的服务希望使用较小的权限去运作,因此不希望使用root的身份去执行这些服务,所以我们就得要提供这些运作程序当中的拥有者账号才行。500~65535是给普通用户的(CentOs6,CentOS7是从1000开始)。其实目前的Linux核心可以支持4294967295 (2^32-1)的用户账号的UID。

  4. GID:这个与 /etc/group 有关!其实 /etc/group 的观念与 /etc/passwd 差不多,只是他是用来规范群组名称与 GID 的对应而已!

  5. 使用者咨询账号说明栏,用来解释这个账号的意义,仅仅是起到一个描述的作用。

  6. 家目录:这是使用者的家目录,以上面为例, root 的家目录在 /root ,所以当 root 登入之后,就会立刻跑到 /root 目录里头啦!呵呵! 如果你有个帐号的使用空间特别的大,你想要将该帐号的家目录移动到其他的硬碟去该怎么作? 没有错!可以在这个栏位进行修改呦!预设的使用者家目录在 /home/yourIDname

  7. 命令解析器,也就是用户使用的shell,默认是bash。

保存密码的文件:/etc/shadow

我们知道很多程序的运行都与权限有关,而权限与 UID/GID 有关!因此各程序当然需要读取 /etc/passwd 来了解不同帐号的权限。 因此 /etc/passwd 的权限需设定为 -rw-r--r-- 这样的情况, 虽然早期的密码也有加密过,但却放置到 /etc/passwd 的第二个栏位上!这样一来很容易被有心人士所窃取的, 加密过的密码也能够透过暴力破解法去 try and error (试误) 找出来!

因为这样的关系,所以后来发展出将密码移动到 /etc/shadow 这个档案分隔开来的技术, 而且还加入很多的密码限制参数在 /etc/shadow 里头。这个文件当中的每一行公有9个栏位,例如root用户的内容为root:$1$DmqaML6.$hBgICkm7hE53sn8t4/rhM0:17718:0:99999:7:::说明如下:

  1. 账号名称

  2. 密码,经过加密的密码。

  3. 最近更改密码的日期

  4. 密码不可被更动的天数(与第三栏位相比)

  5. 密码需要重新变更的天数(与第三栏位相比)

  6. 密码需要变更期限前的警告天数(与第五栏位相比)

  7. 密码过期后的账号宽限时间(密码失效日,与第五栏位相比)

  8. 账号失效日期

  9. 保留:这个栏位是保留的,看以后有没有新功能加入

 

 

 

 

添加用户:useradd

  • -d 目录,创建用户时的主目录

  • -m选项,不创建用户宿主目录

  • -u后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个帐号

  • -g 后面接的那个群组名称就是 initial group,该群组的 GID 会被放置到 /etc/passwd 的第四个栏位内

  • -G 后面接的群组名称则是这个帐号还可以加入的群组。这个选项与参数会修改 /etc/group 内的相关资料,可以指定多个组,用逗号分开

  • -c 用户描述这个就是 /etc/passwd 的第五栏的说明内容,是可以随便我们设定的

  • -e 失效时间。后面接一个日期,格式为‘YYYY-MM-DD’此项目可写入 shadow 第八栏位,亦即帐号失效日的设定项目

举例:

  • useradd zhangsan 这样就可以直接创建一个叫做zhangsan的账户  创建完毕后可以通过 ll /home查看zhangsan是否已经创建成功,也可以通过cat /etc/passwd查看该账户是否创建成功。可以使用passwd lisi为新用户设置密码

  • useradd -u 1888 -g users -G sys,root -c "hr zhang" zhangsan 表示创建的用户id为888,它目前所在的组为uses组,通过查看/etc/group可以看到该组的id为100。这个账号还可以加入的群组为sys和root;hr zhang表示该用户的描述,最后的zhangsan就是用户的名字

  • useradd -d /opt/sam -s /bin/sh sam 将用户的家目录设置为opt/sam 它使用的shell为/bin/sh 用户名为sam

  • 使用tail命令可以从后向前看某个文件的内容,例如 tail -1 /etc/passwd表示从后面查看一条/etc/passwd文件当中的内容

修改用户命令:usermod

  • -l 修改用户名 (login)usermod -l lisi zhangsan(zhangsan改为lisi)  注意此时home目录下的内容不会改变,如果进入home目录看的话lisi的home目录仍然为zhangsan。可以进入/etc/passwd下查看被修改的用户信息

  • -g 添加组 usermod -g sys tom

  • -G添加多个组 usermod -G sys,root tom

  • –L 锁定用户账号密码(Lock)

  • –U 解锁用户账号(Unlock)

删除用户命令:userdel(user delete)

  • -r 删除账号时同时删除目录(remove) 例如:userdel -r lisi 将会删除lisi这个账户并且同时删除他的家目录。

操作用户组命令

  • 添加组:groupadd   例如:groupadd group1

    • -g 指定gid

  • 修改组:groupmod   例如:

    groupmod -g 201 -n mygroup group1  注意一般不要去改id,容易造成系统资源的错乱。

    • -n 更改组名(new group)

  • 删除组:groupdel   例如:groupdel mygourp

  • groups 显示用户所属组

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值