Linux用户与用户组管理
上一节已经提到了一些Linux用户的知识
大部分 Linux 系统在安装时都会建议用户新建一个用户而不是直接使用 root 用户进行登录,当然也有直接使用 root 登录的例如 Kali(基于 Debian 的 Linux 发行版,集成大量工具软件,主要用于数字取证的操作系统)。一般我们登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,要用到 sudo
命令。
切换用户
1 | su <user\> |
使用户切换到user,需要输入目标用户的密码
sudo 切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的 默认情况下,添加用户操作也会相应的增加一个同名的组,用户属于同名组 这个命令不但可以添加用户到系统,同时也会默认为新用户在 /home 目录下创建一个工作目录 在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源 查看用户所属用户组 新建的用户 所属用户组即自身 一个用户可以属于多个组,将用户加入到组: 这样stu就拥有sudo权限了 变更用户所属的根组(将用户加入到新的组,并从原有的组中除去): 系统的所有用户及所有组信息分别记录在两个文件中:/etc/passwd , /etc/group 默认情况下这两个文件对所有用户可读: 查看所有用户及权限: 查看所有的用户组及权限: 当然 less is better than more /etc/group 的内容包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。格式如下: group_name:password:GID:user_list 如果用户的 GID 等于用户组的 GID,那么最后一个字段 x表示密码 不可见 利用查看文件命令可以知道有没有该用户 grep可以用于搜索 命令 删除用户组可以使用 注意 adduser 与useradd都有,但是有差别 若使用useradd 则需要使用$passwd username修改密码 我在网上搜到的办法基本都是用脚本执行,貌似没有这方面直接的命令 如果用脚本批量处理的话,这个问题也就不算问题了 前提是要会写shell脚本 关于vim以及shell脚本学习内容还是不少的 我后面会写一点 我在ubuntu上试了一下,发现会报错 stdin识别不了 这种方法只能在其他发行版用 所以换了一个方法 注意 useradd并不会添加主目录,需要加上参数 该命令为用户创建相应的帐号和用户目录/home/username; 我加上-m参数后 但是!!! 我发现没有办法登录,输入原本的密码不行 于是查看了 shadow文件(存储用户密码的) 密码是 !表示被锁了,然后我发现如果用 |就会报错 说是认证令牌错误,然后我将chpasswd提升到sudo,即 修改成功了..所以说是权限不够… 并且我不清楚 | 与 >的差别.. 后面我再写一些重定向与管道.. 批量删除用户 且删除用户目录 -r 也可以利用newusers与chpasswd批量新建用户 一个user.txt内容如下: 字段含义: Account:用户的名称,如例子中的root; Password:用户密码,我们看到这里只显示x,不是指密码就为x,而是表示该密码已经被移动到shadow中去了。 UID:用户ID。 GID:组ID。指明用户所属组。 GECOS:一般说明用户信息的 Directory:即常说的家目录 Shell:用来指明用户登录时预设使用的bash (2)newusers < user.txt 然后可以执行cat /etc/passwd检查/etc/passwd文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。此时就会在/etc/shadow中对新增的用户产生密码 (3)编辑每个用户的密码对照文件, 范例文件passwd.txt内容如下: (4)chpasswd < passwd.txt 欢迎关注我的其它发布渠道1
su - <user\>
创建用户
1
sudo adduser \<user>
用户组
1
groups
1
$usermod -G groupName username
1
$usermod -g groupName username
删除用户
sudo deluser lilei --remove-home
1
$more /etc/passwd
1
$more /etc/group
etc/group
文件格式说明user_list
就是空的添加用户组
groupadd
命令
功能:添加用户组
用法:groupadd [-g gid][-o][-r][-f] groupname
参数
-g gid:除非使用-o参数不然该值必须是唯一,不可相同。数值不可为负。
-o:允许设置相同组id的群组
-r:建立系统组
-f:强制执行,默认是不允许创建相同id的组的,使用此参数就可以,而且不用-o选项。修改用户组
1
groupmod
功能:修改用户组
用法:groupmod [-g gid [-o]] [-n group_name] group
参数:
-g gid:指定id
-o:与groupadd相同
-n group_name:修改用户组名为group_name删除用户组
1
delgroup <groupname\>
groupdel
命令,倘若该群组中仍包括某些用户,则必须先删除这些用户后,才能删除群组。useradd
只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd <username>
去设置新用户的密码。adduser
在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作批量添加(删除用户)
1
echo username:newpasswd | chpasswd
1
$useradd -m username
1
chpasswd < user.txt
补充
1
user001:x600: 100:user:/home/user001:/bin/bashwin00: x:520:520::/home/win00:/sbin/nologin 通过这个属性让用户无法登录
1
user001:密码user002:密码....