Linux目录结构——史上最烂系列
Linux常用命令浅谈——史上最烂系列
Linux用户权限相关命令浅谈——史上最烂系列
Linux用户权限相关命令浅谈之rwx权限详解——史上最烂系列
文章目录
1:用户和权限的基本概念
1.1 基本概念
- 用户是Linux系统工作中重要的一环,用户管理包括用户与组管理
- 在Linux系统中,不论由本机或是远程登录系统,每个系统必须有一个账号,且对于不同的系统资源会有不同的使用权限
- 在linux中每个用户必须属于一个组,不可以独立于组之外
- 对文件/目录的权限包括:
序号 | 权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|---|
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | excute | x | 1 |
04 | 无权限 | - | 0 |
1.2 组
- 为了方便用户管理,提出了组的概念,如下图所示
1.3 ls -l命令扩展
- 在linux的每个文件中有所有者,所在组,其他组的概念
- ls-l 可以查看文件夹下文件的详细信息,从左到右依次是:
- 权限:第一个字符如果是d表示目录
- 硬连接数:通俗地讲,就是有多少种方式,可以访问当前目录/文件
- 拥有者:家目录下文件/目录的拥有者通常都是当前用户
- 组:在Linux中,很多时候,会出现组名和用户名相同的情况
- 大小:文件大小(字节),(如果是文件夹,显示4096)
- 时间:最后修改时间
- 名称:文件名
举例:在 /home/zlj 的路径下创建一个1.txt文件,查看它的详细信息
硬连接数介绍:通俗地讲,就是有多少种方式,可以访问当前目录/文件cd
举例:查看该图结构下dir的硬连接数
dir的硬链接数为3,看如下解释
1.4 chmod命令简单使用
- chmod 命令可以修改用户/组对文件/目录的权限
chmod +/-r 文件名|目录名
提示:以上方式会一次性修改拥有者/组权限(我们后续会讲到这个命令,这里先简单介绍)
1.5 超级用户
- Linux系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源具有访问权限
- 在大多数版本的Linux中,都不推荐直接使用root账号登录系统
- 在Linux安装过程中,系统会自动创建一个用户账号,而这个默认的用户就称为"超级用户"
- 如下图
- sudo命令用来以其他身份来执行命令,预设身份为root
- 用户使用sudo时,必须先输入密码,之后五分钟的有效期限,超过期限必须重新输入密码
若未经授权的用户企图使用sudo,会发出警告邮件给管理员
2:组管理终端命令
序号 | 命令 | 作用 |
---|---|---|
01 | groupadd 组名 | 添加组 |
02 | groupdel 组名 | 删除组 |
03 | cat /etc/group | 确认组信息 |
04 | chgrp -R 组名 文件/目录名 | 递归修改文件/目录的所属组 |
- /etc/group 文件存放的是组信息。由三个分号组成
每行含义:组名:口令:组标识符:组内用户列表
提示:
1:组信息保存在 /etc/group 文件中
2:/etc 目录是专门用来保存系统配置信息的目录
- 在实际应用中,可以预先针对组设置好的权限,然后将不同用户添加到对应的组中,从而不用依次为每一个用户设置权限
实例:在zlj用户的桌面文件夹下创建dir5目录,并新建dev组,将dir5目录的组修改为dev
3:用户管理终端命令
提示:创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo执行
3.1 创建用户/设置密码/删除用户命令说明
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | useradd -m -g 组名 组建用户名 | 添加新用户 | -m 自动建立用户家目录,-g 指定用户所在的组,否则会建立一个和同名的组 |
02 | passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账户密码 |
03 | userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
04 | cat /etc/passwd| grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存/etc/passwd文件中 |
05 | usermod -g 用户组 用户名 | 修改组 | 会把用户名原来所在组改到现在的用户组里 |
家目录:/home/目录下有各个创建的用户对于的家目录(用户登录时,会自动进入到自己的家目录)
提示:
- 创建用户时,如果忘记添加-m 选项指定新用户的家目录——最简单的方法就是删除用户,重新创建
- 创建用户时,默认会创建一个用户名和组名
- 用户信息保存在/etc/passwd文件中
举例:创建一个zzg用户,并放在dev组中,然后设置密码,并查看组中的信息,然后再删除zzg用户,并查看删除后是否存在(没显示出来就不存在)
3.2 查看用户信息命令说明
序号 | 命令 | 作用 |
---|---|---|
01 | id [用户名] | 查看用户UID和GID信息 |
02 | who | 查看当前所有登录的用户列表 |
03 | whoami | 查看当前登录用户的账户名 |
- passwd文件
- /etc/passwd 文件存放的是用户信息。由六个分号组成的七个信息,分别是
1:用户名
2:密码
3:UID(用户标识)
4:GID(组标识)
5:用户全名或本地账户
6:家目录
7:登录使用的shell,就是登陆之后,使用的终端命令,ubuntu默认是bash(表示当前用户使用的shell是/bin/bash,所谓的shell你可以理解为操作系统和人之间交互的平台)
举例:查看用户名zlj的信息,并用id查看用户UID和GID信息
查看当前登录用户的账户名
3.3 which命令说明
提示:
- /etc/passwd 是用于保存用户信息的文件
- /usr/bin/passwd 是用于修改用户密码的程序
- which命令可以查看执行命令所在位置,例如
which ls
# 输出
# /bin/ls
which useradd
# 输出
# /usr/sbin/useradd
bin和sbin
- 在Linux中,绝大多数可执行文件都是保存在 /bin,/sbin,/usr/bin,/usr/sbin
- /bin是二进制执行文件目录,主要用于具体应用
- /sbin 是系统管理员专用的二进制代码存放目录,主要用于系统管理
- /usr/bin:后期安装一些软件
- /usr/sbin:超级用户的一些管理程序
3.4 切换用户命令
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | su 用户名 | 切换用户,并且切换目录 | 可以切换到用户家目录 |
02 | exit | 退出当前登录账户 |
su - 用户名:可以切换到root,当不推荐使用(不安全)
3.5 修改文件权限命令(重点,看了绝对可以解决你的疑惑)
序号 | 命令 | 作用 |
---|---|---|
01 | chown | 修改所有者 |
02 | chgrp | 修改所在组 |
03 | chmod | 修改文件或目录的权限 |
- 命令格式如下
# 修改文件|目录的所有者
chown 用户名 文件名 | 目录名
# 递归修改文件|目录的所在组
chgrp -R 组名 文件名|目录名
# 递归修改文件权限
chmod -R 755 文件名|目录名
举例:1:使用root创建一个文件apple.txt,然后将其所有者改成tom
2:使用root创建一个文件demo.txt,然后将其所在组改成zlj