linux系统整理一些工作中常用关于用户,用户组以及文件权限操作的相关命令

news2024/11/28 1:55:14

文章目录

  • 问题:
  • 前言:用户和用户组概念
    • 前言一、用户
    • 前言二、用户组
  • 一、添加用户和用户组
  • 二、查看用户所属组命令、
  • 三、管理用户组
    • 方法一、gpasswd命令
    • 方式二、newgrp命令
    • 方式三、usermod命令
    • 用户组实战:赋予用户root权限
  • 四、文件修改权限命令chmod、chgrp、chown详解
    • 4.1、chmod命令
      • 4.1.1、命令选项
      • 4.1.2、 文字设定法
      • 4.1.3、 数字设定法
    • 4.2 、chown 命令
      • 4.2.1、参数说明:
      • 4.2.1、实例:
    • 4.3、chgrp命令
      • 4.3.1、参数说明:
      • 4.3.2、用法说明:
    • 4.4、结语

问题:

描述:在登录他方服务器时发现是root用户无法操作docker命令,只有docker组才可操作,用以下命令得以解决,后续是一些学习总结。

groups  //查看当前用户所属组 发现组是
sudo gpasswd -a root docker   // 把root用户加到docker组中

前言:用户和用户组概念

前言一、用户

Linux中用户分为三类:超级用户、系统用户、普通用户

超级用户:
root,具有一切操作权力,所以不要轻易在root账户下面对文件进行操作。在Linux在操作系统的字符界面,root账户的提示符为#,在默认情况下,root用户的UID为0.

系统用户:
系统用户是Linux系统正常工作所必需的内建的用户,一般是用于管理服务所用。系统用户不能用来登陆,如bin、daemon、lp等用户。系统用户的UID一般为1~499,它们的shell为/sbin/nologin。

普通用户:
普通用户是为了让使用者能够使用Linux系统资源而建立的,用户新建的账号一般就是普通账号。在Linux操作系统的字符界面,普通用户的提示符为$,且普通用户的UID默认为1000~60000。

前言二、用户组

基本组(私有组):
在创建用户的同时就自动会建一个与用户同名的组。如建立mike用户会同时建立一个mike组,mike这个用户就属于mike组。
附加组(共有组) :用户所属的除基本组外的其他组

一、添加用户和用户组

1、添加用户,首先用adduser命令添加一个普通用户,命令如下:

adduser tommy  //添加用户
passwd tommy   //修改密码
groupadd tom   //创建用户组

二、查看用户所属组命令、

whoami //查看当前用户

id  //查看当前用户信息
[root@www wei]# id wei
uid=1000(wei) gid=1000(wei)=1000(wei),10(wheel)

groups  tom//查看用户所属组
cat /etc/groups  //查看所有用户组
/

三、管理用户组

方法一、gpasswd命令

用法:gpasswd[-a user][-d user][-A user,...][-M user,...][-r][-R]groupname
  参数:
	-a:添加用户到组
	-d:从组删除用户
	-A:指定管理员
	-M:指定组成员和-A的用途差不多
	-r:删除密码
	-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组 


实例1:如何将用户添加到某个组?

gpasswd -a user1 group1

cat /etc/group  //查看
group1:x:1011:user1,user2

实例2:如何替换某个组的所有成员呢?

gpasswd -M user2,user3 group1
cat /etc/group  //查看,组中的用户全部被替换
group1:x:1011:user2,user3

实例3:删除组中的某一用户

gpasswd -d user1 group1

方式二、newgrp命令

newgrp:临时切换当前用户的用户组(修改的这个有效用户组只是临时环境起作用,当关闭此shell后就失效了,相当于临时的环境变量)

在这里插入图片描述

方式三、usermod命令

usermod -g root tommy //修改用户tommy使其属于root组

用户组实战:赋予用户root权限

2、赋予root权限

方法一:
修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉

 %wheel ALL=(ALL) ALL

然后修改用户,使其属于root组(wheel),命令如下:

usermod -g root tommy

修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。

方法二:
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

root ALL=(ALL) ALL
tommy ALL=(ALL) ALL

修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。

方法三: 修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:

tommy:x:500:500:tommy:/home/tommy:/bin/bash
修改后如下
tommy:x:0:500:tommy:/home/tommy:/bin/bash

保存,用tommy账户登录后,直接获取的就是root帐号的权限。

注意:虽然方法三看上去简单方便,但一般不推荐使用,推荐使用方法二。

四、文件修改权限命令chmod、chgrp、chown详解

4.1、chmod命令

chmod [who] [+ | – | =] [mode] 文件名 //修改文件操作权限

4.1.1、命令选项

命令中各选项的含义为:

操作对象who可是下述字母中的任一个或者它们的组合:

u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:

+ 添加某个权限。
– 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
文件名:以空格分开的要改变权限的文件列表,支持通配符。在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example使同组和其他用户对文件example 有读权限。

4.1.2、 文字设定法

例1:

$ chmod a+x sort
即设定文件sort的属性为:
文件属主(u) 增加执行权限
与文件属主同组用户(g) 增加执行权限
其他用户(o) 增加执行权限

例2:

$ chmod ug+w,o-x text
即设定文件text的属性为:
文件属主(u) 增加写权限
与文件属主同组用户(g) 增加写权限
其他用户(o) 删除执行权限

例3:

$ chmod u+s a.out
假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):
–rws--x--x 1 inin users 7192 Nov 4 14:22 a.out
并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw——-”,即该文件只有其属主具有读写权限。

4.1.3、 数字设定法

我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

数字设定法的一般形式为:chmod [mode] 文件名¼

例1:

$ chmod 644 mm.txt
$ ls –l
即设定文件mm.txt的属性为:
-rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt
文件属主(u)inin 拥有读、写权限
与文件属主同组人用户(g) 拥有读权限
其他人(o) 拥有读权限

例2:

$ chmod 750 wch.txt
$ ls –l
-rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt
即设定wchtxt这个文件的属性为:
文件主本人(u)inin 可读/可写/可执行权
与文件主同组人(g) 可读/可执行权
其他人(o) 没有任何权限

4.2 、chown 命令

功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户yusi,为了让用户yusi能够存取这个文件,root用户应该把这个文件的属主设为yusi,否则,用户yusi无法存取这个文件。

语法:chown [选项] 用户或组 文件

4.2.1、参数说明:

user : 新的档案拥有者的使用者 ID
group : 新的档案拥有者的使用者群体(group)
-c : 若该档案拥有者确实已经更改,才显示其更改动作
-f : 若该档案拥有者无法被更改也不要显示错误讯息
-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
-v : 显示拥有者变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本

4.2.1、实例:

例1:把文件yusi123.com的所有者改为yusi。
$ chown yusi yusi123.com

例2:把目录/demo及其下的所有文件和子目录的属主改成yusi,属组改成users。
$ chown - R yusi.users /demo

例如:chown qq /home/qq  (把home目录下的qq目录的拥有者改为qq用户)
例如:chown -R qq /home/qq  (把home目录下的qq目录下的所有子文件的拥有者改为qq用户)

4.3、chgrp命令

功能:改变文件或目录所属的组。

语法:chgrp [选项] group filename¼

4.3.1、参数说明:

-c或–changes 效果类似”-v”参数,但仅回报更改的部分。
-f或–quiet或–silent  不显示错误信息。
-h或–no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose  显示指令执行过程。
–help  在线帮助。
–reference=<参考文件或目录>  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
–version  显示版本信息。
该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。

该命令的各选项含义为:
– R 递归式地改变指定目录及其下的所有子目录和文件的属组。

4.3.2、用法说明:

例1:
$ chgrp - R book /opt/local /book
改变/opt/local /book/及其子目录下的所有文件的属组为book。

4.4、结语

后续相关权限总结待补充。。。。未完待续。。

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

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

相关文章

数字孪生与 UWB 技术创新融合:从单点测量到全局智能化

人员定位是指利用各种定位技术对人员在特定场所的位置进行准确定位的技术。人员定位技术主要应用于需要实时监控、管理和保障人员安全的场所,如大型厂区、仓库、医院、学校、商场等。人员定位技术的应用范围非常广泛,例如:-在工厂生产线上&am…

服务器Nginx安装实战

因为Vue项目发布在Tomcat中出现跨域为,所以需要Nginx进行反向代理,所以特此在云服务器中安装Nginx,本文章记录安装过程及解决安装过程中的错误处理。 一、Nginx 安装 登录服务器后,执行命令 yum info gcc-c pcre pcre-devel zl…

keras lstm

keras lstm的参数(1)units:LSTM层的单元个数,即LSTM网络中隐藏节点的数量。(2)activation:激活函数,用于更新内部状态的函数(即门的决策函数)。(3…

dotConnect Universal 4.0.134 Crack

dotConnect Universal 能够呈现和访问不同于Microsoft 和框架的数据库的信息。网。它能够支持大多数数据库服务器以及 Microsoft Access、Oracle、MySQL、DB2、PostgreSQL、SQLite、InterBase、FireBird,最后是 Microsoft SQL Server。它可以通过 ODBC、OLE DB、ADO…

我来跟你讲vue进阶

一、组件(重点) 组件(Component)是 Vue.js 最强大的功能之一。 组件可以扩展 HTML 元素,封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象…

ThreadLocal 的简单使用并深扒其实现原理

在多线程环境下, 如果想要保证每个线程都能独立于其它线程独自运行, 可以使用 ThreadLocal 来解决; ThreadLocal 就是用于提供线程局部变量的一个工具, 也就是说 ThreadLocal 可以为每个线程创建一个单独的变量副本; 其概念与同步机制正好相反, 同步机制是保证多线程环境下数据…

elasticSearch写入原理

elasticSearch写入原理 最近学习完了es相关的课程整理除了es的核心内容,学习这东西知其然知其所以然,自己按照自己的理解整理了es相关的面试题。先热个身,整理一下es的写入原理,有不对的地方请大家指正。 这些原理的东西我觉得还是…

MySql数据库(进阶篇)

👌 棒棒有言:人生总是在前行,不论走到哪里,只要带着信念往前走,比别人多一点努力,你就会多一份成绩;比别人多一点志气,你就会多一份出息;比别人多一点坚持,你…

js学习3(数组)

目录 结构图 数组操作 每日一练 结构图 数组操作 ## 数组中可以存储任何类型元素 ## 创建: 字面量([...])、创建对象(new Array(arr_len)) ## 遍历: 循环遍历、forEach(callback)、map(callback)、filter(callback)、every(callback)、some(callback)、…

1637_fgets函数的功能

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 没想到分析一个函数的实现会这么麻烦,中间利用的一系列的库函数以及内核接口我全都不熟悉。但是,这次的这个函数应该是之前C语言的基本教程…

vscode下载与使用

1.vscode下载 官网下载地址:Download Visual Studio Code - Mac, Linux, Windows下载太慢,推荐文章:解决VsCode下载慢问题_vscode下载太慢_迷小圈的博客-CSDN博客下载太慢,推荐下载链接:https://vscode.cdn.azure.cn/s…

JavaScript Array(数组)对象

数组对象的作用是:使用单独的变量名来存储一系列的值。参数参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。参数 element ...; elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元…

SEO技术风口来了|SEO能否抓住全球约93%的网络用户?

开篇词作者/出品人 | 美洽 SEO 流量专家 白桦为什么要做一个 SEO 专栏?在一部分人眼中,SEO(搜索引擎优化)已经是老掉牙的玩意儿,在这个信息爆炸的年代,它似乎已经无法承担吸引流量的主要作用。但&#xff…

2023年3月北京/广州/杭州/深圳数据治理工程师认证DAMA-CDGA/CDGP

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

代码随想录算法训练营第二十四天 | 理论基础、 77. 组合

打卡24天,今天学第七章回溯算法,之前已经学过一遍,现在学第二遍,加油。 今日任务 理论基础77.组合 理论基础 什么是回溯 递归的副产物,有递归就会有回溯 红色的箭头就是回溯 回溯的效率 回溯的本质是穷举&#xff…

ROS通信机制

参考: bilibiliAutolabor官方 回调函数:! 由外部中断激发而执行的函数,函数执行的时间不由函数本身控制,而是由外部激发 1、话题通信 ​ publisher发布者,和subscriber订阅者通过topic相互连接&#xf…

设计模式5——自定义Spring框架

1、Spring核心功能结构 Spring大约有20个模块,由1300多个不同的文件构成。这些模块可以分为:核心容器、AOP和设备支持、数据访问与集成、Web组件、通信报文和集成测试等。下面是Spring框架的整体架构图: 核心容器由beans、core、context 和 …

Vue脚手架的安装(保姆级教程)

Vue脚手架的安装(保姆级教程) 文章目录Vue脚手架的安装(保姆级教程)1.下载vscode2.node下载5.Vue脚手架的安装6.创建Vue项目7.项目的运行1.下载vscode vscode下载地址 2.node下载 node下载 1.打开cmd node -vnpm -v2.在node的…

linux入门---vim的配置

这里写目录标题预备知识如何配置vimvim一键配置预备知识 在配置vim之前大家首先得知道一件事就是vim的配置是一人一份的,每个用户配置的vim都是自己的vim,不会影响到其他人,比如说用户xbb配置的vim是不会影响到用户wj的,虽然不同…

开源写作平台WriteFreely(折腾篇)

设置向导 除了直接修改 config.ini 之外,你还可以进入容器用命令行进行设置 在 SSH 客户端执行下面的命令 # 生成 config.ini docker exec -it writefreely ./writefreely --config也可以通过群晖的 终端机 一步一步跟着填入就可以了,但是需要说明的是…