Linux系统命令-用户与用户组(二)

本文详细介绍了Linux系统中用户与用户组的关系,包括一对一、一对多、多对一和多对多四种对应关系。重点讲解了管理用户的工具和命令,如useradd创建用户,userdel删除用户,以及与用户和用户组相关的环境配置,如/etc/skel目录、/etc/login.defs文件和/etc/default/useradd文件的作用。此外,还提到了创建用户时如何指定家目录、shell以及用户组,以及新用户如何登录Ubuntu系统。

Linux系统每日命令007-用户与用户组(二)

7 Linux用户和组的关系

用户和用户组的对应关系有以下 4 种:

  • 一对一:一个用户可以存在一个组中,是组中的唯一成员;
  • 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
  • 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
  • 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。

8 管理用户(user)的工具或命令

useradd 添加用户 
adduser 添加用户
usrdel  删除用记
passwd 为用户设置密码
usermod 修改用户命令,可以通过usermod 来修改登录名、用
             户的家目录等等;
pwcov 同步用户从/etc/passwd 到/etc/shadow 
pwck pwck是校验用户配置文件/etc/passwd 和/etc/shadow 
             文件内容是否合法或完整;
pwunconv 是pwcov 的立逆向操作,是从/etc/shadow和 
             /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger 查看用户信息工具
id  查看用户的UID、GID及所归属的用户组
chfn 更改用户信息工具
su 用户切换工具
sudo  是通过另一个用户来执行命令(execute a command as 
          another user),su 是用来切换用户,然后通过切换到的
          用户来完成相应的任务,但sudo 能后面直接执行命令,比
          如sudo 不需要root 密码就可以执行root 赋与的执行只有
          root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直
          接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit 和sudo 功能差不多;

9 管理用户组(group)的工具或命令

groupadd 添加用户组;
groupdel 删除用户组;
groupmod 修改用户组信息
groups  显示用户所属的用户组
grpck
grpconv   注:通过/etc/group和/etc/gshadow 的文件内容来
     同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv   注:通过/etc/group 和/etc/gshadow 文件内容来
       同步或创建/etc/group ,然后删除gshadow文件;
 gpasswd 用于管理 /etc/group 和 /etc/gshadow 。每个组都可
       以有管理员、成员和密码。

10 三个与用户和用户组相关的环境配置

(1)/etc/skel目录

/etc/skel目录是个模板,它用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。默认情况下,/etc/skel目录下的所有文件都是隐藏文件(以.点开头的文件);通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。

Linux系统每日命令007-用户与用户组(二)

(2) /etc/login.defs文件

用来定义创建用户时需要的一些用户的配置信息,如创建用户时是否需要家目录,UID和GID范围,用户及密码的有效期限等。

Linux系统每日命令007-用户与用户组(二)

(3)/etc/default/useradd文件

是在使用useradd添加用户时的一个需要调用的一个默认的配置文件,可以使用 “useradd -D 参数”,这样的命令格式来修改文件里的内容。

Linux系统每日命令007-用户与用户组(二)

11 创建用户

Linux系统每日命令007-用户与用户组(二)

Useradd 命令创建Linux用户。

创建无home用户

$ sudo useradd music
$  cat /etc/passwd | grep music
 music:1002:1002::/home/music:/bin/sh
$ ls /home/
 lost+found  movie  songguoya

上面"sudo useradd music"这条命令,创建了一个名为music的用户,同时创建了一个名为music的私有组。但是,并没有为music用户创建home目录,虽然passwd中记录了"/home/music"。

创建有home用户

sudo useradd movie -m -s /bin/bash -g songguoya
  • “-m”创建一个带有家目录,这样/home/movie生成,并且从/etc/skel拷贝过同个配置文件,并且创建"文档、图片、下载"等目录。(英文版是document、picture、download等等)
  • “-s”可以登录 bash 的用户。如果没有用这个参数,默认是“/bin/sh”。这是一个链接文件,指向dash或bash,具体是哪个,由系统的环境配置决定。所以我认为,不用这个“-s”参数指定反而比较好,除非你一定想用哪个shell环境(bash或dash)。
  • "-g songguoya" 把这个用户创建到songguoya用户组。

创建时指定home目录

$ sudo useradd -m -d /home/mytest user_test

上面这个创建了user_test用户,且指定/home/mytest为其home目录。

创建没有home目录且不能登录的用户,

$ sudo useradd -s /sbin/nologin nologin_uer

12 删除用户

接上面的例子:

$userdel nologin_uer
$userdel user_test

对于“nologin_uer”这个不需要登录Linux,且无home的用户,“userdel nologin_uer”就可以彻底删除了。

但是对于有home的用户"user_test",“userdel user_test”删除这个用户之后,只是除了名,但它的家"/home/mytest"尚在,下面的还有一些子目录和文件,因此,要进一步删除这些东西,斩草除根才行。

rm -rf /home/mytest

13 用新创建的用户登录ubuntu

创建有home的用户,且登录shell是bash或dash,这种用户就可以在重启系统时登录。

但是,“sudo useradd movie -m -s /bin/bash -g songguoya”后能真正的用movie用户登录吗?肯定是不可能,因为还少了一步,必须设置密码才可以。

$ sudo useradd movie -m -s /bin/bash -g songguoya
$ sudo passwd movie
    输入当前登录用户的密码:(我的当前是 songguoya)
    输入新密码:123456(指 movie的密码)
    校验新密码:123456

Linux系统每日命令007-用户与用户组(二)

上图是创建有home用户后的重启login界面显示图,但是必须给movie用户设置密码后才能真正的登录。因为没有创建密码的账户,其密码是随机的,你不可能知道。

Linux系统每日命令007-用户与用户组(二)

上面就是新用户,第一次login后的界面,感觉一切又回到了初始状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虎哥的世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值