Ubuntu - 用户和权限
sudo
sudo
(Super User Do)是在Linux和Unix系统中用于执行具有超级用户(root)权限的命令的命令。它允许普通用户以特权身份运行特定命令,通常需要输入密码以确认其身份。
sudo
是一种安全的方式,用于限制哪些用户可以执行特权操作,以减少潜在的系统损害。通常,只有系统管理员或有需要的用户才能使用 sudo
。
以下是一些 sudo
命令的常见用法:
- 以超级用户(root)身份运行单个命令:
sudo command_to_run
例如,要以超级用户权限安装软件,你可以运行:
sudo apt-get install package_name
- 切换到超级用户(root)模式:
sudo -i
这将打开一个新的Shell会话,将以超级用户身份运行所有命令。要退出超级用户模式,只需输入 exit
。
- 编辑系统文件:
sudo nano /etc/file_to_edit
这将以超级用户权限使用文本编辑器打开文件以进行编辑。你可以使用 vim
、nano
或其他文本编辑器。
- 管理系统服务:
sudo systemctl start|stop|restart service_name
这将启动、停止或重启特定系统服务。
- 管理用户和组:
sudo useradd new_username
sudo userdel existing_username
sudo usermod -aG group_name username
这些命令用于管理用户和组,以及将用户添加到组中。
使用 sudo
时要小心,因为拥有超级用户权限的用户可以对系统进行故障排除和更改,而错误的操作可能导致系统不稳定。在使用 sudo
时,请确保知道你在做什么,并仔细阅读所要运行的命令,以避免不必要的风险。
useradd
useradd
命令来创建新用户,但它不会自动为用户分配home目录或设置密码。以下是使用 useradd
命令创建用户的基本语法:
sudo useradd [options] username
options
:可以包括一些选项,用于指定用户的详细信息,如家目录、默认Shell等。username
:要创建的新用户的用户名。
以下是一些常用的 useradd
选项:
-m
:自动为用户创建家目录。-s
:指定用户的默认Shell。例如,-s /bin/bash
会将用户的默认Shell设置为Bash。-G
:指定用户要加入的附加组。多个组可以用逗号分隔。-d
:指定用户的家目录路径。-p
:指定用户的加密密码。密码通常使用passwd
命令设置,而不是直接在useradd
命令中指定密码。
以下是一个示例,创建一个名为 “newuser” 的新用户,并为其分配家目录:
sudo useradd -m newuser
接下来,使用 passwd
命令为新用户设置密码:
sudo passwd newuser
输入新密码,然后再次确认密码。
如果需要为新用户添加到其他组,可以使用 -G
选项:
sudo useradd -m -G group1,group2 newuser
创建新用户后,新用户将能够使用其用户名和密码登录到系统,以及访问其家目录。请注意,管理用户和密码时要小心,确保密码强度和安全性。
passwd
passwd
是一个用于更改用户密码的命令,或者具有管理员权限的用户可以更改其他用户的密码。以下是 passwd
命令的一些常见用法:
- 更改当前用户的密码:
用户可以使用 passwd
命令来更改自己的密码。在终端中,只需键入:
passwd
然后按照提示输入当前密码,然后输入新密码两次。
- 更改其他用户的密码:
如果有管理员权限,可以使用 passwd
命令来更改其他用户的密码。在终端中,使用以下命令:
sudo passwd username
其中 username
是要更改密码的用户的用户名。然后按照提示输入新密码两次。
- 强制用户更改密码:
如果需要强制用户在下次登录时更改密码,使用以下命令:
sudo passwd -e username
这将使用户的密码在下次登录时过期,用户将被要求立即更改密码。
- 查看用户密码策略:
使用以下命令来查看密码策略的详细信息:
sudo chage -l username
这将显示密码过期日期、最小和最大密码年龄等信息。
- 锁定用户账户:
使用以下命令来锁定用户账户,使用户无法登录:
sudo passwd -l username
要解锁用户账户,使用以下命令:
sudo passwd -u username
chmod
chmod
用于更改文件或目录权限的命令。用来分配或更改文件的访问权限,以确定哪些用户或用户组可以读取、写入或执行文件。 chmod
命令可以通过符号模式或八进制模式进行操作。以下是一些常见的 chmod
命令用法:
符号模式:
-
添加权限:
chmod +[权限] [文件名]
例如,要添加执行权限给文件
file.txt
,可以使用:chmod +x file.txt
-
删除权限:
chmod -[权限] [文件名]
例如,要删除写入权限从文件
file.txt
,可以使用:chmod -w file.txt
-
设置权限:
chmod [权限] [文件名]
例如,要将文件
file.txt
的权限设置为读取和写入,可以使用:chmod rw file.txt
-
同时设置多个权限:
chmod [权限1][权限2] [文件名]
例如,要为文件
file.txt
设置读取和执行权限,可以使用:chmod rx file.txt
八进制模式:
-
分配权限:
chmod [八进制权限] [文件名]
在八进制模式中,每个权限都用数字表示,如下所示:
- 4:读权限
- 2:写权限
- 1:执行权限
例如,为了将文件
file.txt
的权限设置为读取和写入权限,可以使用:chmod 600 file.txt
-
递归更改权限:
递归更改目录及其子目录的权限,使用
-R
或--recursive
选项:chmod -R [权限] [目录名]
例如,要递归地将目录
mydir
及其所有子目录中的文件的权限设置为只读,可以使用:chmod -R 444 mydir
更改文件或目录的权限时要小心,确保不会破坏系统或文件的安全性。通常,只有系统管理员或文件的所有者应具有更改权限的权利。
chown
chown
用于更改文件或目录的所有者和组的命令。分配文件的所有者(user)和组(group)权限。以下是一些常见的 chown
命令用法:
更改所有者:
sudo chown [新用户] [文件名/目录名]
新用户
是要将文件或目录的所有权分配给的用户名。
例如,要将文件 file.txt
的所有权更改为用户 newuser
,可以使用:
sudo chown newuser file.txt
更改组:
sudo chown :[新组] [文件名/目录名]
新组
是要将文件或目录的组权限分配给的组名。
例如,要将文件 file.txt
的组权限更改为组 newgroup
,可以使用:
sudo chown :newgroup file.txt
更改所有者和组:
sudo chown [新用户]:[新组] [文件名/目录名]
新用户
是新的文件或目录所有者的用户名。新组
是新的文件或目录组的组名。
例如,要将文件 file.txt
的所有者更改为 newuser
并将组更改为 newgroup
,可以使用:
sudo chown newuser:newgroup file.txt
递归更改权限:
递归地更改目录及其子目录中的文件的所有者和组,可以使用 -R
或 --recursive
选项:
sudo chown -R [新用户]:[新组] [目录名]
例如,要递归地将目录 mydir
及其所有子目录中的文件的所有者和组设置为 newuser
和 newgroup
,可以使用:
sudo chown -R newuser:newgroup mydir
请小心使用 chown
命令,确保有足够的权限来更改文件或目录的所有者和组。通常,只有系统管理员或文件的所有者应具有更改所有者和组的权利。
groups
groups
命令用于查看当前用户属于哪些用户组(组名)。在Unix、Linux和类Unix系统中,每个用户可以同时属于一个或多个用户组。
要查看当前用户属于的用户组,只需在终端中输入以下命令:
groups
系统将列出当前用户所属的所有用户组。
例如,如果输出包含以下内容:
user adm cdrom sudo dip plugdev lpadmin sambashare
这表示用户 user
同时属于 adm
、cdrom
、sudo
、dip
、plugdev
、lpadmin
和 sambashare
这些用户组。每个组在系统中通常有特定的权限和访问控制。
使用 id
命令来查看用户的详细信息,包括用户的 UID(用户标识符)、GID(组标识符)、主组以及其他附加组:
id
这将显示包括用户和组的详细信息。
su
su
用于切换用户身份。通常,它用于从当前用户切换到另一个用户,通常是超级用户(root)或其他普通用户。以下是 su
命令的基本用法:
切换到超级用户(root):
su
当运行 su
命令而不指定要切换到的用户时,默认情况下,它会尝试切换到超级用户(root)身份。需要输入超级用户的密码,以获得超级用户的权限。在某些系统上,需要明确使用 su -
以获取完整的超级用户环境。
su -
切换到其他用户:
使用 su
命令切换到其他普通用户的身份。例如,要切换到用户 newuser
的身份,可以运行:
su newuser
然后,输入 newuser
用户的密码以获得其权限。
切换用户并启动Shell:
通常,su
命令还可以用于切换用户并启动新的Shell会话,以执行一系列命令。例如:
su - newuser -c "command_to_run"
这将切换到用户 newuser
的身份,然后运行指定的命令。
su
命令通常需要超级用户权限,因此需要输入超级用户密码。在某些系统上,用户帐户必须在超级用户(root)的 /etc/sudoers
文件中配置为允许使用 su
命令。此外,su
命令的使用可能会受到系统和安全策略的限制。通常情况下,建议使用 sudo
来执行特权操作,因为它允许有更精细的权限控制。
相关文章:
Ubuntu - 用户和权限
sudo sudo(Super User Do)是在Linux和Unix系统中用于执行具有超级用户(root)权限的命令的命令。它允许普通用户以特权身份运行特定命令,通常需要输入密码以确认其身份。 sudo 是一种安全的方式,用于限制哪…...

JAVA实现Jfilechooser搜索功能
JAVA实现Jfilechooser搜索功能 背景介绍需求描述思路和方法Java代码实现和注释相关知识点介绍视频演示结语 背景介绍 Java是一种面向对象的编程语言,广泛应用于各种应用程序开发中。文件搜索是我们在日常工作或者学习中经常会遇到的需求,比如查找某个文…...

iOS上架App Store的全攻略
第一步:申请开发者账号 在开始将应用上架到App Store之前,你需要申请一个开发者账号。 1.1 打开苹果开发者中心网站:Apple Developer 1.2 使用Apple ID和密码登录(如果没有账号则需要注册),要确保使用与公…...

线性代数3:矢量方程
一、前言 欢迎回到系列文章的第三篇文章,内容是线性代数的基础知识,线性代数是机器学习背后的基础数学。在我之前的文章中,我介绍了梯队矩阵形式。本文将介绍向量、跨度和线性组合,并将这些新想法与我们已经学到的内容联系起来。本…...

线性代数的本质笔记
课程来自b站发现的《线性代数的本质》,可以帮助从直觉层面理解线性代数的一些基础概念,以及把一些看似不同的数学概念解释之后,发现其实有内在的关联。 这里只对部分内容做一个记录,完整内容请自行观看视频~ 01-向量究竟是什么 …...

[SQL | MyBatis] MyBatis 简介
目录 一、MyBatis 简介 1、MyBatis 简介 2、工作流程 二、入门案例 1、准备工作 2、示例 三、Mapper 代理开发 1、问题简介 2、工作流程 3、注意事项 4、测试 四、核心配置文件 mybatis-config.xml 1、environment 2、typeAilases 五、基于 xml 的查询操作 1、…...

FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
一、FreeRTOS 介绍 什么是 FreeRTOS ? Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。 注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,Fr…...

zookeeper(目前只有安装)
安装 流程 学kafka的时候安装 Apache ZooKeeper 安装地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz 解压 tar -zxvf kafka_2.12-3.0.0.tgz -C /export/server/ 改配置 cd config cp zoo_sample.cfg z…...

点云cloudpoint生成octomap的OcTree的两种方法以及rviz可视化
第一种:在自己的项目中将点云通过ros的topic发布,用octomap_server订阅点云消息,在octomap_server中生成ocTree 再用rviz进行可视化。 创建工作空间,记得source mkdir temp_ocotmap_test/src cd temp_ocotmap_test catkin_make…...

Python---死循环概念---while True
在编程中一个靠自身控制无法终止的程序称为“死循环”。 在Python中,我们也可以使用while True来模拟死循环: 代码: while True: print(每天进步一点点) 图示 应用: 比如,在测试里面,自动化测试用例…...
ElasticSearch容器化从0到1实践(问题汇总)
文章目录 ik插件如何安装?6.8.0版本JVM参数调整 ik插件如何安装? ik插件(中文分词插件)无法直接通过install指定插件名称的方式进行安装,可以通过指定zip包的方式对插件进行安装,需要注意的是通过zip包方式…...

01、Python 安装 ,Pycharm 安装
目录 安装安装 Python安装 Pycharm 创建项目简单添加文件运行 简单爬取下载小视频 安装 python-3.8.10-amd64.exe – 先安装这个 pycharm-community-2022.2.exe 再安装这个 安装 Python python-3.8.10-amd64.exe 安装(这个是其他版本的安装,步骤一样…...

从输入URL到展示出页面
目录 了解URL 1. 输入URL 2. 域名解析 3. 建立连接 4. 服务器处理请求: 5. 返回响应: 6. 浏览器解析HTML: 7. 加载资源: 8. 渲染页面: 9. 执行JavaScript: 10. 页面展示: 从输入URL到…...

【C++】哈希的应用 -- 位图
文章目录 一、位图的概念二、位图的实现三、库中的 bitset四、位图的应用五、哈希切割 一、位图的概念 我们以一道面试题来引入位图的概念: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中 我…...

系列二、IO流原理及流的分类
一、概述 IO是Input、Output的缩写,IO流技术是非常实用的技术,用于处理数据传输,例如读写文件,网络通讯等。在Java程序中,对于数据的输入/输出操作以"流(stream)"的方式进行ÿ…...
【算法教程】排列与组合的实现
数据准备 在讲排列与组合之前,我们先定义数据元素类型Fruit class Fruit{constructor(name,price){this.name namethis.price price} }排列 对N个不同元素进行排序,总共有多少不同的排列方式? Step1: 从N个元素中取1个,共N种…...

uniapp实现简单的九宫格抽奖(附源码)
效果展示 uniapp实现大转盘抽奖 实现步骤: 1.该页面可设置8个奖品,每个奖品可设置中奖机会的权重,如下chance越大,中奖概率越高(大于0) // 示例代码 prizeList: [{id: 1,image: "https://img.alicdn…...

C++设计模式_09_Abstract Factory 抽象工厂
与上篇介绍的Factory Method工厂方法模式一样,Abstract Factory 抽象工厂模式也属于典型的“对象创建模式”模式,解决的问题也极其相似,在理解了Factory Method工厂方法模式的基础上再去理解Abstract Factory 抽象工厂模式就会变得更加容易。…...
一些前端面试思考
回流和重绘 先牢记这句话,回流必将引起重绘,而重绘不一定会引起回流。回流的代价要远大于重绘。 当你给一个元素更换颜色,这样的行为是不会影响页面布局的,DOM树不会变化,但颜色变了,渲染树得重新渲染页面&…...
Spring MVC(上)
1、Spring MVC简介: MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...