linux笔记9--用户和权限

1. 含义和作用

① 为什么要有用户这个概念

问:        系统中为什么要有用户这个概念?而且为什么要有用户和密码?为什么有些程序我们要右键使用管理员身份?
答:        在Windows XP时代,没有管理员身份,但是有用户(即:当前谁在操作这些指令,创建操作系统的过程中会提醒我们创建用户)的概念,所有的用户都具有管理员权限,所以XP系统非常容易中毒。–老系统容易中毒,一部分原因是因为权限问题(大家权限都一样,例如,从外面来了一个人进入我们的网络以后,把我们的主机黑了,这个时候他也在我们的主机上创建一个用户,拥有至高无上的权限)。当然,这只是一部分。
        所以不可能让所有用户都拥有至高无上的权限。用户与权限这两个话题也是并列开的。如果缺乏这两个东西,可以认为系统是不安全的。所以必须要提供一种功能,让其他用户没有那么高的权限,避免被一些非法的手段更改计算机中的一些机制。
        linux本质而言要比Windows好很多的原因就在于linux更安全,linux每次都更新,而且不是所有东西都给你至高无上的权限。但是没有绝对安全的东西,只能说相对安全

② linux操作权限的手段

        linux最主要的是通过用户账户这个手段操作权限。说白了就是用用户控制权限。root用户至高无上的权限,普通用户权限没那么高。普通用户可以用sudo命令临时获取管理员权限

③ 查看用户(GUI)

windows

在这里插入图片描述
在这里插入图片描述

linux

在这里插入图片描述

④ linux命令查看用户+系统账户

命令:cat /etc/passwd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
        除了root、aria、hah这三个我们熟悉的用户以外,其余的也是用户,但是这些用户不是真正的用户,它有一个专业的名字叫系统账户(有些软件是需要用到系统级账户的)。有些软件和服务需要单独的账户去运行,这时就会用到这些账户。也就是说,在登录linux设备时,一些后台软件或服务可能会去调用这些账户从而保证正常运行。–这块不用刻意理解
        不提倡用root权限去登录linux操作系统(原因:执行所有的命令没有提示)或者在windows里把所有东西设置管理员权限,电脑哪天中毒了都不知道。如果哪天有非法人员进入我们的服务器中,作为root用户直接登录(假如所有人都是root),那么他就可以立刻使用我们的root权限,肆意操作我们的所有文件,非常危险。
        所以linux并没有把所有的东西都挂在root目录下,而是单独创建一些系统级账户,防止非法人员攻破root目录后肆意操作所有命令,甚至把我们的系统删了。有了这些系统级账户,给某些系统级的服务和命令单独创建了一个用户去执行,非法人员想要操作所有系统级的东西,就必须把这些系统级账户全黑了。linux大费周折创建这些系统级别的东西,就是为了安全问题

UID

① 每个用户都有一个id(身份证)
② UID – 用户id(其实就是一些数字,每个用户都有唯一的) 即可以跟踪谁在操作它
登录用的是登录名,不是UID,UID本质上是看不到的。因为我们登录的时候用的是用户名(每一个用户对应着一个密码),而不是id
注:
在这里插入图片描述
aria:用户名(登录时的名字)
aria-virtual-machine:主机名

上述账户各字段解析

在这里插入图片描述
我们会发现系统账户的X后面的值(UID)都是低于500的(目的:预留一些系统账户)
UID < 500 --系统账户 不要随意修改
UID >= 500 -普通账户
在这里插入图片描述
aria:用户名
x:用户密码(加密过了)
1000:UID
1000:账户的组ID
Aria, , ,:备注字段(不用管,可以理解为账户用户描述(例如,用户是做什么的))
/home/aria:用户home目录
/bin/bash:用户默认使用的shell

查看账户真正的密码(即x代表什么)

命令:sudo cat /etc/shadow
在这里插入图片描述
发现密码还是加密的。系统级别的干脆画个*。! 代表目前不存在密码。
在这里插入图片描述
sssd:用户
*:加密后的密码
19432:自从上次修改密码后过去的天数(从1970年1月1日开始算)
0:多少天之后能修改密码
99999:多少天之后必须更改密码
7:如果密码过期了,提前多少天提醒用户更改密码 (服务器会用到这个东西,个人用户几乎用不到)
第七个字段:密码过期多少天后禁用
第八个字段:禁用日期(用天数表示,也是从1970年开始算)
第九个字段:预留字段(可能以后会用到)

2. 创建用户,删除,更改

① 命令添加用户

sudo useradd +用户名
在这里插入图片描述
在这里插入图片描述
注:
        linux新用户创建成功以后,一定会给我们默认的home路径以及一些有意思的东西,例如:.bash_history 、.bash_logout、.bashrc、.profile这四个必须要创建的文件(这四个文件创建好以后,其余的都好说)等。

问题

问:用sudo useradd user11创建用户以后,再用cat /etc/passwd查看,发现该用户所属的home路径是/home/user11,但是执行cd /home && ls以后却发现没有user11这个用户,这是为什么?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

答:在Linux系统中,使用sudo useradd user11命令创建一个新用户时,该命令只是将用户信息添加到系统帐户数据库中(通常是/etc/passwd文件),但是并不会自动为该用户创建主目录(home directory)。这就是为什么你在执行cd /home && ls后没有看到user11这个用户的主目录。
        要自动创建用户的主目录,你应该使用useradd命令的-m选项。这个选项会确保在创建用户时同时创建其主目录。
在这里插入图片描述
在这里插入图片描述

② 命令删除用户

sudo userdel +用户名
在这里插入图片描述
在这里插入图片描述

sudo userdel + 用户名 只能删除其在/etc/passwd下的配置信息,并不能删除为其创建的主目录 在图形界面创建用户会自动创建主目录
在这里插入图片描述
在这里插入图片描述
删除主目录:
在这里插入图片描述

③ 更改用户配置

我们总可以在配置文件中修改用户的一些配置

usermod

usermod-- 修改命令 可以更改/etc/passwd这个文件夹下大部分的字段
详细用法
例子:(修改用户帐号的备注文字)
在这里插入图片描述
在这里插入图片描述

修改用户密码

passwd

sudo passwd + 用户名
在这里插入图片描述
注:
        该命令还可以用于为新用户设置密码,上图中第一次执行这个命令的作用就可以理解为user11设置登录密码。

chpasswd

sudo chpasswd < 文件名
适用于批量修改密码。它可以从一个txt文件(文件格式必须是username:password,而且不能有空行)里读取密码信息,读完以后给密码加密,然后再去设置。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

lsattr命令–可以用于了解这个命令
        chpasswd < passwd.txt使用该命令时前面不加sudo,也会产生’ passwd:Authentication token manipulation error '这个报错

chsh

修改一些特定账户的信息 不是特别常用

chsh
注:
① 命令后的参数应根据不同的发行版而言,例如:Ubuntu20.04不支持chsh -l
在这里插入图片描述
② chsh 和 chsh -s + shell路径 均可以修改当前使用的shell
在这里插入图片描述
③ 一定要保证修改后的shell在系统中是存在的
在这里插入图片描述

chfn

chfn
注:
① finger命令(使用前需要先安装):
        在计算机领域,finger 是一个用于显示关于系统用户的详细信息的命令和服务。它通常显示用户的登录名、真实姓名、终端、登录时间等信息。
        具体来说:
        finger 命令:在命令行中,可以使用 finger 命令来查看用户的详细信息。例如,执行 finger username 将显示有关 username 用户的信息。
        finger 服务:在某些系统中,finger 服务也可以通过网络提供类似的信息,允许远程查询用户信息。
        chfn 命令用来更改用户的详细信息,这些信息通常由 finger 命令显示。通过 chfn 命令,可以修改如真实姓名、电话号码等字段,这样当其他用户使用 finger 命令查询用户信息时,显示的内容将更新为最新的信息。
        总之,finger 在这里指的是一个用于查询和显示用户信息的工具或服务,而 chfn 则是用于修改这些信息的命令。
在这里插入图片描述
② 命令后的参数应根据不同的发行版而言

chage

chage
注:
① sudo chage -l username:显示用户密码过期信息
在这里插入图片描述
② chage用法举例
在这里插入图片描述

修改/etc/shadow里的一些操作字段

可以用chage命令修改/etc/shadow里的一些操作字段
chage -h – 查看帮助文档
注:
① 一些日期的天数是从1970年1月1日开始算的
② change当中好用的命令:chage -E(设置过期的日期,运维工程师常用) --过期以后该用户仍然存在,但是不能使用

3. linux组(group)

① 小组的目的

小组的目的:共享资源或者说共享资源的权限
        比如我现在拥有一个开发团队,某些程序员本质上不应该有访问数据库的权限,或者说某些程序员不该拥有某些软件的使用权限,这时我们就会用到组这个概念。即把程序员分成几个小组,然后设定每个开发小组的访问权限,组内成员都可以访问指定资源(即组内成员拥有共享资源的权限)。
        对于某些文件、软件或者目录等内容,要求某些小组能使用,有些小组不能使用,这就又涉及到了共用权限的问题。
        但是不幸的是,linux不同的发行版可能会有不同。有些发行版在我创建一个组以后,它会把所有用户都纳入这个组。这些文件是可读的,把所有成员都纳进同一个组,就意味着大家都能看到,不太安全;但是有些发行版会给每一个用户单独创建一个组,这就很牛。(例如Ubuntu,它会为每一个用户创建一个单独与用户名相同的组,后期可以配置,最后再自己去管理。Ubuntu不允许把所有用户纳入到一个组里)

② 查看所有的配置组

tail /etc/group – 可以发现每个组都拥有不同的id
在这里插入图片描述
第一个参数:组的名字 – 和用户名相同
第二个参数:组的密码
第三个参数:组ID(GID)
第四个参数:属于该组的列表有哪些,即什么用户属于该组
注:不要妄想修改这个文件,把一个用户添加到一个组里,这样非常危险

③ 创建组

sudo groupadd + 组名
在这里插入图片描述

往组里添加用户

借助usermod命令
usermod -h 查看帮助文档
在这里插入图片描述

④ 修改组

借助groupmod命令
groupmod -h – 查看帮助文档
例如(修改组名):
在这里插入图片描述

④ 删除组

sudo groupdel + 组名
在这里插入图片描述

4. 文件和文件夹权限

linux文件基本属性
在这里插入图片描述第一组:帮派创始人的权限 --对象所属的主权限
第二组:帮派下属成员权限
第三组:其他帮派成员权限
把所有的帮派替换成组
在这里插入图片描述
第一列名字:用户名
第二列名字:组名
因为Ubuntu创建一个用户的时候,单独创建了一个和用户名相同的组

问题

在这里插入图片描述
问:为什么r对应的数值是4,w对应的数值是2,r对应的数值是1?
答:因为在 Unix 系统设计中,文件的权限位是使用三个比特来表示的,而 r、w、x 恰好是这些比特位的代表性操作,其对应的二进制位分别是 100(读取)、010(写入)、001(执行)。因此,r 的数值为 4是因为100转化为十进制是4,其余同理。

5. chmod

chmod – 修改安全权限 这部分是重点,尤其要理解它那个图,有些文件和工具可能会用到它
② 一般来说不需要理解八进制语法怎么算的
chmod 777
chmod 000

6. 磁盘管理

linux磁盘管理 – 这部分可以用到再去学

7. 推荐

frank的linux课教程 以上笔记全部来源于此

-----------------------------------未完待续...------------------------
---------------------------出现问题欢迎批评指正啊 ---------------------
  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值