Linux 基础:用户和组
在团队工作中难免需要使用 Linux 系统进行开发,为了分工明确,搞清楚 Linux 系统中用户的权限如何分配还是很重要的
本文仅介绍一些常用的命令用法,掌握这些即可实现用户和组的基本操作
文件与目录权限和用户之间也有很多关系。详见 ---> 点击跳转
用户和组
1.1 超级管理员-root
在任意版本的 Linux 系统中,root用户(系统管理员)是拥有最高权限的,初始状态下无密码配置。
若启用root用户,需先给root用户设置密码:
sudo -i # 当前普通用户提权操作,用于下一步设置root密码
sudo passwd root # 给root用户设置密码
二次确认后,输入如下命令切换用户:
su $user # 切换指定用户,在这里使用 su root
至此,root用户启用完成
1.2 用户组
在实际开发或生产环境运维中,总是将一部分用户划分为一个组,并赋予相应的权限,如下:
1.2.1 查看用户和组
查看用户详情
使用 id 命令查看用户信息
id $user # 查看用户信息
在控制台中,清晰的看到了指定用户的 id 与所属
查看组详情
使用 cat 命令和 grep 组合命令:
cat /etc/group | grep $group_name # | 号关联命令
可见输出结果为:root:x:0: 【完整标准格式为:group:x:id:user】即:
用户组:执行权限:组ID:组内用户
1.2.2 处理用户和组
创建用户组
使用如下命令来创建用户组:
groupadd [options] $group_name # 创建用户组,[options]为命令参数
这里参数详情请输入groupadd --help
来了解:
创建用户
创建用户分为两个命令:
useradd [options] $user_name
adduser $user_name
两个命令的区别如下:
useradd:可以自行输入参数来确定用户的主目录,用户组等配置
adduser:将用户主目录创建在/home下,仅配置密码和用户信息,其他默认
使用 useradd --help
查看说明文档:
举个例子:
# 在/cokesr/admin/目录下创建名为zhangsan的用户,密码为jishushijiangu,主用户组为cokesr同时也属于root用户组
useradd -d /cokesr/admin/ -m -g cokesr -p jishushijiangu -G root zhangsan
删除用户组
使用如下命令来删除用户组:
groupdel $group_name # 删除用户组,必要时使用 sudo 前缀
删除用户
使用如下命令来删除用户:
userdel [options] $user_name
deluser $user_name
两个命令的区别如下:
userdel:使删除的信息具体化,需要提供参数
deluser:删除用户账户及其主目录相关文件
总的来说,删除用户时更推荐使用deluser,减少出错的可能性
修改用户组信息
使用如下命令来修改用户组信息:
groupmod [options] $group_name
这里参数详情请输入groupmod --help
来了解:
举个例子:
sudo groupmod -g 114514 -n cokesr coke # 将coke组更名为cokesr,同时将组ID更改为114514
修改用户信息
使用如下命令:
usermod [options] $user_name
老规矩:usermod --help
举个例子:
# 将张三添加到cokesr组,并保留原组位置(-a参数)
usermod -a -G cokesr zhangsan
管理组信息
使用如下命令来管理组信息:
gpasswd [option] $group_name
还是老规矩:gpasswd --help
举个例子:
gpasswd -a zhangsan coke # 将张三添加进coke用户组
gpasswd -d lisi coke # 将李四从coke用户组移除
1.3 其他
1.3.1 口令参数
在上面提到了使用passwd命令来修改指定用户的密码(口令),参数如下:
passwd [options] $user_name
# -l: 锁定密码,用户可以通过ssh登录到此用户,但无法更改密码
# -u: 解锁密码,解除禁用
# -d: 清除密码,使账户进入无密码状态
1.3.2 切换组
当某些用户同时属于多个组的时候,往往默认使用主用户的权限配置,若需要切换用户权限,使用该命令:
newgrp $group_name # 切换用户组
1.3.3 用户账户文件
在/etc/passwd文件中,记录了一些用户的基本属性,该文件对所有用户可读。
使用命令查看:
cat /etc/passwd
不难看出,一行对应一个用户,每行记录被分隔为7个字段,含义如下:
用户名:权限:用户ID:组ID:用户描述:主目录:登录shell
1.3.4 密码文件
在/etc/shadow中,记录着用户更为隐私的信息,仅超级管理员可访问。其格式与/etc/passwd类似
含义如下:
登录名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志