Linux用户操作

文章目录

  • 概述
    • 系统概述(用户)
    • 文件所有者
    • 用户组
    • 文件所属组
    • 其他用户
    • root
  • 用户和用户组管理
    • 用户
      • 添加
      • 设置密码
      • 删除用户
      • 修改用户
    • 用户组
      • 添加用户组
      • 删除用户组
      • 修改用户组属性
      • 用户组切换
    • 用户切换
      • su
      • sudo

概述

系统概述(用户)

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

摘自菜鸟教程

文件所有者

默认下创建文件的用户即为所有者;也可以创建时同时指定其他用户为文件的所有者;或文件创建后通过高级用户变更所有者

为保护数据的安全,用户可对文件进行相关的读写执行等权限的设置

用户组

大致分为三组:

  1. 管理员root (id/uid 为0)
  2. 普通用户
  3. 系统用户(id为1~499)

对于普通用户,根据需要可进行自行分组,处于同一组可以拥有类似的功能。

用户组的信息存放在etc目录下的group文件中

文件所属组

与用户组相呼应

当某个文件若设置其文件所属组为2并对文件所属组的权限设为可读可修改,那么这个2组中的所有用户都可以对该文件进行读写操作

其他用户

相对关系,某个组以外的其他用户都可以称为其他用户

root

属于root用户组,是超级用户,拥有全部权限

可以创建删除普通用户和用户组,设置用户权限


用户和用户组管理


用户


添加

ueseradd命令

useradd 选项 用户名
  • -c comment 指定一段注释性描述。(备注信息)
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组。
  • -G 用户组,用户组 指定用户所属的附加组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
  • -f 缓冲天数,密码过期时在指定天数后关闭账号
  • -e 账号的有效期限
  • -m 自动建立用户的登陆目录
  • -r 创建系统账号

在这里插入图片描述

注意此时创建的用户是不能使用的,因为未对该账户设置密码,账号处于锁定状态

设置密码

passwd

passwd 选项 用户名
  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。
  • -s 列出密码的相关信息

现在对刚才的账户进行密码设置:

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

提醒:需要有一定的安全性,否则将可能不会通过检查,最好使用8位长的口令,口令中包含有大写、小写字母和数字

使用命令查看shadow文件尾的三行数据

在这里插入图片描述

分别对应创建的账户所对应的密码信息,每一项以:分隔,第二项为加密后的密码

普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

删除用户

userdel

userdel 选项 用户名
  • -f 强制删除,即使是当前用户
  • -r 删除用户的同时删除与用户相关的所有文件

在这里插入图片描述

检查发现不存在了

在这里插入图片描述

在这里插入图片描述

修改用户

在创建用户的时候,我们没有对该用户的一些信息进行详细的设置,这给了我们在后期可能如果错误操作的改正机会

usermod

usermod 选项 参数

在使用前要确定改用户没有在计算机上执行任何程序

下面的绝大多数选项与创建时的选项是相同的(加粗为不同的)

  • -c comment 指定一段注释性描述。(备注信息)
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
  • -l 修改用户账户名称
  • -L 锁定用户,使密码失效
  • -U 解除密码锁定

在这里插入图片描述

对操作进行检查

在这里插入图片描述

用户组

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

添加用户组

groupadd

group 选项 参数
  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
  • -r 创建系统用户组,范围为1~499

这里创建一个编号为1800名字为group1的用户组

在这里插入图片描述

检查发现:

在这里插入图片描述

输出的结果被:分隔成三项,分别为组名密码位组id

删除用户组

groupdel

groupdel 用户组名

该命令无参

修改用户组属性

groupmod 选项 用户组

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。(即允许组id不唯一)
  • -n 新用户组 将用户组的名字改为新名字

这里把group1修改为了shanghai

在这里插入图片描述

这里指定了一个新的用户在该组之下,并设置了一个缓冲时间;用了一个在线转换时间戳的网站转换了一下,不知道是不是支持时间格式化输入,如果支持的话望大佬给予指正,感谢!

在这里插入图片描述

用户组切换

将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。

每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。

当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

在成为附件组成员后,用户就可以获得了相对应的组别权限。

用户可以从附加组中移除,但不能从基本组中移除

newgrp

newgrp 用户组名

用户切换

su

su -(空格)username
  • 不加任何参数将默认切换到root用户;但没有转到root用户根目录下
  • su -表示切换到root用户,并且转到根目录下
  • 一些参数
    • -c 执行完指定的指令后,切换会原来用户 (su -c ls root)
    • -l 切换用户时同时切换到相对应的用户的工作目录,环境变量随之改变
    • -m,-p 切换时不改变环境变量
    • -s 指定要执行的shell

sudo

su命令切换为root用户获取部分权限时需要知道root的密码,有一定的不安全性
sudo

sudo 选项 -u 用户 命令

sudo可以看做受限的su命令。

如果其他用户想要使用root的部分权限就可以使用该命令;但是若要使用,需要讲用户名添加到/etc/sudoers中,该操作由root用户完成。这时候存在在该文件的用户只需要知道自己的密码就可以使用root身份,在密码匹配正确后,5分钟之内有效

  • -V 显示版本编号
  • -h 会显示版本编号及指令的使用方式说明
  • -l 显示出自己(执行 sudo 的使用者)的权限
  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b 将要执行的指令放在背景执行
  • -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

sudoers文件有一定的语法规范,尽量不要使用vim对其进行编辑,通常使用visudo命令打开(其本质还是vi);在保存退出时系统也会对该文件进行语法检查

在这里插入图片描述

找到下面的界面

Linux用户操作_第1张图片

框起来的这句话的解释是:使root用户能够在任何情况下执行任何命令

对其进行编辑的时候:需要符合下列格式:

账户名 主机名称=(可切换的身份)可执行的命令

参数解释:

  • 账户名:要设置权限的名
  • 主机名称:账户名对应的用户可以从哪些网络主机连接当前Linux主机,root默认都可以
  • 可切换的身份:决定该用户可以在哪些用户身份之间进行切换,执行哪些命令
  • 可执行的命令:改用户可以执行哪些命令,命令的路径应为绝对路径
  • ALL代表任何主机、身份、命令

使用sudo -l查看当前用户能够使用哪些命令和不能使用哪些命令

通过!可使某些用户禁止某些命令

zhangsan ALL=(root)!/bin/more

式:

账户名 主机名称=(可切换的身份)可执行的命令

参数解释:

  • 账户名:要设置权限的名
  • 主机名称:账户名对应的用户可以从哪些网络主机连接当前Linux主机,root默认都可以
  • 可切换的身份:决定该用户可以在哪些用户身份之间进行切换,执行哪些命令
  • 可执行的命令:改用户可以执行哪些命令,命令的路径应为绝对路径
  • ALL代表任何主机、身份、命令

使用sudo -l查看当前用户能够使用哪些命令和不能使用哪些命令

通过!可使某些用户禁止某些命令

zhangsan ALL=(root)!/bin/more

你可能感兴趣的:(#,linux编程,linux)