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:专…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...