用户和用户组的对应关系有以下 4 种:
- 一对一:一个用户可以存在一个组中,是组中的唯一成员;
- 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
- 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
- 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。
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目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。
(2) /etc/login.defs文件
用来定义创建用户时需要的一些用户的配置信息,如创建用户时是否需要家目录,UID和GID范围,用户及密码的有效期限等。
(3)/etc/default/useradd文件
是在使用useradd添加用户时的一个需要调用的一个默认的配置文件,可以使用 “useradd -D 参数”,这样的命令格式来修改文件里的内容。
11 创建用户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_uer12 删除用户
接上面的例子:
$userdel nologin_uer $userdel user_test
对于“nologin_uer”这个不需要登录Linux,且无home的用户,“userdel nologin_uer”就可以彻底删除了。
但是对于有home的用户"user_test",“userdel user_test”删除这个用户之后,只是除了名,但它的家"/home/mytest"尚在,下面的还有一些子目录和文件,因此,要进一步删除这些东西,斩草除根才行。
rm -rf /home/mytest13 用新创建的用户登录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
上图是创建有home用户后的重启login界面显示图,但是必须给movie用户设置密码后才能真正的登录。因为没有创建密码的账户,其密码是随机的,你不可能知道。
上面就是新用户,第一次login后的界面,感觉一切又回到了初始状态。



