Linux---用户及权限配置

news2025/1/19 11:38:18

文章目录

  • 目录

    文章目录

    前言

    一.基本概念

    二.用户管理 

    创建用户

     修改用户属性

    用户组管理 

    用户授权


前言

用户在操作系统中是非常重要的,我们登录系统,访问共享文件夹等都需要用户进行验证。所以,掌握管理用户的知识非常有必要的


一.基本概念

用户的账户信息存储在/etc/passwd中,在此文件中一行一个用户信息,各字段用“:”隔开,如下图所示:

 从左向右一次代表

用户名:用户密码:用户uid:用户gid:用户的描述信息:用户的家目录:用户的shell

用户的密码信息存储在/etc/shadow中,如下图所示:

 上面第一个和第二个冒号之间的就是加密后的密码。

当我们需要判断一个用户是否存在时可以使用如下命令:id tom

二.用户管理 

创建用户

[root@192 ~]# useradd tom
#设置密码
[root@192 home]# passwd tom

 常见参数:

-d:指定用户的家目录,默认为home/用户
-m:创建家目录,这是默认选项,默认为/home目录
-s:指定用户的shell,默认为/bin/shell
-c:用来指定备注信息,不指定则为空
-u:指定用户的uid
-g:默认情况下,创建用户时会创建一个同名组。例如,创建用户tom会同时创建tom组
-G:指定附属组,把用户加入一个额外的组,此时tom属于两个组

 修改用户属性

如果想要修改用户属性可以用usermod命令,全称:user modeify 意为用户修改

常见参数:

-c:修改注释信息
-s:修改shell信息
-d:修改家目录
-L:锁定用户
-U:解锁用户

演示案例:把tom的shell目录改为/bin/bas并把备注信息改成hello tom 

[root@192 ~]# usermod -s /bin/bash -c "hello tom" tom 

 

用户组管理 

所有组的信息都是放在/etc/group中的,如果要判断一个组是否存在,可以到/etc/group中查询

#查看用户组信息
[root@192 etc]# grep tom /etc/group
tom:x:1001:
#增加组
[root@192 etc]# groupadd tom
#删除某个组
[root@192 etc]# groupdel tom 
#设置创建组的gid为3000
[root@192 etc]# groupadd -g 3000 tom
#将tom用户加入到组bin中
[root@192 etc]# gpasswd -a tom bin

命令可执行权限授权

很多时候普通用户的权限是不够的,例如,下面的命令

         要执行该操作,需要使用su命令切换到root,但是并不希望其他人知道root密码,那怎么办?我们可以让root用户通过sudo对普通用户进行授权。

        以root身份到/etc/sudoers.d下随便创建一个文件,这里为了辨识以用户名命名文件。假设,现在要授权tom用户在本机以root用户的身份使用mount命令,编辑如下:

         我们可以切换到tom用户下使用下面的命令查看tom用户能够使用root身份执行哪些权限

[tom@192 ~]$ sudo -l

三.权限管理

        为了理解所有者和所属组的概念,我们先看下面的例子:

        张老板是某公司的老板,买了一套房作为员工宿舍给A部门员工居。张老板是房主,所以他对房子具有很多权限,A部门员工只有使用权而不能私自装修等,除张老板和部门的员工外,其他所有人都没有权限。

        那么,这套房子对三组人设置的权限如下:

所有者所属组其他人
张老板A部门员工其他所有人
    u      g      o

同理,在Linux系统中对文件的授权也是通过这样的分组来进行的,如下图所示:

[root@192 zt]# ls -lh file
-rw-r--r--. 1 root root 0 Jun  2 23:58 file
             (1) (2)

 (1)的位置是所有者,这里file的所有者为root

 (2)的位置是所属组,这里file的所有者为root

文件权限管理

如果想要改变所有者,可以使用chown命令来实现,chown的用法如下:

[root@192 zt1]# chown zt1 /home/zt1/file

 这里的意思是把file的所有者从root改为zt1

 当我们想要同时修改所属组合所属用户时,可以使用如下命令:

[root@192 zt1]# chown zt1:zt1 /home/zt1/file

 目录权限管理

目录权限的修改和文件权限的修改一致,值得注意的是,使用chown命令修改目录权限时并不会修改目录中文件的权限。

#修改目录所属用户
[root@192 zt1]# chown zt1 /file
#修改目录所属组
[root@192 zt1]#chgrp users /file

#修改目录权限的同时递归修改目录中的文件权限
[root@192 zt1]# chown -R zt1 /file
[root@192 zt1]#chgrp -R users /file

 权限修改

下面在以root用户的身份在zt用户的家目录下创建一个文件并写入“Hello World” 

从左往右第二位开始每三位代表用户权限(u),所属组权限(g),其他用户权限(o) 

[root@localhost1 zt]# touch file
[root@localhost1 zt]# ls -lh file
-rw-r--r--. 1 root root 0  6月  4 16:01 file
[root@localhost1 zt]# echo "Hello World" >> file
[root@localhost1 zt]# cat file
Hello World

 

 通过上面的图片可以看见,在zt用户下新创建的文件file所属用户是root,所属用户组是root 其它用户只有“读”的权限,下面通过下面的命令使其它用户没有“读”的权限。

 当我们使用zt用户查看该文件的时候会提示权限不足的提示。

 下面通过给该该文件的其它用户增加权限使得zt用户拥有“读”“写”的权限。

 下面让我们来验证一下,此时zt用户可以查案该文件内容。

同时,我们也可以利用数字的形式给文件增加权限。

 利用数字增加权限是,可读权限代表数字:4 可写权限代表数字:2 可执行权限代表数字:1

可以通过下面的命令给文件增加权限:

第一个7代表给所属用户增加(读+写+执行)权限,第二个7代表给所属组增加权限,第三个7代表给其它用户增加权限。


  总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1790317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Web学习笔记2——Web开发介绍

什么是Web? Web:全球广域网,也称为万维网(WWW World Wide Web),能够通过浏览器访问的网站。 1)淘宝、京东、唯品会等电商系统; 2)CRM、OA、ERP企业管理系统&#xff1…

解锁财富新篇章:消费增值模式引领未来消费趋势

你是否曾对日常消费感到一丝单调,认为它仅仅是一种物质上的交换,而非财富增长的途径?那么,让我们为你打开一扇全新的消费之门——消费增值模式。这不仅是一种全新的消费体验,更是一种让你的资金在消费过程中不断积累与…

【并发】Synchronized的底层原理

基本概念 Synchronized【对象锁】采用互斥的方式让同一时刻最多只有一个线程能够持有【对象锁】,如果其他线程想要获取这个【对象锁】就会被阻塞住 底层实现原理 我们可能听过,synchronized底层是通过Monitor来实现的,但如何直观的观察呢&…

kingbase重置序列

1、建立表接口 drop table if exists ncc_apple; CREATE TABLE ncc_apple ( id BIGSERIAL NOT null PRIMARY KEY, apple_name VARCHAR(128), creator BIGINT, create_time timestamp DEFAULT CURRENT_TIMESTAMP, updater INT8, update_time timestamp …

欧洲历史的五个阶段

欧洲的历史基本上都是分裂的,大致可以分为五个时期,分别为古希腊时代、罗马帝国时代、中世纪时代,文艺复兴时代、工业革命时代。 一,古希腊时代 古希腊是西方文明的源头,也是最重要和最直接的文明起源,首…

2024年社会发展与管理创新科学国际学术会议(ICSDMIS 2024)

2024年社会发展与管理创新科学国际学术会议(ICSDMIS 2024) 2024 International Conference on Social Development and Management Innovation Science(ICSDMIS 2024) 会议简介: 2024年社会发展与管理创新科学国际学术…

ClickHouse内幕(1)数据存储与过滤机制

本文主要讲述ClickHouse中的数据存储结构,包括文件组织结构和索引结构,以及建立在其基础上的数据过滤机制,从Part裁剪到Mark裁剪,最后到基于SIMD的行过滤机制。 数据过滤机制实质上是构建在数据存储格式之上的算法,所…

MAB规范(1):概览介绍

前言 MATLAB的MAAB(MathWorks Automotive Advisory Board)建模规范是一套由MathWorks主导的建模指南,旨在提高基于Simulink和Stateflow进行建模的代码质量、可读性、可维护性和可重用性。这些规范最初是由汽车行业的主要厂商共同制定的&…

Python语法详解module2(运算符、表达式、流程控制)

目录 一、运算符1. 算术运算符(Arithmetic Operators)2. 比较运算符(Comparison Operators)3. 赋值运算符(Assignment Operators)4. 逻辑运算符(Logical Operators)5. 位运算符&…

低代码专题 | 什么是低代码?低代码是什么意思?最详细解释!

什么是低代码,低代码是什么意思?低代码到底有什么用?企业该如何用低代码赋能?......因为现在太多碎片化信息了,所以大家对于一个概念的理解都是零散的。 故给大家开一个专题,将低代码给大家掰开揉碎了讲清…

[C++]vector的模拟实现

下面是简单的实现vector的功能,没有涉及使用内存池等复杂算法来提高效率。 一、vector的概述 (一)、抽象数据类型定义 容器:向量(vector)vector是表示大小可以变化的数组的序列容器。像数组一样&#xf…

JavaWeb基础(JQuery,XML及解析)

这个阶段有点拖沓了,因为事情比较多,耽搁了一段时间,学习的主要内容为JQuery和XML,因为vue的出现,JQuery技术现在已经不流行了,但是不流行不代表我不会,JQuery最最最最核心的就是他的$()核心函数…

关于yolov8识别滑块关键点

1,images,annotations创建 IMAGES:放图片材料的 ANNTATIONS:放labelImg标记的xml文件 2,labels,txt怎么来的 labels :可以手动创建,里面还配置了train,val,test文件夹。可手动(以下代码中没有写) txt:由一下代码自动生成,前提是images,annotations需要自己去创建 …

从零入手人工智能(1)——卷积神经网络

1.前言 本人作为一名单片机工程师,近期对人工智能领域产生了浓厚的兴趣,并开始了我的探索之旅。人工智能是一个博大精深的领域,我相信有许多志同道合的朋友也希望涉足这个领域,因此我写下这篇文章,旨在详细记录我学习…

Python 组合序号

import pandas as pd # 创建一个示例数据框 data { group: [A, A, A, B, B, C, C, C, C], value: [3, 1, 2, 5, 4, 6, 9, 7, 8] } df pd.DataFrame(data) # 先按group分组,再按value列升序排序 df_sorted_asc df.sort_values(by[group, value]) # 使…

【JavaEE 进阶(二)】Spring MVC(下)

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多进阶知识 目录 1.前言2.响应2.1返回静态界面2.2返回数据2.3返回HTML代码 3.综合练习3.1计算器3.2用户登…

JAVA小案例-分别计算100以内奇数和偶数的和

JAVA小案例-分别计算100以内奇数和偶数的和 没啥可说的,就是for循环加if分支,也可以用while写。 代码如下: public class Jiouhe {/*** 分别计算100以内奇数和偶数的和* param args*/public static void main(String[] args){int sum10;in…

【CT】LeetCode手撕—146. LRU 缓存

目录 题目1-思路1-1 LRU知识点1-2 实现思路LRU的子数据结构① 双向链表 DLinkedNode 结点定义② 其他字段 LRU实现的方法① 初始化——LRUCache中初始化② public int get(int key) 取元素方法③ public void put(int key, int value) 存元素方法 2-实现⭐146. LRU 缓存——题解…

mysql引入表名称的注意事项

1、遇到问题 mapper中的文件是这样的 解析出来的sql是这样的 sql显示为:select * from ‘tableName’ 2、解决方法 mapper文件种使用${tableName}而不是#{tableName}

用户画像知识点补充——多数据源

引入 针对用户画像项目来说(产品)必须要支持从多种数据源加载业务数据,构建用户标签。 在之前的标签模型开发中,主要是为了简化开发复杂度,业务数据统一存储到HBase表中。 数据源包含如下几个方面: 存储H…