Linux 服务器个性化配置

CentOS历史版本镜像地址

https://mirrors.aliyun.com/centos-vault/

http://mirror.nsc.liu.se/centos-store

linux 下通过smbclient访问windows共享目录

apt-get install smbclient cifs-utils
# 把smb共享目录挂载本地,需要安装smbfs(已替换为cifs-utils)才可以挂载samba共享
mount.cifs //192.168.1.2/smb_share/ /media/smb/ -o iocharset=utf8,username=smb_user,password=smb_user_passwd
mount.cifs //192.168.1.2/down/ /media/smb/ -o iocharset=utf8,username=Allen,password=smb_user_passwd

1,列出某个IP地址所提供的共享文件夹
smbclient -L 198.168.1.2 -U username -W domain (会提示输密码)
smbclient -L 198.168.1.2 -U username%password -W domain

2,像FTP客户端一样使用smbclient
smbclient //192.168.1.2/down -U Allen
smbclient //192.168.1.2/tmp -U username -W domain (会提示输密码)
smbclient //192.168.1.2/tmp -U username%password -W domain

执行smbclient命令成功后,进入smbclient环境,出现提示符: smb:/>
这里有许多命令和ftp命令相似,如cd、lcd、get、megt、put(只能上传Linux当前文件夹文件)、mput等。通过这些命令,我们可以访问远程主机的共享资源。
![shell command] 执行所用的SHELL命令,或让用户进入SHELL提示符

3,直接一次性使用smbclient命令,创建一个共享文件夹
smbclient -c "mkdir share1" //192.168.1.2/tmp -U username%password
如果用户共享//192.168.1.2/tmp的方式是只读的,会提示
NT_STATUS_ACCESS_DENIED making remote directory /share1

oh-my-zsh

Installing ZSH

Ubuntu

apt install zsh

MacOS

brew install zsh zsh-completions

切换到zsh

zsh --version

chsh -s $(which zsh)

安装oh-my-zsh

via curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

via wget

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

使用Mondo Rescue 备份Linux系统为ISO(类似win的ghost)

https://www.csdn.net/gather_26/MtjaUgwsOTc3Mi1ibG9n.html

Ubuntu软件包下载

wget http://mondo.mirror.pclark.com/ftp/pub/mondorescue/ubuntu/16.04/libmondorescue-perl_3.3.0-1_all.deb
http://mondo.mirror.pclark.com/ftp/pub/mondorescue/ubuntu/16.04/

安装依赖

apt install syslinux libperl-yaml

按顺序安装

dpkg -i libprojectbuilder-perl_0.15.3-1_all.deb
dpkg -i libmondorescue-perl_3.3.0-1_all.deb
dpkg -i mindi-busybox_1.25.1-1_amd64.deb
dpkg -i mindi_3.3.0-1_amd64.deb
dpkg -i mondo_3.3.0-1_amd64.deb

常用exclude的目录

/var/cache/mondo|/tmp|/proc|/mnt

备份完成挂载镜像安装,在boot下输入nuke

CentOS 7进入单用户

引导模式下按e,在Linux16~UTF-8引导后添加

rw init=/bin/sh

按 CTRL+X 进入单用户模式,修改密码后,

# 更新系统信息
touch / .autorelabel

# 退出单用户模式
exec /sbin/init

关闭SELinux

vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled

CentOS设置静态IP

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0

BOOTPROTO=static

ONBOOT=yes
IPADDR=192.168.1.88
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=192.168.1.1
DNS2=8.8.8.8
DNS3=223.5.5.5
service network restart

Ubuntu 设置静态ip

设置IP

VM NAT 网关ip为.2,.1作为回环地址了

sudo vim /etc/network/interfaces
# set static ip
auto enp3s0
iface enp3s0 inet static
address 10.0.0.6
gateway 10.0.0.2
netmask 255.255.255.0
broadcast 10.0.0.255

设置DNS,最好把路由也加上,修改/etc/resolv.conf文件重启内容会消失

sudo vim /etc/resolvconf/resolv.conf.d/base
nameserver 10.0.0.2
nameserver 114.114.114.114
nameserver 8.8.8.8

重启网络服务,不行就重启电脑

sudo service networking restart

修改默认源

# Ubuntu
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

vim /etc/apt/sources.list
:%s/security.ubuntu/mirrors.aliyun/g
:%s/archive.ubuntu/mirrors.aliyun/g

# parrotos
vim /etc/apt/sources.list.d/parrot.list
deb http://mirrors.ustc.edu.cn/parrot parrot main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/parrot/ parrot main contrib non-free
deb https://mirrors.shu.edu.cn/parrot/ parrot main contrib non-free

sed -i 's/mirror.parrot.sh\/mirrors\/parrot/mirrors.ustc.edu.cn\/parrot/g' /etc/apt/sources.list.d/parrot.list

kali更新源

修改 /etc/apt/sources.list , 将相关 url 改成阿里云的源。

sed -i "s/http.kali.org/mirrors.ustc.edu.cn/g" /etc/apt/sources.list

# aliyun
deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib

# ustc
deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

kali nethunter开启vnc

# vncstart
#!/bin/bash
export SHELL=/bin/bash
vncserver :1 -localhost no -geometry 2252x1080 && echo "Closing terminal in 2 secs" && sleep 2 && exit

# vncstop
vncserver -kill :1 && echo "Closing terminal in 2 secs" && sleep 2 && exit

ustc.edu.cn/kali kali-rolling InRelease' is not signed

Kali Linux由于太长时间未更新,密钥过期了,更新密钥即可。

# 1
wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add

# 2
# couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6
sudo su
gpg --keyserver pgp.mit.edu --recv-keys ED444FF07D8D0BF6
# gpg: key ED444FF07D8D0BF6: public key "Kali Linux Repository <devel@kali.org>" imported
gpg --armor --export ED444FF07D8D0BF6 | apt-key add -

# 3
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2018.1_all.deb
apt install ./kali-archive-keyring_2018.1_all.deb

# 3
apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 7D8D0BF6

更新

sudo apt update

ubuntu 安装kvm

VMware vm需要开启CPU虚拟化功能(intel-VT-x | AMD-v)

检查系统是否开启虚拟化

egrep 'vmx|svm' /proc/cpuinfo --color=auto
sudo apt-get install qemu-kvm -y
sudo apt-get install qemu -y
sudo apt-get install virt-manager -y
sudo apt-get install virt-viewer -y
sudo apt-get install libvirt-bin -y 
sudo apt-get install bridge-utils -y

Linux 免密登陆

生成密钥

ssh-keygen -t rsa

拷贝公钥

ssh-copy-id -i ~/.ssh/id_rsa.pub romte_ip

# 2
scp -p ~/.ssh/id_rsa.pub root@remote_ip:/root/.ssh/authorized_keys

sshd_config配置

AuthorizedKeysFile %h/.ssh/authorized_keys

PubkeyAuthentication yes

ssh掉线问题

ClientAliveInterval 15
ClientAliveCountMax 45000

普通用户无法免密登陆

普通用户需要在自己的用户主目录下复制一份.ssh文件夹

/var/log/secure查看报错信息

Authentication refused: bad ownership or modes for directory /opt/bs

权限问题,用户权限和组权限都要设置对才行. 正确的权限设置如下, 权限不能过高也不能过低:

chmod g-w /home/your_user   # 或 chmod 755 /home/your_user   
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys

设置用户执行 sudo 免密

sudo useradd -s /bin/bash -d /opt/stack -m stack
passwd stack

echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo su - stack
# 增加写权限
chmod u+w /etc/sudoers

# vim /etc/sudoers
# %wheel用户组 NOPASSWD 免密配置
%wheel  ALL=(ALL)       NOPASSWD:ALL

lab ALL=NOPASSWD: ALL

ps:这里说下你可以sudoers添加下面四行中任意一条
youuser            ALL=(ALL)                ALL
%youuser           ALL=(ALL)                ALL
youuser            ALL=(ALL)                NOPASSWD: ALL
%youuser           ALL=(ALL)                NOPASSWD: ALL

Linux权限文件夹配置

改变所有者(chown)和用户组(chgrp)命令

# 把 rest 目录授权给 javaz 用户
chown -R javaz rest/

# 把用户添加到 git 组中
# usermod ‐g 组名 用户名
usermod -G git javaz

# javaz 属于之前 git 组,也属于 www 组
usermod -a -G www javaz

# 赋予 rest 权限rwxr-xr-x
chmod 755 rest

# 改变 rest 的所有者为 javaz
chown javaz rest

# 改变 rest 目录及其下面所有的文件和目录的所有者是root
chown ‐R root ./rest

# 改变该用户登录的初始目录
usermod ‐d 目录名 用户名

# 改变 rest 所属的组为 root
chgrp root rest

# 同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u=rwx,g=rx,o=rx rest

# 给 rest 去除用户执行的权限,增加组写的权限
chmod u-x,g+w rest

# 给所有用户添加读的权限
chmod a+r rest


- groupadd 组名,在linux中添加组

- vi /etc/group,查看linux中所有组信息,可以看可以编辑

- cat /etc/group,查看linux中所有组信息,只可以看不可以编辑

- useradd ‐g 组名 用户名,创建用户的同时指定将该用户分配到哪个组下

- vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑

- cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑

文件权限

ls -l中显示的内容如下:

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
  • 10个字符确定不同用户能对文件干什么

  • 第一个字符代表文件(-)、目录(d),链接(l)

  • 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

  • 第一组rwx:文件所有者的权限是读、写和执行

  • 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

  • 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7

  • 1 表示连接的文件数

  • root 表示用户

  • root表示用户所在的组

  • 1213 表示文件大小(字节)

  • Feb 2 09:39 表示最后修改日期

  • abc 表示文件名

CentOS 安装报错

fatal: unable to access 'https://github.com/robbyrussell/oh-my-zsh.git/': Peer reports incompatible or unsupported protocol version.

解决:

# yum update -y nss curl libcurl

设置主题,插件

    vi ~/.zshrc
    
    修改ZSH_THEME="robbyrussell"为"ys"
    plugins=(
      git
      bundler
      dotenv
      osx
      rake
      rbenv
      ruby
    )

Ubuntu桌面版允许root登录

第一步:设置root密码

sudo passwd root

第二步:

vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

修改配置文件在最后加上:

greeter-show-manual-login=true

第三步:

进入/etc/pam.d目录,修改gdm-autologin和gdm-password文件

vi gdm-autologin

注释掉

auth required pam_succeed_if.so user != root quiet_success

这一行,保存

vi gdm-password

注释掉

auth required pam_succeed_if.so user != root quiet_success这一行

,保存

第四步:修改/root/.profile,避免 错误提示为:Error found when loading /root/.profile stdin: is not a tty 的提示

在/root/.profile中添加

tty -s && mesg n

ubuntu允许root远程访问
vim /etc/ssh/sshd_config文件,将PermitRootLogin 的值改为yes即可

因为为root账户设置了密码,所以还要更改PermitEmptyPasswords为 no。然后:wq保存文件。


完美解决Ubuntu窗口无法自适应vmware

Vmware Tools工具官方已经不建议。更提倡开源的open-vm-tools,所以我安装了这个:

sudo  apt-get installopen-vm-tools

第二步(关键在这一步),推测是安装了一些依赖包:

sudo apt-get install open-vm*

然后reboot。完美解决。

查看-–> 自动调整大小—>自动适应客户机/自动适应窗口 切一下就可以把Ubuntu图的界面大小调的和VMware窗口自适应了


ubuntu 16.04 python3.4 升级为 python3.6

#获取最新的python3.6,将其添加至当前apt库中,并自动导入公钥
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6

# 移除原3.4link 
sudo rm /usr/bin/python3

# 更换默认python3 的版本为3.6
sudo ln -s /usr/bin/python3.6 /usr/bin/python3

安装pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python get-pip.py

将linux下的rm命令改造成移动文件至回收站

mkdir -p ~/.trash

#创建一个目录作为回收站,这里使用的是用户家目录下的.trash目录

修改/etc/profile文件

    # trade rm
    
    alias rm=trash
    
    alias rl='ls ~/.trash'
    
    alias ur=undelfile
    
    alias rmcls=cleartrash
    
     
    
    trash()
    
    {
    
      mv $@ ~/.trash/
    
    }
    
     
    
    undelfile()
    
    {
    
      mv -i ~/.trash/$@ ./
    
    }
    
    cleartrash()
    
    {
    
        echo -n "clear sure?[n]"
    
       read I
    
    [ $I == 'y' ] || [ $I == 'Y' ] && /bin/rm -rf ~/.trash/*
    
    }

alias rm=trash : 替换rm命令为trash命令

alias rl='ls ~/.trash' : 查看回收站的内容

alias ur=undelfile : 恢复回收站的内容

alias rmcls=cleartrash : 清空回收站的内容

使之生效

source /etc/profile

xshell vim 中文乱码解决

终端中文显示乱码

[文件]–>[打开]–>在打开的session中选择连接的那个,点击[属性] -> [终端], 编码选择为:Unicode(UTF-8)

    # 编辑~/.vimrc文件
    vim ~/.vimrc文件
    
    # 添加内容
    set fileencodings=utf-8,gb2312,gbk,gb18030
    set termencoding=utf-8
    set fileformats=unix
    set encoding=utf-8
    # 显示行号
    :set number

主题

几款比较好看的主题

base16-london-tube.minttyrc

base16-seti-ui.minttyrc

右键添加菜单

在tools文件里有工具文件,双击 .js 文件即可运行。如果 .js 文件被某个编辑器关联上了,可以修改打开方式为 Microsoft (R) Windows Based Script Host,或者在 tools 目录运行一个 cmd.exe,然后用 wscript xxx.js 运行对应文件。

注册表修改

  1. 找到注册表中这个文件夹计算机\HKEY_CLASSES_ROOT\Directory\Background\shell,
  1. 选中shell这个文件夹右键新建一个项,双击默认这个值,改为Bash here,好这就是我们右键后应该出现的名字了,桌面右键一下应该可以看到了
  1. 在默认下面加一个字符串值,名称为Icon,双击将它的值改为你想要的图标的地址,可以是.ico和.exe文件.
  1. 在Bash here下新建一个项,项名称为command,将这个项的默认的值改为Ubuntu的exe文件地址,我的是"C:\Windows\System32\bash.exe",注意两边要双引号.

用法

从这里下载最新版本并解压,或者在 cmd.exe 或 WSL 里运行 bash -c "wget https://github.com/goreliu/wsl-terminal/releases/download/v0.8.1/wsl-terminal-0.8.1.7z && 7z x wsl-terminal-0.8.1.7z"。

运行 open-wsl.exe 可以在当前目录打开一个 WSL 终端模拟器(wsl-terminal 需要放置在本地的 NTFS 分区上,原因)。

运行 tools/1-add-open-wsl-terminal-here-menu.js (帮助) 来添加一个 Open wsl-terminal Here 右键菜单到资源管理器上 (运行 tools/1-remove-open-wsl-terminal-here-menu.js 可以将其删除)。 如果你使用 Total Commander, 可以参考 在 Total Commander 中使用 wsl-terminal 。

运行报错

tools/1-add-open-wsl-terminal-here-menu.js: line 1: syntax error near unexpected token `('
tools/1-add-open-wsl-terminal-here-menu.js: line 1: `var WshShell = new ActiveXObject("WScript.Shell");'

使用下面的命令运行

wscript.exe tools/1-add-open-wsl-terminal-here-menu.js

run-wsl-file.exe 可以在 wsl-terminal 里运行任何 .sh (以及任何其他的可执行文件,比如 .py .pl 文件) 脚本文件,你可以在文件打开方式里设置使用它来打开文件。

vim.exe 可以使用 WSL 中的 vim 打开任何文件 (在 wsl-terminal 中),支持在打开方式中配置。如果你使用其他编辑器,可以把 vim.exe 重命名成 emacs.exe nvim.exe nano.exe 等等,会调用对应的编辑器打开。

快捷键

按键  功能
Alt + Enter 全屏
Alt + F2    新建窗口
Alt + F3    搜索文本
Ctrl + [Shift] + Tab    切换窗口
Ctrl + = + - 0  缩放
Ctrl + Click    打开光标处的文件、目录名或者网址
将 wsl-terminal 绑定到快捷键。

命令行参数

open-wsl
用法: open-wsl [选项]...
  -a: 激活在运行的 wsl-terminal 窗口。
      如果 use_tmux=1,会 attach 到正在运行的 tmux 会话上。
  -l: 运行一个 login shell(如果 use_tmux=1 则失效)。
  -c command: 运行命令 (例如 -c "echo a b; echo c; cat")。
  -e commands: 运行后边的所有命令 (例如 -e echo a b; echo c; cat)。
  -C dir: 进入到 dir 目录中,WSL 目录(例如 /home/username)。
  -W dir: 进入到 dir 目录中,Windows 目录(例如 c:\Users\username)。
  -d distro: 切换发行版。
  -b "options": 传递额外的选项给 wslbridge。
  -B "options": 传递额外的选项给 mintty。
  -h: 显示帮助信息。
  -B 和 -b 后可以添加的选项,请参考 mintty 参数 和 wslbridge 参数。

WSL升级WSL2

由于版本问题,好多人的的子系统还停留在 WSL,而不是 WSL2,由于后者实质上是一个虚拟机。所以要启动虚拟化:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl -l # 查看WSL列表
wsl -l -v
wsl --set-version kali-linux 2

中间需要下载一个 WSL2-kernel

Chocolatey 用户可使用如下命令

choco install wsl2

若之前没有用过 WSL,则首先需要安装 Windows 10 的 WSL 功能:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

这部分详情见WSL2

kali安装wine

# 必须执行update
dpkg --add-architecture i386 && apt-get update && apt-get install wine32

安装wine32配置最后两行报错

E: Could not configure 'libc6:i386'.
E: Could not perform immediate configuration on 'libgcc-s1:i386'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
apt-get install -o APT::Immediate-Configure=false -f 软件包名

kali安装wine成功后重启无图形化

apt-get update
apt-get install x-window-system-core
apt-get install gnome-core

WSL-terminaal使用zsh

修改etc/wsl-terminal.conf

shell=/bin/zsh
;shell=/bin/zsh --login
;shell=/bin/bash

cmdtool(在 WSL 中运行)

用法: cmdtool [选项]...
  wcmd: 使用 cmd.exe /c 运行 Windows 程序。
  wstart: 使用 cmd.exe /c start 运行 Windows 程序。
  update: 检查更新,如果有更新可以直接升级。
  killall: 杀死所有的 WSL 进程。
  install cbwin: 安装 cbwin。
  install dash: 安装 Cygwin 中的 dash(用于调试)。
  install busybox: 安装 Cygwin 中的 busybox(用于调试)。
  
  

工具

tools 目录下的工具:

文件名 功能
1-add-open-wsl-terminal-here-menu.js    添加 Open wsl-terminal Here 右键菜单到资源管理器上。
1-remove-open-wsl-terminal-here-menu.js 移除 Open wsl-terminal Here 右键菜单。
2-add-wsl-terminal-dir-to-path.js   将 wsl-terminal 目录添加到 Path 环境变量里。
2-remove-wsl-terminal-dir-from-path.js  从 Path 环境变量中移除 wsl-terminal 目录。
3-write-distro-guids-to-config-file.js  将所有发行版的 guid 写入到配置文件 etc/wsl-terminal.conf 中。
4-create-start-menu-shortcut.js 创建一个开始菜单快捷方式,指向 open-wsl -C ~。
4-create-start-menu-shortcut-login-shell.js 创建一个开始菜单快捷方式,指向 open-wsl -l。
4-remove-all-start-menu-shortcuts.js    移除所有 wsl-terminal 的开始菜单快捷方式。

双击 .js 文件即可运行。如果 .js 文件被某个编辑器关联上了,可以修改打开方式为 Microsoft (R) Windows Based Script Host,或者在 tools 目录运行一个 cmd.exe,然后用 wscript xxx.js 运行对应文件。

配置文件

etc/wsl-terminal.conf 是 wsl-terminal 的配置文件:

[config]
title="窗口标题"
shell=bash
use_tmux=0
;icon=
;distro_guid=
etc/themes/ 目录下的是主题文件,使用主题。

etc/minttyrc 是 mintty 的配置文件, mintty 帮助。

升级

在 wsl-terminal 里打开 open-wsl.exe,然后运行 ./cmdtool update 可以检查 wsl-terminal 的最新版本然后升级。如果下载速度过慢,可以先使用其他方法从发布页面下载 wsl-terminal-v{version}.7z 文件,然后将其放入到 wsl-terminal 目录,然后运行 ./cmdtool update。

该工具依赖 wget 和 7z 命令(安装方法。Ubuntu: apt install wget p7zip-full, Archlinux: pacman -S wget p7zip)。

升级过程不会覆盖配置文件,etc/wsl-terminal.conf 和 etc/minttyrc 会被放置到 etc/wsl-terminal.conf.pacnew 和 etc/minttyrc.pacnew。升级后 bin 目录会残余一些 .bak 文件,因为这些文件还在运行,不能被删除。下一次升级时,会将之前的 .bak 文件全部删除,你也可以等那些进程退出后手删除那些文件

使用 tmux

在 WSL 里安装 tmux。

在 etc/wsl-terminal.conf 中设置 use_tmux=1。如果版本号低于 0.8.1,还需要添加 attach_tmux_locally=1 。

添加如下代码到 ~/.bashrc(如果配置的是 shell=bash)或者 ~/.zshrc(如果配置的是 shell=zsh):

[[ -z "$TMUX" && -n "$USE_TMUX" ]] && {
    [[ -n "$ATTACH_ONLY" ]] && {
        tmux a 2>/dev/null || {
            cd && exec tmux
        }
        exit
    }

    tmux new-window -c "$PWD" 2>/dev/null && exec tmux a
    exec tmux
}

然后 open-wsl 就会使用 tmux 了。

切换发行版

使用 open-wsl -d distro (在 cmd.exe 里运行)来切换发行版:

# 列出所有发行版
> wslconfig /l
Legacy (默认)
Ubuntu

# 使用 Ubuntu(会运行 wslconfig /s Ubuntu 然后打开 wsl-terminal)
> open-wsl -d Ubuntu

# Ubuntu 已经是默认的发行版了
> wslconfig /l
Ubuntu (默认)
Legacy

如果你不想修改默认的发行版,可以在 etc/wsl-terminal.conf 里设置 distro_guid:

运行 tools/3-write-distro-guids-to-config-file.js(帮助),然后会有窗口弹出结果:

result has been written to ..\etc\wsl-terminal.conf:

; Legacy
;distro_guid={12345678-1234-5678-0123-456789abcdef}

; Ubuntu
;distro_guid={47a89313-4300-4678-96ae-e53c41a79e03}

remove the ; before distro_guid to use the distro.

可以去掉 distro_guid 前边的 ; 来使用对应的发行版。

如果你想通过命令行将 distro_guid 传递给 open-wsl:

# 将 distro guid 传递给 wslbridge
> open-wsl -b "--distro-guid {47a89313-4300-4678-96ae-e53c41a79e03}"

WSL kali 工具箱

kali tab不联想

# You’ll need to logout (or exit the shell) to see its effect.
sudo apt install bash-completion

# you may try reinstalling it.
sudo apt install --reinstall bash-completion

vim ~/.bashrc
# enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

安装工具集,不用一个一个装

kali-linux

kali-linux元数据包是Kali Linux的一个完全简单的安装,包括各种网络服务,如Apache和SSH,Kali内核,以及许多版本控制应用程序,如git,svn等。列出了所有其他元数据包下面还包含kali-linux。
** 我们官网默认下载的kali linux 2.5G左右的ISO就是指它 ** 安装大小:1.5 GB

kali-linux-full

当您下载Kali Linux ISO时,您实际上是在下载安装了kali-linux-full元数据包的安装。此软件包包含您在Kali中熟悉的所有工具。
安装大小:9.0 GB

kali-linux-all

为了保持我们的ISO尺寸合理,我们无法包含我们为Kali打包的每个工具,并且有许多工具根据硬件无法使用,例如各种GPU工具。如果要安装每个可用的Kali Linux软件包,可以安装kali-linux-all元数据包。
安装大小:15 GB

kali-linux-top10

在Kali Linux中,我们有一个名为“十大安全工具”的子菜单。 kali-linux-top10元数据包将一举为您安装所有这些工具。
安装大小:3.5 GB

kali-linux-forensic

如果您正在进行取证工作,则不希望分析系统包含大量不必要的工具。为了拯救,kali-linux-forensic元数据包只包含Kali中的取证工具。
安装大小:3.1 GB

kali-linux-gpu

GPU实用程序非常强大,但需要特殊硬件才能正常运行。出于这个原因,它们不包含在默认的Kali Linux安装中,但您可以使用kali-linux-gpu一次性安装它们并开始破解。
安装大小:4.8 GB

kali-linux-pwtools

kali-linux-pwtools元数据包包含40多种不同的密码破解实用程序以及kali-linux-gpu中包含的GPU工具。
安装大小:6.0 GB

kali-linux-rfid

对于正在进行RFID研究和开发的用户,我们有kali-linux-rfid元数据包,其中包含Kali Linux中提供的所有RFID工具。
安装大小:1.5 GB

kali-linux-sdr

kali-linux-sdr元数据包包含大量适用于您的软件定义无线电黑客需求的工具。
安装大小:2.4 GB

kali-linux-voip

很多人告诉我们他们使用Kali Linux进行VoIP测试和研究,所以他们很高兴知道我们现在有一个专用的kali-linux-voip元数据包,有20多个工具。
安装大小:1.8 GB

kali-linux-web

Web应用程序评估在渗透测试领域非常普遍,因此,Kali包含kali-linux-web元数据包,其中包含许多与Web应用程序黑客相关的工具。
安装大小:4.9 GB

kali-linux-wireless

与Web应用程序一样,许多渗透测试评估都针对无线网络。 kali-linux-wireless元数据包包含一个易于安装的软件包中所需的所有工具。
安装大小:6.6 GB

这里就很好办了

# 安装标准工具包
sudo apt install kali-linux-default
sudo apt-get install kali-linux-full
# some package is kali-tools-xxx
sudo apt-get install kali-tools-web

这里的kali-linux可以是上述任何一种工具集

补充

关于开启root权限
打开powershell,输入

PS C:\Windows\system32> kali config --default-user root
#以root用户登录kali
PS C:\Windows\system32> kali
启动kalii
root@kali:~# passwd root
#修改root密码
New password:
#输入新密码
Retype new password:
#再次输入密码
passwd: password updated successfully
#修改成功

图形化界面的实现

# kali 官方推荐的GUI
sudo apt install -y kali-win-kex
# 启动
cd ~
kex
# 关闭
kex stop
# 窗口模式
kex --win -s
# 还提供了无缝模式
kex --sl -s

会弹出pulseaudio.exe和vcxsrv.exe防火墙,一定要把公共和专有都勾选,不然声音不工作

Win Terminal 整合

{
    "list": [
        {
            "guid": "{46ca431a-3a87-5fb3-83cd-11ececc031d2}",
            "hidden": false,
            "name": "Kali",
            "icon": "file:///c:/users/boy/pictures/icons/kali.png",
            "source": "Windows.Terminal.Wsl"
        },
        {
            "guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",
            "hidden": false,
            "name": "KaTex",
            "icon": "file:///c:/users/boy/pictures/icons/kali.png",
            // 窗口模式启动
            "commandline": "wsl -d kali-linux kex --wtstart -s"
        }
        ]
}

默认的命令行虽然能完成绝大部分工作,但还是有少数任务在GUI的帮助下更快捷,这里我们才用Xserver+xfce来实现图形化界面

安装xfce桌面

apt install xfce4

安装中文字体

apt install fonts-noto-cjk

ubuntu

修改默认源

首先将原配置文件备份

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后 VIM 打开,替换

:%s/security.ubuntu/mirrors.aliyun/g
:%s/archive.ubuntu/mirrors.aliyun/g
sudo apt install xfce4
sudo apt install xfce4-session

在你的Windows 10内,下载VcXsrv,下载地址在这里

https://sourceforge.net/projects/vcxsrv/

下载完成后,安装启动VcXsrv文件夹内的Xlaunch,第一个界面推荐先选择"One large window",其余默认均可

在Kali内,编辑~./bashrc文件

nano /root/.bashrc

在末尾添加如下内容

echo "export DISPLAY=:0.0">> ~/.bashrc
或者
echo "export DISPLAY=localhost:0">> ~/.bashrc

要启动x服务器,在你的开始菜单或者桌面找到xLaunch启动,选择一种现实模式,包括全屏、是否带标题栏等,大家可以根据字面意思选择,这里选了最后一个,然后一路“下一步”启动。

保存并退出,该步骤的目的是让图形自动输出到我们的VcXsrv窗口内,不需要每次运行GUI程序都手动指定

启动xfce桌面

xfce4-session

安装 tigerVNC 服务

centos 安装 tigerVNC ,未测试

https://blog.csdn.net/u012587734/article/details/85058462

Ubuntu 18.04 gnome 安装

安装tigerVNC

Git 方式(没试)

git clone 下来,用源码方式安装

mkdir tigervnc
cd tigervnc
git clone https://github.com/TigerVNC/tigervnc
cd tigervnc/
git checkout 044e2b87da7121ef6cbd59e88b101d7d8e282896 -b 044e2b87da7121ef6cbd59e88b101d7d8e282896

编译和安装tigervnc

ln -s contrib/packages/deb/ubuntu-xenial/debian
sudo apt install -y $(grep Build-Depends: debian/control | sed -e 's/Build-Depends://g' -e 's/([^\)]*)//g' -e 's/,//g')
chmod a+x debian/rules
fakeroot debian/rules binary
cd ..
sudo dpkg -i *.deb || (sudo apt -f install -y; sudo dpkg -i *.deb)
cd ..

apt 安装

sudo apt install tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewer

可能会报 xserver-xorg-core 依赖问题,使用apt安装下即可

没有gnome环境的,可能还要安装gnome

install Ubuntu Linux desktop

sudo apt install ubuntu-gnome-desktop
sudo systemctl enable gdm
sudo systemctl start gdm

修改 ${HOME}/.xsessionrc

cat <<EOF > ~/.xsessionrc
gnome-panel &
metacity &
EOF

如果存在/.xsession 文件就将其删除

rm -rf ~/.xsession

配置vnc的密码

vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
Run vncserver. Remote access port is 5900 + display nummber.
A port of below example is 5901.

启动 vncserver

vncserver

解决 Ubuntu 18.04 Starting applications specified in /etc/X11/Xvnc-session has failed.报错

Maybe try something simple first, e.g.,
    tigervncserver -xstartup /usr/bin/xterm

需要安装xterm

sudo apt install xterm

然后运行一次

tigervncserver -xstartup /usr/bin/xterm

之后就可以使用vncserver命令运行了

允许 vncserver 外部访问

tigervncserver 默认启动监听的是

::1:5902

查看 cat /etc/hosts 文件发现,是一个ip6-localhost 的本地回环地址

使用下面的命令来监听所有地址

vncserver -localhost no

常用命令

# 查看当前的vnc 会话进程数
vncserver --list
# 结束指定数字的 vnc 会话
vncserver -kill :1
# 生成 vnc 桌面,并指定分辨率
vncserver -geometry 1920x1130

Cent OS7 拓展clroot容量

扩容之前的前提当然还是备份,如果不做,这里可没有后悔药

#查看分区信息
df -h

观察home有多少可以分区的空间

#去掉挂载
umount /home

umount: /home: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

如果出现以上信息,表明还有进程在占用home分区,执行如下命令


fuser -m /home/

/home:            2934 14230m 14234cm 8788c

复制上面所有数据列,将其中的m,c等去掉,只保留干净的pid集合,然后统一kill掉。

# 删除/home所在的lv
lvremove /dev/cl/home

Do you really want to remove active logical volume cl/home? [y/n]: y

  Logical volume "home" successfully removed
  
#扩容/dev/centos/root
lvextend -L +400G /dev/cl/root 

 Size of logical volume cl/root changed from 50.00 GiB (12800 extents) to 450.00 GiB (115200 extents).
  Logical volume cl/root successfully resized.

# 扩展/root文件系统
xfs_growfs /dev/cl/root

meta-data=/dev/mapper/cl-root    isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 117964800

# #重新创建home LV【cl是VG Name,据实际情况而定】
lvcreate -L 469G -n home cl

Volume group "cl" has insufficient free space (119952 extents): 120064 required.

可用空间不足,对应上面扩容减掉的空间

lvcreate -L 460G -n home cl

Logical volume "home" created.

#创建文件系统
mkfs.xfs /dev/cl/home

meta-data=/dev/cl/home           isize=512    agcount=4, agsize=30146560 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=120586240, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=58880, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#重新挂载
mount /dev/cl/home /home/


vyos自启配置

配置bingo云网络互通

chmod 755 pre.sh

#!/bin/vbash
source /opt/vyatta/etc/functions/script-template

configure
set interfaces ethernet eth1 address dhcp
commit
save
exit

创建接收文件

touch vdata
chmod 755 vdata

自启脚本

vim /etc/rc.local

sudo vbash /home/vyos/pre.sh

sudo curl http://169.254.169.254/latest/user-data > /home/vyos/vdata

sudo vbash /home/vyos/vdata

最后由 不一样的少年 编辑于2022年03月11日 14:36