专栏首页逆向技术Linux基础知识第七讲,用户权限以及用户操作命令

Linux基础知识第七讲,用户权限以及用户操作命令

目录

Linux基础知识第七讲,用户权限以及用户操作命令

一丶简介linux用户,用户权限,组的概念.

1.1 基本概念

  • 用户 是 Linux 系统工作中重要的一环,用户管理包括 用户 管理
  • 在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限
  • 在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录不同权限
  • 文件/目录 的权限包括:

序号

权限

英文

缩写

数字代号

01

read

r

4

02

write

w

2

03

执行

excute

x

1

1.2 组

  • 在实际应用中,可以预先针对 设置好权限,然后 将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限 在Linux以及windows中,学过开发的应该知道.文件都有权限一说. 可读可写可执行. linux为了方便用户管理.还可以设置小组. 在这个小组里面的用户所拥有的权限是一样的. 这样就不用为每一个用户设置操作权限了. 例如ls命令.我们就可以查看.

1.3 ls命令查看权限.

  • ls -l 可以查看文件夹下文件的详细信息,从左到右依次是:
    • 目录,第 1 个字符如果是 d 表示目录
    • 用户权限,通俗地讲,就是有多少种方式,可以访问到当前目录/文件
    • 组权限,家目录下 文件/目录 的拥有者通常都是当前用户
    • 其它权限,在 Linux 中,很多时候,会出现组名和用户名相同的情况,后续会讲
    • 硬链接数,通俗地讲,就是有多少种方式,可以访问到当前目录/文件,一串数字.
    • 拥有者名称
    • 组名称
    • 文件大小

结果如下:

下面用横线标出了. d代表这个是个目录 rwx 代表当前用户对这个文件/目录 是可读可写可执行 权限每3个一组. r-x 代表了当前组对这个文件/目录 是可读 可执行 r-x 最后一列则是其它用户对这个文件/目录的 权限. 后面依次跟的就是 硬链接数 当前用户(IBinary) 组名称(IBinary) 一般组名称跟用户名称一样. 在后面就是文件的大小 时间 以及文件名了.

硬连接数解析

硬链接数通俗来讲就是访问这个文件的方式. 我们可以通过绝对路径访问这个文件.或者通过相对路径 访问.都会影响到达这个目录次数.

如有 a空文件夹 那么硬连接数就是2. 我们有两种方式访问a目录.

cd /home/IBinary/Desktop/a 第一种方式到达a目录 cd . 第二种方式到达a目录. 如果a里面有个b目录.那么就要三种方式到达a了.除去上面所说.第三种方式 cd.. 也可以到达a目录.

二丶用户权限修改命令

1.chmod 命令的使用

命令作用:

  • chmod 可以修改 用户/组文件/目录 的权限
  • 命令格式如下:
chmod +/-rwx 文件名|目录名

如: chmod + rwx a 代表给a目录加权限. 如下图所示:

修改之后,权限变成了可读可写可执行了.

如果目录可执行权限没有.那么则终端命令不能操作这个目录了. 如果可读权限没有,那么则不能查看里面文件. 如果没有可写权限.那么就不能给目录中创建文件. 总结: 目录的可读权限就是阅读目录,可写权限就是目录中是否可以创建文件 可执行权限,就是终端命令可否操作这个目录.

三丶超级用户,以及组操作.

1.什么是超级用户

  • Linux 系统中的 root 账号通常 用于系统的维护和管理,对操作系统的所有资源 具有所有访问权限
  • 在大多数版本的 Linux 中,都不推荐 直接使用 root 账号登录系统
  • 在 Linux 安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为“标准用户”

1.1 sudo 命令

  • susubstitute user 的缩写,表示 使用另一个用户的身份
  • sudo 命令用来以其他身份来执行命令,预设的身份为 root
  • 用户使用 sudo 时,必须先输入密码,之后有 5 分钟的有效期限,超过期限则必须重新输入密码

若其未经授权的用户企图使用 sudo,则会发出警告邮件给管理员

2.组管理

提示:创建组 / 删除组 的终端命令都需要通过 sudo 执行

序号

命令

作用

01

groupadd 组名

添加组

02

groupdel 组名

删除组

03

cat /etc/group

确认组信息

04

chgrp -R 组名 文件/目录名

递归修改文件/目录的所属组

有规律的. group代表群组的意思 add就是添加的意思. etc目录是保存组的配置信息的. 如下图所示: 添加组:

添加完组之后,组的配置信息会在 /etc/group下. 所以我们查看一下这个文件是否有我们添加的 组的信息

可以看到.group中已经有我们添加的组了.

提示:

  • 组信息保存在 /etc/group 文件中
  • /etc 目录是专门用来保存 系统配置信息 的目录
  • 在实际应用中,可以预先针对 设置好权限,然后 将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限

如果不添加sudo 那么就会提示你需要修改 /etc/group文件.

2.1 演练目标.讲一个文件设置到组中

  1. IBinary 用户的桌面文件夹下创建 test 目录
  2. 新建 AAAA
  3. test 目录的组修改为 AAAA 对应命令: mkdir test sudo groupadd AAAA sudo chgrp -R AAAA test 将test目录设置到AAAA组中. 如下图所示:

四丶添加linux用户,以及删除linux用户

1.命令

提示:创建用户 / 删除用户 / 修改其他用户密码 的终端命令都需要通过 sudo 执行

序号

命令

作用

说明

01

useradd -m -g 组 新建用户名

添加新用户

-m 自动建立用户家目录-g 指定用户所在的组,否则会建立一个和同名的组

02

passwd 用户名

设置用户密码

如果是普通用户,直接用 passwd 可以修改自己的账户密码

03

userdel -r 用户名

删除用户

-r 选项会自动删除用户家目录

04

cat /etc/passwd | grep 用户名

确认用户信息

新建用户后,用户信息会保存在 /etc/passwd 文件中

  • -m 自动建立用户家目录
  • -g 指定用户所在的组,否则会建立一个和同名的组

02 passwd 用户名 设置用户密码 如果是普通用户,直接用 passwd 可以修改自己的账户密码 03 userdel -r 用户名 删除用户 -r 选项会自动删除用户家目录 04 cat /etc/passwd | grep 用户名 确认用户信息 新建用户后,用户信息会保存在 /etc/passwd 文件中

提示:

  • 创建用户时,如果忘记添加 -m 选项指定新用户的家目录 —— 最简单的方法就是删除用户,重新创建
  • 创建用户时,默认会创建一个和用户名同名的组名
  • 用户信息保存在 /etc/passwd 文件中

在linux中添加用户之后,必须使用passwd 设置这个用户的密码. 否则不能远程连接 添加之后重启,那么你就可以切换用户登录了.

2.用户命令

序号

命令

作用

01

id [用户名]

查看用户 UID 和 GID 信息

02

who

查看当前所有登录的用户列表

03

whoami

查看当前登录用户的账户名

1.id命令的使用.

id 命令可以查看用户的id以及组的id 如下图:

uid是用户id gid就是组id 这些信息都存放在 /etc/passwd文件中. 所以我们要对这个文件存放用户的各式搞明白 使用命令: cat -n /etc/passwd 显示如下:

格式依次是:

  1. 用户名
  2. 密码(x,表示加密的密码)
  3. UID(用户标识)
  4. GID(组标识)
  5. 用户全名或本地帐号
  6. 家目录
  7. 登录使用的 Shell,就是登录之后,使用的终端命令,ubuntu 默认是 dash
  8. 了解下即可.

2.who 命令 以及 whoami命令

who顾名思义就是我是谁的意思. 它的意思就是看一下当前用户是谁登录了linux. whoami就是列出当前所有登录在linux中的用户. 如下演示:

who显示的是你的用户名,其中后面 (:0) 代表的是当前登录. whoami就是显示所有登录在这个linux的用户.当你用ssh链接的时候.就会有了.因为当前只有一个 用户.所以就显示了一个.

3.让添加的用户具有sudo权限

我们使用useradd 命令添加的用户.默认是没有sudo权限的. 因为他不在sudo这个组中. 我们可以使用命令 cat -n /etc/group | grep 用户名 过滤一下. 可以看到.用户并没有在 这个文件中. 比如我们的主用户跟添加的用户相比较.

后面有我们的用户名,代表的是用户.意思就是用户拥有这个权限 我们可以看21行. sudo 后面有ibinary我们的用户名.就代表ibinary这个用户可以有sudo的权限. 我们看下我们添加的用户.

如果查找我们添加的用户.则没有.

1.usermod 修改用户的附加组.让用户有权限.

  • usermod 可以用来设置 用户主组附加组登录 Shell,命令格式如下:
  • 主组:通常在新建用户时指定,在 etc/passwd 的第 4 列 GID 对应的组
  • 附加组:在 etc/group 中最后一列表示该组的用户列表,用于指定 用户的附加权限

提示:设置了用户的附加组之后,需要重新登录才能生效!

# 修改用户的主组(passwd 中的 GID)
usermod -g 组 用户名

# 修改用户的附加组
usermod -G 组 用户名

# 修改用户登录 Shell
usermod -s /bin/bash 用户名

注意:默认使用 useradd 添加的用户是没有权限使用 sudoroot 身份执行命令的,可以使用以下命令,将用户添加到 sudo 附加组中

usermod -G sudo 用户名

注意: 用户的主组是通过 useradd -g指定的.这个组一般不会改. 我们修改的是用户的附加组.所以选项不一样 都是用大 G选项. 而不是 小g选项. 一般修改的就是用户的附加组.

可以理解为: 小g是代表你这个用户在一个小组里面. 大G代表的是,你还在这个小组里面.只不过你的权限高了. 我给你提升权限了. 如下:

可以看到上图,我们的sudo组中,已经有zhangsan用户了. 那么以后我们做系统维护的话.zhangsan就可以使用 sudo权限了.

2.usermod 修改用户默认登录的shell

看标题可能不懂,那么说一下. 在我们linux中有终端. 终端就是shell 不过终端使用的shell是 bash. 而我们还有一种是dash. dash的话只会显示一个$符号. bash则会全部显示. 而且可以解决一个问题.就是你按 ↑箭头的时候.可以显示出你以前的命令. 但是dash不可以. putty xshell登录的时候.默认就是dash. 所以有时候会出现你敲过的命令 按↑键的话则会出现乱码. 修改一下即可.

命令: usermod -s /bin/bash 用户名 如下:

我们修改为bash即可.否则就会出现上面乱码情况.

4.which 查看命令所执行位置的路径

which命令很简单.可以查看你的命令是在那个目录. 如我们的passwd. 一个是在/etc/bin 另一个就是/usr/bin/passwd. 一个是保存用户信息的文件.一个是用户修改用户密码的程序.

  • which 命令可以查看执行命令所在位置,例如:
which ls

# 输出
# /bin/ls

which useradd

# 输出
# /usr/sbin/useradd

1.命令存放目录简介

  • Linux 中,绝大多数可执行文件都是保存在 /bin/sbin/usr/bin/usr/sbin
  • /binbinary)是二进制执行文件目录,主要用于具体应用
  • /sbinsystem binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
  • /usr/binuser commands for applications)后期安装的一些软件
  • /usr/sbinsuper user commands for applications)超级用户的一些管理程序

提示:

  • cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用 which 无法找到 cd 命令的位置

5.用户切换

有的时候,一个用户没有的权限.我们可以切换到另一用户使用. 命令格式如下:

序号

命令

作用

说明

01

su - 用户名

切换用户,并且切换目录

- 可以切换到用户家目录,否则保持位置不变

02

exit

退出当前登录账户

  • su 不接用户名,可以切换到 root,但是不推荐使用,因为不安全
  • `exit 可以退出当前切换的用户.返回上一层用户.

可以直接切换到root用户. 切换之后,就不用使用sudo命令了. 6.权限修改总结 linux中我们可以修改组, 文件权限. 也可以修改拥有者. 如下:

序号

命令

作用

01

chown

修改拥有者

02

chgrp

修改组

03

chmod

修改权限

  • 命令格式如下:
# 修改文件|目录的拥有者
chown 用户名 文件名|目录名

# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名

# 递归修改文件权限
chmod -R 755 文件名|目录名
  • chmod 在设置权限时,可以简单地使用三个数字分别对应 拥有者其他 用户的权限
# 直接修改文件|目录的 读|写|执行 权限,但是不能精确到 拥有者|组|其他
chmod +/-rwx 文件名|目录名

可以用ls -l 查看详细权限.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

推荐阅读

  • 日访问百万级微信小程序优化技巧总结

    之前负责的锡慧在线小程序是一款公益性质在线教育类小程序,因疫情影响导致流量暴增,日访问过百万

    薛定喵君
    小程序微信缓存RedisCanvas
  • Spiral: 一个性能卓越的PHP/Golang混合开发框架

    春节期间,了解到一个“全新”的 WEB 开发框架:Spiral, 最开始引起我的兴趣是从同事那里听说了 RoadRunner. 然后去了解 RoadRunner 的时候看到了 Spiral. 之所以把“全新”用双引号引起来,是因为这个框架其实从 2013 年起就在它的开发团队以及一些企业客户中应用了,经历了各种实际应用场景的考验,Spiral 的功能及其丰富,性能与当前主流的 PHP 框架相比也相当出众。但这个框架源自俄国,在国内不算知名,他们团队开始重视和梳理开源,也应该是才开始的事情。

    小李刀刀
    PHPGoSymfony
  • kubernetes系列教程(二十)prometheus提供完备监控系统

    上一个章节中kubernetes系列教程(十九)使用metric-server让HPA弹性伸缩愉快运行介绍了在kubernetes中的监控架构,通过安装和使用metric-server提供kubernetes中的核心监控指标:提供node节点和pod容器CPU和内存的监控能力,核心监控指标提供的监控维度和指标相对有限,需要更好的扩展监控能力,需要使用自定义监控来实现,本文介绍prometheus提供更更加丰富的自定义监控能力。

    HappyLau谈云计算
    Kubernetes容器微服务云监控
  • 如何将设计思维应用到精益初创公司的软件开发

    我们所说的设计思维,是指由 IDEO 公司的 Tim Brown 提出,并且正在改变全世界组织的设计思维,简称 DT。(译者注:IDDO,当代最具影响力的设计公司之一)

    Aceyclee
    Serverless无服务器云函数
  • InnoDB 事务加锁分析

    一般大家对数据库事务的了解可能停留在事务的ACID特性以及事务4种不同的隔离级别层面上,而对于事务 4 种不同隔离级别如何实现了解相对较少。

    2020labs小助手
    MySQLSQL数据库MVCMVCC
  • FutureTask 核心源码解析

    研究源码,一般我们都从整体以及实例先入手,再研究细节,不至于一开始就“深陷其中而"当局者迷".

    JavaEdge
    HTTPJava
  • 200行代码落地人脸识别开锁应用

    2019年国庆,帮朋友实现了一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。几个月来运行稳定,体验良好,借着这个春节宅家的时间,整理一下这个应用的实现过程。

    高树磊
    人脸识别图像处理
  • 滑动验证码攻防对抗

        在业务安全领域,滑动验证码已经是国内继,传统字符型验证码之后的标配。众所周知,打码平台和机器学习这两种绕过验证码的方式,已经是攻击者很主流的思路,不再阐述。冷渗透介绍的是一个冷门的绕过思路和防御方案。这些积累,均来自于实战之中,希望有用。

    周俊辉
    HTTP网络安全安全网站
  • 程序员进阶必读,万字总结Mysql优化精华篇

    price decimal(8,2)有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数)

    程序员内点事
    全文检索缓存SQL数据库Python
  • 运维转型 | 运维人不再只是“救火英雄”

    各行各业都开启了数字化转型的进程,运维团队在这种时代的浪潮中又该何去何从?我在帮助一些企业落地了运维技术平台之后,开始反思这个问题,并将所思所想整理成本篇文章。

    嘉为科技
    企业运维自动化云计算

扫码关注云+社区

领取腾讯云代金券