Linux教程(三)用户与权限管理
4.1 用户管理命令
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组 新建用户名 | 添加新用户 | -m 自动建立用户家目录;-g 用户所在组,否则新建一个和用户同名的组 |
passwd 用户名 | 设置密 | 普通用户直接用 passwd 则可以修改自己的账户密码 |
userdel -r 用户名 | 删除用户 | -r 自动删除用户家目录 |
cat /etc/passwd | grep 用户名 | 查看用户信息 | 新建用户后,用户信息会保存在 /etc/passwd文件中 |
usermod -g 组 用户名 | 修改用户主组 | 主组:etc/passwd 的第 4 列 GID 对应的组 |
usermod -G 组 用户名 | 修改用户附加组 | 附加组:在 etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限 |
usermod -s /bin/bash | 修改登录shell |
passwd 文件:存放的使用用户信息,由6个分号组成7个信息,分别是
用户名, 密码(x 表示加密的密码), UID(用户标识), GID(组标识), 用户全名或本地账号, 家目录, 登录使用的 shell 命令(ubuntu 默认是 dash)
默认使用 useradd 添加的用户是没有权限使用 sudo 以 root 身份执行命令的,使用命令
usermod -G sudo 用户名
将用户添加到 sudo 附加组中设置了用户附加组之后需要重新登录才能生效
4.1.1 查看用户信息
命令 | 作用 |
---|---|
id 用户名 | 查看用户 UID 和 GID 信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
4.1.2 切换用户
su - 用户名:切换用户,并切换目录
- - 可以切换到用户家目录,否则保持位置不变
exit:退出当前登录账户
su 后面不跟用户名时可以切换到 root,但是不安全,不推荐使用
4.2 组管理命令
提示:创建组/删除组的终端命令都需要通过 sudo 执行
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp 组名 文件名/目录名 | 修改文件/目录的所属组 |
组信息保存在 /etc/group 文件中,/etc 目录是专门用来保存系统配置信息的目录
在实际应用中,可以预先针对组设置好权限,然后将不同的用户添加到对应组中,这样就不用为每个用户设置权限了。
4.3 权限管理
4.3.1 chmod
作用:修改用户/组对文件/目录的权限
格式:chmod +/rwx 文件名|目录名
以上方式会一次性修改 拥有者/组 权限
4.3.2 修改文件权限
chown 用户名 文件名 | 目录名
修改文件 | 目录的拥有者
chgrp -R 组名 文件名 | 目录名
修改文件 | 目录的组
-R 表示递归修改
chmod -R 755 文件名 | 目录名
修改文件 | 目录的权限
4.3.3 which
作用:用来查看执行命令所在的位置
格式:which command
which ls # 输出 /bin/ls
which useradd # 输出 /user/sbin/useradd
cd 命令是内置在系统内核中的,没有独立的文件,因此用 which 无法找到
4.3.4 bin 和 sbin
在 linux 中,绝大多数的可执行文件都保存在 /bin、/sbin、/usr/bin、/usr/sbin
-
/bin 是二进制执行文件目录,主要用于具体应用
-
/sbin 是系统管理员专用的二进制代码存放目录,主要用于系统管理
-
/usr/bin 后期安装的一些软件
-
/usr/sbin 超级用户的一些管理程序