首页 > 系统相关 >Linux用户和权限

Linux用户和权限

时间:2024-07-28 14:28:33浏览次数:13  
标签:用户名 用户组 用户 文件夹 Linux 权限 root

文章目录

Linux用户和权限

root用户和普通用户

root用户(超级管理员)

无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root(超级管理员)。

在这里插入图片描述

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

(1)使用普通用户在根目录下创建文件夹

[zhangsan@node1 root]$ mkdir /test
mkdir: 无法创建目录"/test": 权限不够

(2)切换到root用户后,继续尝试

[zhangsan@node1 root]$ su root
密码:
[root@node1 ~]# mkdir /test
[root@node1 ~]# 

注意:普通用户的权限,一般在其HOME目录内是不受限的。一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。

用户管理

以下命令需root用户执行

添加用户(不指定组):useradd 用户名

注意: 默认在/home目录下创建了一个以用户名命名的文件夹,此文件夹就是对应用户的家目录。如果添加用户的时候没有指定所属组,默认自动生成了一个以此用户名命名的组。

设置密码:passwd 用户名

删除用户: userdel [-r] 用户名

注意: 如果不加-r,用户被删除后,它的家目录依然存在。如果用户所属组是添加用户的时候自动生成的,那么删除用户的对应的组也会自动删除。

查看所有用户快捷方式: getent passwd

查看所有用户普通方式: cat /etc/passwd

su和exit命令

在前面,我们接触过su命令切换到root账户。su命令就是用于账户切换的系统命令,其来源英文单词:Switch User。

语法:su [-] [用户名]

- 符号是可选的,表示是否在切换用户后加载环境变量,建议带上

参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root

•切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d

•使用普通用户,切换到其它用户需要输入密码,如切换到root用户

•使用root用户切换到其它用户,无需密码,可以直接切换

sudo命令

在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。

语法:sudo 其他命令

•在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权

•但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

为普通用户配置sudo认证

•切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

•快捷方式: visudo

•在文件的最后添加:zhangsan ALL=(ALL) NOPASSWD:ALL

•最后通过 wq 保存

•切换回普通用户

[root@node1 ~]# su zhangsan
[zhangsan@node1 root]$ sudo ls /root
[zhangsan@node1 root]$ sudo mkdir /test

•执行的命令,均以root运行

用户组管理

Linux系统中可以:

•配置多个用户

•配置多个用户组

•用户可以加入多个用户组中

Linux中关于权限的管控级别有2个级别,分别是:

•针对用户的权限控制

•针对用户组的权限控制

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。

所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础

在这里插入图片描述

注意:以下命令需root用户执行

添加用户组:groupadd 组名

删除用户组:groupdel 组名

查看所有用户组快捷方式:getent group

查看所有用户组普通方式:cat/etc/group

组名称:组认证(显示为x):组ID

修改文件/目录的所属组:chgrp 组名 指定文件/目录路径

查看用户所属组

语法:id [用户名]

参数:用户名指的是被查看的用户的用户名,如果不提供用户名,则查看自身。

创建以用户的时候指定组

语法:useradd 用户名 -g 用户组名

注意:默认在/home目录下创建了一个以用户名命名的文件夹,此文件夹就是对应用户的家目录。

添加已经存在用户到指定组

语法:usermod -aG 用户组名 用户名

将指定用户加入指定用户组

查看权限限制

认知权限信息

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

让我们来解析一下序号1,权限细节,权限细节总共分为10个槽位,如下图。

在这里插入图片描述

举例:drwxr-xr-x,表示:

•这是一个文件夹,首字母d表示

•所属用户(右上角图序号2)的权限是:有r有w有x,rwx

•所属用户组(右上角图序号3)的权限是:有r无w有x,r-x (-表示无此权限)

•其它用户的权限是:有r无w有x,r-x

rwx

那么,rwx到底代表什么呢?

•r表示读权限

•w表示写权限

•x表示执行权限

针对文件、文件夹的不同,rwx的含义有细微差别

•r,针对文件可以查看文件内容

•针对文件夹,可以查看文件夹内容,如ls命令

•w,针对文件表示可以修改此文件

•针对文件夹,可以在文件夹内:创建、删除、改名等操作

•x,针对文件表示可以将文件作为程序执行

•针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

修改权限控制

chmod

我们可以使用chmod命令,修改文件、文件夹的权限信息。

注意,只有文件、文件夹的所属用户或root用户可以修改

语法:chmod [-R] 权限 文件或文件夹

选项:-R,对文件夹内的全部内容应用同样的操作

示例

chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x--x

其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限

chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x

除此之外,还有快捷写法:chmod 751 hello.txt

将hello.txt的权限修改为751

权限的数字序号

权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。

数字的细节如下:r记为4,w记为2,x记为1,可以有:

•0:无任何权限, 即 —

•1:仅有x权限, 即 --x

•2:仅有w权限 ,即 -w-

•3:有w和x权限 ,即 -wx

•4:仅有r权限 ,即 r–

•5:有r和x权限 ,即 r-x

•6:有r和w权限, 即 rw-

•7:有全部权限, 即 rwx

chown

使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:chown [-R] [用户][:][用户组] 文件或文件夹

•选项,-R,同chmod,对文件夹内全部内容应用相同规则

•选项,用户,修改所属用户

•选项,用户组,修改所属用户组

:用于分隔用户和用户组

示例

•chown root hello.txt,将hello.txt所属用户修改为root

•chown :root hello.txt,将hello.txt所属用户组修改为root

•chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima

•chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
户组,修改所属用户组

:用于分隔用户和用户组

标签:用户名,用户组,用户,文件夹,Linux,权限,root
From: https://blog.csdn.net/m0_70882914/article/details/140710624

相关文章

  • 【linux】【设备树】具有 GPIO 控制器和连接器的硬件配置的备树(Device Tree)代码讲解
    具有GPIO控制器和连接器的硬件配置的备树(DeviceTree)代码讲解背景-学习Linux设备树代码soc{soc_gpio1:gpio-controller1{#gpio-cells=<2>;};soc_gpio2:gpio-controller2{#gpio-cells=<2>;};};connector:connect......
  • 谈一谈我使用 Kali Linux 作为主力系统的感受
    我使用KaliLinux也有一年多的时间了,由于我习惯了Linux/UNK的环境,所以我的电脑上只有一个系统,那就是kaliLinux。是的,你没有听错只有一个KaliLinux作为主力系统没有包含Windows,使用KaliLinux作为主力系统是方便学习Linux与网络安全相关知识。这是肯定就有人问了:你......
  • Linux中安装JDK教程
    一、卸载Linux自带的OpenJDK1、首先检查虚拟机是否自带OpenJDK,执行java-version命令[root@localhostsuyintuolo]#java-versionopenjdkversion"1.8.0_242"OpenJDKRuntimeEnvironment(build1.8.0_242-b08)OpenJDK64-BitServerVM(build25.242-b08,mixedmode......
  • Linux 中6种查看日志命令
    Linux查看日志的命令有多种:tail、cat、head、echo等,本文只介绍几种常用的方法。1、tailtail -n 10 test.log  查询日志尾部最后10行的日志;tail -n+10 test.log 查询10行之后的所有日志;tail -fn10 test.log  循环实时查看最后1000行记录(......
  • Linux中安装Nginx教程
    Nginx离线部署一.下载包链接: 链接:https://pan.baidu.com/s/1V11osYIsgDjwW9_qBJU9Dw 提取码:6868二、安装开始安装1.把包放在一个文件夹中,tarzxvfnginxOfflinePack.tar.gz解压cd到nginxOfflinePack目录2.然后运行命令:rpm-Uvh*.rpm--nodeps--force3.安装pcr......
  • cobble(linux服务器安装的服务)
    一、cobble简介Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。Cobbler......
  • Linux让远程服务器代理IPv6流量
    使用场景本地机器只能访问IPv4网络。远程服务器能访问IPv4网络,也能访问IPv6网络。这篇博客介绍如何让远程服务器代理本地机器的IPv6流量,从而让本地机器也能访问IPv6网络。主要思路在远程服务器上创建一个netns,搭IPv6NAT,这样netns里面就能通过IPv6NAT访问公网。然后在netns和......
  • Linux工作原理11 Shell脚本
    11shell脚本如果你能在shell中输入命令,你就能编写shell脚本。shell脚本(也称为Bourneshell脚本)是写在文件中的一系列命令;shell会从文件中读取这些命令,就像在终端中输入命令一样。11.1shell脚本基础Bourneshell脚本一般以下面一行开始,表示/bin/sh程序应执行脚本文......
  • PWA与原生应用:性能与用户体验的深度对比
    摘要随着Web技术的进步,渐进式Web应用(ProgressiveWebApps,PWA)已成为一种越来越受欢迎的选择,它结合了Web和原生应用的优点。尽管如此,原生应用仍然占据着移动应用市场的主导地位。本文将深入探讨PWA与原生应用之间的性能和用户体验方面的差异,并通过一些实际代码示例来展示如何......
  • Linux文件系统相关知识:存储设备、文件系统、分区、挂载、块设备、部分相关简单指令。
    1.存储设备是什么?怎么理解分区和格式化?存储设备:指物理硬件设备,‌用于存储数据。‌这包括硬盘驱动器(‌HDD)‌、‌固态驱动器(‌SSD)‌、‌USB闪存驱动器、‌RAID阵列等。‌这些设备提供了实际的存储空间,‌可以用来存储操作系统、‌应用程序、‌文件、‌数据等。‌存储设备的容量......