Linux中修改用户UID和组GID的方法
我在部署nfs的时候,共享了一个文件夹。为了让远程nfs客户端挂载这个文件夹的时候都有可读写权限,我需要把服务器上的用户uid、gid设置成nfs服务端文件夹一样的权限。不过因为之前新建的用户uid、gid都是系统自动生成的,几台服务器之前某个用户的uid、gid可能都不一样,所以现在需要把这个uid、gid都设置成统一某个值。
修改用户uid和组gid的命令分别是usermod和groupmod,思路很简单。先使用usermod修改用户的uid,然后使用groupmod修改组的gid,最后使用chown和chgrp命令修改原来用户文件和目录的属主属组。例如测试用户foo和测试组foo。
1234foo old UID: 1005foo new UID: 2005foo old GID: 2000foo new GID: 3000
命令:1、修改foo用户的uid1usermod -u 2005 foo
2、修改foo组的gid1groupmod -g 3000 foo
3、foo用户的家目录下面的文件属主和属组会在1、2命令执行后自动修改成新的uid、gid对应的属主属组,但是其他文 ...
Linux中的SSH密钥登录连接
简单两步走如果不想看那么多原理,可以简单两步走
输入以下命令
12345ssh-keygencd .sshcat id_rsa.pub >> authorized_keyschmod 600 authorized_keyschmod 700 ~/.ssh
下载对应密钥id_rsa即可,后续就可以密钥登录
设置 SSH 通过密钥登录
我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。其实,有一个更好的办法来保证安全,而且让你可以放心地用 root 账户从远程登录——那就是通过密钥方式登录。密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。下面来讲解如何在 Linux ...
Linux 安装CUDA 及 更新CUDA
CUDA 更新先装 CUDA [下载地址],老版本的 CUDA 不用删掉,直接让管理员将 cuda 软连接到最新的 CUDA 就行了,以防有些代码需要低版本 CUDA,所以我们可以在多个CUDA版本进行切换。
再装驱动 [驱动下载地址],安装过程会提示说检测到老版本驱动,直接卸载就行了。(但是在Linux中,我们只需要安装CUDA,里面会自带驱动安装,不需要重新安装驱动)
CUDA 安装CUDA 简介CUDA 是由 Nvidia 公司开发的并行计算平台和应用程序接口,软件开发者可以利用支持 CUDA 软件的 GPU 进行通用计算。CUDA 可以直接链接到 GPU 的虚拟指令集和并行计算单元,从而在 GPU 中完成内核函数的计算。CUDA 提供 C/C++/Fortran 接口,也有许多高性能计算或深度学习库提供包装后的 Python 接口。开发者们可根据实际需要 (高性能计算, 深度学习, 神经网络等) 选择适当的编程语言。
CUDA 安装步骤一般而言,在 Linux 下安装和使用 CUDA 的流程如下:
安装 NVIDIA Driver,即显卡驱动
安装 CUDA Toolkit
...
Linux创建用户、设置密码
创建用户由于每台服务器都需要连接到 NAS,而且可能很多用户在不同的服务器上都有账号,这样的话就会导致 uid 冲突(不同服务器上不同用户的 uid 可能是一样的),因此,针对不同情况需要用到不同添加用户的方法:
该用户为新同学,说明他之前在其他服务器上没有账号,因此,先在 NAS 上为他开一个账号确保 uid 唯一性,再根据这个 uid 去其他的服务器上进行开号。
该用户在其他服务器上有账号,那就直接根据他的 uid 进行开号,无需再经过一遍 NAS。
开号方式使用命令 useradd ,默认情况下直接 useradd user1 就可以了,用户目录为 /home/user1,但是考虑到服务器硬盘容量有限,最好将其划分到具有更大空间的目录如 /data,因此使用如下命令进行自定义添加用户在服务器中,可以通过 df -h 来查看磁盘空间,默认uid和gid为同一个
12$ groupadd user1 -g [gid]$ useradd -u [uid] -g [gid] -d /data/user1 -m -s /bin/bash user1
选项
含义
-u U ...
Linux安全配置Fail2ban
风险暴露所有连接到互联网的服务器都面临恶意软件攻击的风险。连接到互联网的软件可能成为攻击者蛮力尝试的目标,试图访问应用程序。
使用Fail2ban工具Fail2ban是一个开源工具,可帮助保护Linux免受暴力攻击和其他自动攻击。它通过监视服务日志中的恶意活动来工作,使用正则表达式扫描日志文件。
工作原理
扫描日志文件,匹配特定模式的记录。
计数匹配记录,当数量达到预定义阈值时采取措施。
在指定时间段内禁止有问题的IP。
默认使用系统防火墙阻止被禁止IP的访问。
禁止期限到期后,IP地址将从禁止列表中删除。
安装和配置Fail2ban如果需要更新和升级服务器,执行以下命令:123sudo apt-get updatesudo apt-get upgradesudo apt-get install -y fail2ban
在root状态下,编辑Fail2ban的配置文件:1vim /etc/fail2ban/jail.local
配置文件内容如下(注意修改ssh端口和sshd日志路径):12345678910111213[sshd]port = 2223enabled = truefi ...
Linux常用技巧及命令(不断更新)
常用命令
命令
command
查看 GPU 使用状态
nvidia-smi
gpustat -i (需 pip install gpustat)
nvitop(需pip install nvitop)
查看进程
top、htop、ps -ef
grep [pid]
查看服务器磁盘容量
df -h
查看自己占用服务器的容量
du -h
查看当前目录下文件个数 (不包含子目录)
ls -l
grep “^-“
wc -l
查看端口占用 (Linux)
lsof -i:PORT (没有空格)
查看端口占用 (Windows)
查看所有开放端口: netstat -ano 查看占用端口程序的 PID:netstat -aon
findstr “PORT” 查看占用端口的 PID 所对应的程序:tasklist
findstr “PID” 杀死占用端口的进程:taskkill /T /F /PID “PID”
Linux的Vim常用快捷键https://www.runoob.com/w3cnote/all-vim-cheatsheat.html
...
Linux服务器联网攻略
背景学校的个人账号只能在一台设备上进行认证联网,但是我们使用的 GPU 服务器经常需要访问互联网,在服务器上认证之后我们自己的电脑就会掉线,所以可以通过代理的方式让服务器通过我们自己的设备进行联网,解决这个问题。以下所有的方法,实际上让服务器可通过代理本地网络上网(解决服务器连不上网时使用)
此文档是借鉴实验室的师兄的文档完善而来,在这里感谢木子李!!!
设置http代理首先在自己本机电脑上,查看自己的ip地址,在当前终端进行输入123export http_proxy=http://ip:7890export https_proxy=https://ip:7890curl cip.cc # 有输出说明成功代理到了若希望不用每次终端都需要设置,也可以把export的部分写入~/.bashrc中,设置后进行source ~/.basrc即可
这里面的7890端口是通过clash进行转发的,可以进行下载clash
除此之外,也需要设置代理软件才能让服务器访问到网络,在 clash 中打开 Allow LAN, v2ray 中打开 允许局域网的连接 就行了。这样我们的设备可以访问的东西 ...
Linux服务器之间文件传输
SCP命令正常情况下使用SCP命令12# 将服务器文件传输到本地scp -r user@ip:服务器文件夹 本地文件夹12# 将本地文件传输到服务器scp -r 本地文件夹 user@ip:服务器文件夹
使用密钥使用密钥时,需要添加一个-i的参数,并输入对应密钥的密码即可1scp -i 对应密钥地址 -r user@ip 本地文件夹如果出现Permissions 0644错误,则运行chmod 400修改一下权限即可1chmod 400 密钥地址
增加端口port1scp -r -i 对应密钥地址 -P 端口号 user@ip:服务器文件夹 本地文件夹
Linux的 shell无法自动补全命令
在ubuntu上使用useradd新建了一个用户,发现用新建的用户登陆无法使用tab键补全,这个问题是否让人恼火,所以来解决一下。
一、问题这是因为shell的解释器不是bash,需把shell的解释器更改为bash
二、两种解决方法1)方式一
新建一用户lqding,切换到该用户下
123root@lqding:~# su - lqding$ echo $USERlqding
提示符仅仅是一个$ ,很奇怪。输入命令,用TAB键也无法补全命令。并且没有命令历史功能。
使用root用户看passwd文件
123root@lqding:~# grep lqding /etc/passwdlqding:x:1000:1000::/home/lqding:/bin/shroot@lqding:~#
原来lqding用户默认的shell是/bin/sh 将其改为/bin/bash后
12345root@lqding:~# vi /etc/passwdroot@lqding:~# grep lqding /etc/passwdlqding:x:1000:1000::/home/lqding:/bi ...
Linux配置 Rsyslog 服务器
如何在 Ubuntu 上设置 Rsyslog 服务器 – Digitalixy.com
日志文件和Rsyslog简介日志文件是用于保存系统活动信息的文件,包括授权和访问尝试、启动和关闭尝试,以及服务的启动和关闭。不同类型的活动有不同的日志文件。Rsyslog是一款开源程序,用于配置Linux操作系统的日志服务器和客户端。在这一部分,将在 Ubuntu 操作系统上设置 Rsyslog 服务器。 我们将使用两台 Ubuntu 机器。在一台 Ubuntu 机器上,我们将 Rsyslog 配置为日志服务器,在另一台机器上; 我们将 Rsyslog 配置为将日志发送到 Rsyslog 服务器的客户端。
在Ubuntu上配置Rsyslog服务器在这一部分,我们将在两台Ubuntu机器上设置Rsyslog服务器。一台机器将被配置为Rsyslog服务器,另一台机器将被配置为将日志发送到Rsyslog服务器的客户端。
安装Rsyslog如果Rsyslog未安装,可以通过以下命令进行安装:1sudo apt install rsyslog在安装过程中,它会提示您 是/否 用于继续安装 Rsyslog 的选 ...