linux学习lesson13

【异常】安装OpenClaw遇到 Windows环境pnpm安装node-llama-cpp postinstall生命周期脚本执行失败完整解决方案 摘要: Windows环境下使用pnpm安装node-llama-cpp时,postinstall脚本执行失败(错误码3221225477),主要因缺少C++编译工具链或预构建二进制下载失败。解决方案: 基础排查:确保管理员权限、Node.js ≥18、路径无中文; 安装编译工具:推荐Visual Studio的“C++桌面开发”组件或windows-build-tools; 环境变量配置:强制CPU模式+国内镜像(NODE_LLAMA_CPP_FORCE_CPU=true,镜像地址替换为国内源); pnp 阅读详情

目录

1 su命令

2 sudo命令

3 限制root远程登录


1 su命令

  • 命令su的格式为su [-] username,-表示把该用户的环境变量也切换
[root@worker1 ~]# su - user3

Last login: Wed Sep 19 06:45:53 CST 2018 on pts/1

[user3@worker1 ~]$ whoami

user3

[user3@worker1 ~]$ id

uid=1111(user3) gid=1100(grp2) groups=1100(grp2),1002(user2)
  • 在root环境下,以user3用户环境在tmp目录创建file5.txt
[root@worker1 ~]# su - -c "touch /tmp/file5.txt" user3

[root@worker1 ~]# ls /tmp/

dir1  dir2  file5.txt  lesson8  lesson9  yum.log
  • 切换到user6,发现没有家目录,可以使用ctrl+d退出
[root@worker1 ~]# su - user6

su: warning: cannot change directory to /home/user6: No such file or directory

-bash-4.2$
  • 将user6的家目录需要文件补全
root@worker1 ~]# mkdir /home/user6

[root@worker1 ~]# ls -al /etc/skel/

total 24

drwxr-xr-x.  2 root root   59 Sep  5 22:52 .

drwxr-xr-x. 75 root root 8192 Sep 19 07:05 ..

-rw-r--r--.  1 root root   18 Nov 20  2015 .bash_logout

-rw-r--r--.  1 root root  193 Nov 20  2015 .bash_profile

-rw-r--r--.  1 root root  231 Nov 20  2015 .bashrc

[root@worker1 ~]# cp /etc/skel/.bash* /home/user6/

[root@worker1 ~]# chown -R user6:user6 /home/user6/

[root@worker1 ~]# su - user6

Last login: Wed Sep 19 07:05:43 CST 2018 on pts/0

[user6@worker1 ~]$

 

2 sudo命令

  • sudo可以不用切换到root用户下,可以临时拥有root权限执行命令,这可以可以避免登录root用户,造成root密码泄露
  • 需要编辑/etc/sudoers文件,增加这个命令权限,不用vi命令,而使用visudo命令编辑,而且还可以检查编辑后文件的语法是否正确

visudo命令编辑配置文件

根据root ALL=(ALL) ALL的模式

增加user3 ALL=(ALL) ALL (ALL)代表获取哪个用户权限,右二ALL 代表所有命令

[user3@worker1 ~]$ ls /root/

ls: cannot open directory /root/: Permission denied

[root@worker1 ~]# visudo //增加user3 ALL=(ALL) ALL

[user3@worker1 ~]$ sudo ls /root/ //第一次使用会有提示



We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:



    #1) Respect the privacy of others.

    #2) Think before you type.

    #3) With great power comes great responsibility.



[sudo] password for user3:

anaconda-ks.cfg  file1.txt.bak    file.txt      hard.txt.bak

dir1         file2.txt.bak    file_windows.txt

限制user3的sudo使用的命令:/bin/ls, /bin/cat,其他的命令会有受限制

修改为:user3 ALL=(ALL) /bin/ls, /bin/cat

[user3@worker1 ~]$ sudo ls /root/

anaconda-ks.cfg  file1.txt.bak    file.txt      hard.txt.bak

dir1         file2.txt.bak    file_windows.txt

[user3@worker1 ~]$ sudo cat /root/file.txt

hello world

[user3@worker1 ~]$ sudo mv /root/file.txt /root/file12.txt //因为mv命令没有授权

Sorry, user user3 is not allowed to execute '/bin/mv /root/file.txt /root/file12.txt' as root on worker1.

设置sudo命令执行命令,免密码输入

修改为:user3 ALL=(ALL) NOPASSWD: /bin/ls, /bin/cat

设置sudo命令中可允许执行的命令限制别名

修改为:Cmmd_Alias AMING_CMD = /bin/ls, /bin/cat

user3 ALL=(ALL) AMING_CMD

如果有多个用户需要设置sudo命令权限,可以将用户加到同一个组里,然后一起配置权限即可

修改为:Cmmd_Alias AMING_CMD = /bin/ls, /bin/cat

%wheel ALL=(ALL) AMING_CMD wheel为组名 AMING_CMD为允许执行的命令

 

3 限制root远程登录

  • 为了服务器安全,一般限制root用户远程登录,这样可以避免泄露root密码
  • 配置文件为/etc/ssh/sshd_config
[root@worker1 ~]# vi /etc/ssh/sshd_config

找到:#PermitRootLogin yes

改为:PermitRootLogin no

[root@worker1 ~]# systemctl restart sshd.service //重启sshd服务,生效

  • 使用putty工具root用户登陆,无法登录

 

扩展
sudo与su比较

http://www.apelearn.com/bbs/thread-7467-1-1.html 
sudo配置文件样例  
www.opensource.apple.com/source/sudo/sudo-16/sudo/sample.sudoers

sudo不错的教程

http://www.jianshu.com/p/51338e41abb7

sudo -i 也可以登录到root吗?  可以,前提是当前的普通用户要在sudoers的配置文件里

10分钟搞定manim安装与vscode配置 manim安装与vscode配置 阅读详情

相关推荐

孤读paper——《GhostNet:More Features from Cheap Operations》

《GhostNet:More Features from Cheap Operations》   发现一个点并解决就是一篇CVPR,该文章主要发现了优秀的网络的特点是feature map提取过程中的冗余性,这种冗余性体现在很多成对的feature map间很像,就好像彼此的“ghost”,而这种特征冗余性对于理解图像来说还是必要的,所以文章把feature map分为两种,一种是本质特征,一...

雄关漫道真如铁 而今迈步从头越 5151

linux创建的新用户没有家目录

在Linux中创建新用户时,如果没有指定创建家目录的选项,那么新用户将没有家目录。要创建一个新用户并为其创建一个家目录,可以使用以下命令: sudo adduser--create-home username 其中,username是新用户的用户名。--create-home选项指示Linux创建一个新的家目录。创建完新用户和家目录后,可以使用以下命令切换到新用户: su - username ...

weixin_42601547的博客 3992

10分钟学会工程领域Hypermesh与Abaqus联立处理大量铆钉连接简化做法

铆钉连接是一种可靠且高强度的机械连接方式,广泛应用于多个领域。但是,工程结构上铆钉连接往往以较大的数量出现,若按照常规的一个个去选择生成,处理1个铆钉连接点需要1分钟来算,300个铆钉需要5个小时,耗费大量的时间成本。给出了一种高效处理铆钉连接的方法,提升效率50倍以上。

qq_34933927的博客 1616

Linux系统使用添加新用户后,没有用户目录(没有home)解决办法

今天给同事在Linux服务器上添加用户,添加完竟然没有home,以前怎么没有这问题,烦恼!!! 添加用户命令:sudo useradd xiaoming(新用户名)。 >sudo useradd xiaoming 设定用户密码:sudo passwd xiaoming(新用户名)。 >sudo passwd xiaoming 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:已成功更新密码 查看一下用户信息:id xiaoming >id xiao

u013053075的博客 3万+

Linux -- 图形界面配置Samba;system-config-samba工具

图形界面配置Samba6.6.1 system-config-sambasystem-config-samba是Red Hat公司专门为Samba服务器管理编写的图形界面的管理工具,通过system-config-samba几乎可以完成对Samba服务器的所有配置,所以在只希望通过Samba服务器实现一些简单的资源共享时,system-config-samba是一个不错的选...

weixin_33695450的博客 2200

VSCode玩转Arduino:手把手解决‘未定义Serial’和头文件找不到的坑

本文详细介绍了在VSCode中配置Arduino开发环境时遇到的‘未定义Serial’和头文件找不到问题的解决方案。通过修改c_cpp_properties.json文件、调整IntelliSense引擎设置以及添加正确的库路径,开发者可以高效解决这些常见错误,提升开发体验。文章还提供了针对不同开发板和平台的高级配置技巧,确保配置的长期有效性。

weixin_42620202的博客 359

linux 创建新用户时没有用户目录

linux 创建新用户时没有用户目录 **问题:**使用 useradd -d /home/user02 user02 创建新用户并指定目录后,用 ls /home 无法看到 user02 的目录。 解决方法: 使用 useradd -m username,在 /home 目录下创建同名文件夹。 先 mkdir /home/username 创建目录,然后使用 useradd -d /home/username username 创建新用户。 useradd选项: -d 目录 指定用户主

ikun的博仔的博客 6805

基于PWM的汽车仪表步进电机微步驱动优化实践

本文深入探讨了基于PWM的微步驱动技术,用于优化汽车仪表步进电机的运行性能。通过将传统的分步驱动升级为PWM微步细分驱动,利用正弦/余弦查表法合成旋转磁场,有效消除了指针抖动与噪声,实现了指针的平滑、精准运动。文章以STM32和VID2905电机为例,提供了详细的硬件连接、代码实现及高级优化技巧,为提升汽车仪表体验提供了实用方案。

weixin_29169505的博客 512

【Linux问题合集003】解决无法创建新用户丨在home目录下看不见用户文件夹丨创建的用户设置密码时报错,当前用户不在 sudoers 列表中丨Ubunt不显示用户名,只显示“$“符号问题

解决无法创建新用户丨在home目录下看不见用户文件夹,【su: 警告:无法更改到 /home/tom 目录: 没有那个文件或目录】丨创建的用户设置密码时报错,当前用户不在 sudoers 列表中丨Ubuntu不显示用户名,只显示"$“符号问题

周周の博客小屋 3788

rockchip rk3566 android11 网口log报错: DMA engine initialization failed

问题描述:上电初始化前将网口插入,然后上电初始化网口能够正常使用,且能够找到PHY,ifconfig 查看能够有eth0 产生,网口正常使用且能够热插拔,但上电初始化时,不插入网口,就会报DMA engine initialization failed 错误,DMA 初始化的时候出错了。 分析:一般产生这个问题可以认为是GMAC 的工作时钟出问题了。先测量时钟引脚是否有时钟,时钟频率以及幅度等指标是否正常,主要确认以下几个方面: 1.IOMUX 出错,检查时钟脚寄存器值是否正确。 2.时钟方向以及配置

qq_48709036的博客 2万+

Transformer实战(2)——循环神经网络详解

循环神经网络 (Recurrent neural networks, RNN) ,RNN 是在文本输入中广泛使用的神经网络。RNN 非常灵活,已被用于解决诸如语音识别、语言建模、机器翻译、情感分析和图像字幕等问题。RNN 利用输入的序列特性,序列输入可以是文本、语音、时间序列以及任何其他元素的出现取决于其前面元素的序列。在本节中,我们介绍了 RNN 及其变体,并学习如何使用 TensorFlow 进行实现。

盼小辉丶的博客 1万+

Linux:使用useradd创建用户后,/home下没有用户主目录

简单的解决办法推荐用adduser如果想用useradd已经使用了useradd删完,确定用户是否存在 推荐用adduser 新建用户:adduser sc 更改密码:passwd sc 查看是否有用户主目录:ls /home或cd /home/sc (注意空格不要漏掉) 如果想用useradd 新建用户:useradd -m sc 更改密码:passwd sc 查看用户主目录:ls /home或cd /home/sc 已经使用了useradd 删除用户: userdel sc 这条命令只能删除用户,但不能

weixin_43410435的博客 1万+

【推荐100个unity插件】皮毛shader着色器 实现可以用动的毛茸茸毛绒绒效果

Unity内置渲染管线毛发着色器实现 摘要:本文介绍了Unity内置渲染管线下的毛发着色器实现方案。该方案通过多层渲染技术模拟毛发效果,支持基础光照模型(环境光、漫反射和镜面反射),提供毛发长度调节功能。主要包含10个渲染通道,采用逐步增加的FURSTEP参数(0.05-0.55)分层渲染毛发,每层使用相同的着色器代码但不同参数值。该实现仅适用于内置渲染管线,不支持毛发动态效果,代码结构简洁,通过FurHelper.cginc包含核心着色逻辑。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2676

linux学习 lesson13kickstart自动安装

一、什么是kickstart 通过上节课的学习,成功创建了虚拟机。但是运行时发现还需要安装系统,而这个过程是非常繁琐和费时的。 这时候可以用到kickstart工具,kickstart能够完成无人执守安装。 二、 ...

飞翔的罗老汉 158

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Lesson13 Linux 账号与群组

一、 UID 与 GID: 每个 Linux 用户有两个 ID, 需要显示文属性时,系统根据 ID 对应的账号与组群名进行显示。 使用者 ID, UserID,即 UID/etc/passwd; 群组 ID,GroupID,即 GID/etc/group。 ...

Gaoithe的博客 288

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Linux lesson1】初识Linux系统

本文系统介绍了Linux操作系统的基础知识和核心概念,分为两大部分。第一部分详细讲解了Linux常用基本指令及其使用方法,包括网络配置、文件与目录操作、文件管理、文本搜索、压缩工具以及文件传输工具。每个指令都提供了语法说明和常用选项,帮助用户快速掌握日常操作。第二部分深入解析了权限管理机制,包括用户分类、权限的表示方法权限修改命令以及权限对不同文件类型的影响。特别强调了粘滞位的概念,解释了其在防止非拥有者删除文件中的重要性。整体内容结构清晰,便于初学者理解和应用Linux系统管理技能。

Dumpling527的博客 1169

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【lesson13】gdb的介绍及使用

gdb的介绍及使用

m0_67077469的博客 180

linux学习lesson36

目录 1 linux任务计划cron 2 chkconfig工具 3 systemd管理服务 4 unit介绍 1 linux任务计划cron Linux任务计划功能的操作都是通过crontab命令来完成的,常用的参数有: -u:表示指定某个用户,不加-u选项则为当前用户 -e:表示制定计划任务 -l:表示列出计划任务 -r:表示删除计划任务 编写任务计划的格式 [ro...

InfiniteIdea_Go的博客 729

linux学习lesson38

目录 1 rsync通过服务同步 2 linux系统日志 3 screen工具 1 rsync通过服务同步 要编辑配置文件/etc/rsyncd.conf 启动服务rsync --daemon [root@linux01 ~]# rsync --daemon 启动后可以查看一下日志,并查看端口是否启动 [root@linux01 ~]# vim /etc/rsyncd.con...

InfiniteIdea_Go的博客 737

linux学习lesson21

目录 1 安装软件包的三种方法 2 rpm包介绍 3 rpm工具用法 4 yum工具用法 5 yum搭建本地仓库 1 安装软件包的三种方法 rpm工具 RPM包是预先在Linux机器上编译并打包的文件,安装非常快捷。但它也有一些缺点,比如安装环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖的情况,卸载包时需要先把依赖的包卸载。如果依赖的包是系统所必需的,就不能卸载这个包,...

InfiniteIdea_Go的博客 442

linux学习lesson14

目录 1 df命令 2 du命令 3 磁盘分区 1 df命令 命令df(disk filesystem的简写)用于查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认以KB为单位显 -i:表示查看inodes的使用状况,如已使用100%,即使磁盘空间有富余,也会提示磁盘空间已满 -h:表示使用合适的单位显示,例如GB -k、-m:分别表示以KB和MB为单位显示 ...

InfiniteIdea_Go的博客 536

[Linux系统编程——Lesson13.自定义shell(讲解原理)]

本文介绍了如何通过Linux系统编程实现一个简易的自定义Shell。主要内容包括:1. 基本功能实现:打印命令提示符、获取用户输入命令、分割命令字符串为参数列表;2. 命令执行机制:使用fork创建子进程,通过execvp执行非内建命令;3. 内建命令处理:单独实现cd、export、echo等需要在父进程执行的命令;4. 关键编程技术:包括环境变量处理、进程管理、字符串分割等。文章提供了完整的代码示例,详细说明了每个功能模块的实现方法,并解释了为何内建命令必须直接在父进程中处理。该Shell模拟了Linu

2401_83386596的博客 896

linux学习lesson31

目录 1 使用w查看系统负载 2 vmstat命令 3 top命令 4 sar命令 5 nload命令 1 使用w查看系统负载 w/uptime 查看系统负载 [root@worker1 ~]# w 15:49:55 up 6:26, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM ...

InfiniteIdea_Go的博客 368

linux学习lesson35

目录 1 iptables规则备份和恢复 2 firewalld的9个zone 3 firewalld关于zone的操作 4 firewalld源于service的操作 1 iptables规则备份和恢复 保存和备份iptables规则 service iptables save //会把规则保存到/etc/sysconfig/iptables [root@worker1 ~]# ...

InfiniteIdea_Go的博客 594

lesson - 13 Linux系统日常管理2

内容概要:1. Linux抓包工具tcpdump 系统自带抓包工具tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80tcpdump -nn -vs0 tcp and port not 22 -c 100 -w 1.capwireshark 在linux下也可以安装 yum install -y wireshark抓包...

weixin_30663471的博客 147

原创 linux下c++ lesson13 运算符重载基础

1-逻辑运算符.cpp #include <iostream> using namespace std; int f1() { cout << "this is f1" << endl; return 0; } int f2() { cout << "this is f2" << endl; return 1; } cla...

Tyeat的博客 194
上一篇: linux学习lesson12
下一篇: linux学习lesson14
InfiniteIdea_Go
博客等级 码龄8年 3粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值