一、root用户和权限
普通用户的权限,一般在其HOME目录内是不受限的,一旦出去了HOME目录,则仅能读,无修改权限。
超级用户,拥有系统最大权限
su、exit命令,切换用户
su来源switch user
语法:
su [ - ] 用户名
- 选项 - 表示切换用户并加载环境变量,一般带着
- 参数 用户名,表示要切换到的用户,省略表示切换到root用户下
exit 命令表示退回上一个用户,也可以ctrl + d
语法:
exit
- 普通用户切换到root需要密码
- root切换到普通用户不需要密码
sudo 命令为普通命令授权,临时以root身份执行
语法:
sudo 其他命令
- 不是所有的用户都可以使用sudo命令的,只有root用户认证的用户才可
为普通用户配置sudo认证
- 切换到root用户,执行visudo命令,会 自动执行 vi /etc/sudoers
- 在文件最后添加
用户 ALL = (ALL) NOPASSWORD :ALL
3.保存并退出
4.切换到普通用户
5.即可使用sudo命令
二、用户、用户组
概念:
Linux系统中可以:
- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组
Linux中关于权限管理的两个级别
- 针对用户的权限控制
- 针对用户组的权限控制
用户组管理:(root用户行为)
创建用户组
语法:
groupadd 用户组名
删除用户组
语法:
groupdel 用户名
用户管理(root用户行为)
创建用户
语法:
useradd [ -g -d ] 用户名
- 选项 -g 指定用户归属的组,若不指定则默认创建一个与用户名一样的组内,如已存在该组,则必须-g指定
- 选项 -d 指定用户的HMOE路径,默认为/home/用户名
- 参数 用户名 就是用户名
删除用户
语法:
userdel [ -r ] 用户名
- 选项 -r 表示连同/home/用户名一同删除,不使用表示仅删除用户HOME目录不删除
查看用户所属组
id [用户名]
- 若并提供参数,默认当前用户
修改用户所属组
usermod -aG 用户名 用户组
- 将指定用户加入到指定组
查看有哪些用户
语法:
getent passwd
显示信息
查看组
语法:
getent group
显示信息
三、查看权限控制信息
ls -lh命令显示内容解读:
序号1具体权限解读;
举例:drwxr-xr-x表示:
- d 文件夹
- rwx 当前用户对其有read、write、excute权限
- r-x 同组用户对其只有read、excute权限
- r-x 其他 用户对其只有read、excute权限
r、w、x代表含义:
四、修改权限控制
chmod命令进行权限修改
语法:
chmod [ -R ] 权限 文件或文件夹
- 选项 -R 表示对整个文件夹内的文件都进行该操作
- 参数 权限 指定权限 例如u=rwx,g=x,o=x
- 参数 文件或文件夹 路径
例如:
chmod u=rwx,g=rw,o=x hello.txt
将hello.txt文件权限修改为 rwxrw---x
chomd -R u=rwx,g=wx,o=r test
将test文件夹及其内文件权限修改为 rwx-wxr--
对于,u=布拉布拉,g=布拉布拉,o=布拉布拉,比较麻烦,因此可采用数字去代表权限
0~7即为全部权限,一个数字代表一个布拉布拉
例如:
chmod u=rwx,g=rw,o=x hello.txt 等价于 chmod 761 hello.txt
chown命令修改所属用户与用户组
语法:
chown [ -R ] [用户]:[用户组] 文件或文件夹
- 选项 -R 针对文件夹表示将其本身和包含的所有文件进行一样的处理
- 选项 用户 将文件或文件夹修改为所属该用户下
- 选项 用户组 将文件或 文件夹修改为所属该用户组下
- 参数 文件或文件夹 被处理的文件或文件夹
- 注:只有root用户才可以操作
示例:
chown root hello.txt 修改hello.txt 所属用户为root
chown :root hello.txt 修改hello.txt 所属用户组为root
chown -R root:root test 修改test文件夹 所属用户为root,所属用户组为root