Linux
常用命令
su和sudo
Sudo【superuser do 超级使用者】
关于su和sudo:
su
命令可以在一个登陆 session 下切换不同用户(通常是root).意思就是不需要退出当前用户的登录而切换到新用户。
su username
username 为空默认切换到root用户. 输入要登录用户密码即可。
另一种切换root用户的方法就是 su –
-
必须作为 su
的最后一个参数. 而 -l
-login
没有该限制。
su 和 su - 进入的目录是不一样的
su 会保持前者的用户环境, 而 su - 会新建一个目的用户的环境
su 会保持当前用户的环境, 因为在某些情况下, 使用当前用户比管理员账户能更好的解决问题. 比如重现或者debug问题时,在当前用户环境下更高效
当然 su 在很多情况下是不建议使用的, 或者说是相当危险的. 因为 root 用户要在当前用户的环境下操作, 而不是自己的环境. 因为这会给非 root 用户 更改系统文件或数据的权限
Sudo和su区别:
最大的不同就是所需要的密码不同: sudo 需要的是当前用户的密码,而 su 命令需要的是 管理员的密码.
Sudo只是一个临时获取的root权限
sudo 命令比 su 命令更安全. su 命令需要其他用户也知道 root 密码, 而 sudo 只需要配置 sudoers file 即可, 而且可以随时删除特定用户的权限.
hhy@LAPTOP-3ITN966I:~$ su
Password:
root@LAPTOP-3ITN966I:/home/hhy# su - # 转到~目录,下面什么也没有
root@LAPTOP-3ITN966I:~# ls -l /etc/sudoers
-r–r—– 1 root root 755 Jan 18 2018 /etc/sudoers
root@LAPTOP-3ITN966I:~# ls
root@LAPTOP-3ITN966I:~#
ifconfig**一般需要root权限**
hhy@LAPTOP-3ITN966I:~$ ifconfig eth0 up
SIOCSIFFLAGS: Operation not permitted
` ssh
登陆linux
服务器操作``?```
XX先不了解。像是配置git。
root@LAPTOP-3ITN966I:/home/hhy# cat /etc/sudoers
#
# This file MUST be edited with the ‘visudo’ command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin”
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
用户账号 登陆者来源主机名 =**(能够切换的身份)** 可运行的命令
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on “#include” directives:
#includedir /etc/sudoers.d
如何在sudoers文件中添加
在 sudoers file
里面添加该用户?
用root权限 可以改变文件权限,然后添加进去后再修改回权限。
在root ALL=(ALL:ALL) ALL 下面添加一行,yourName 就是你的用户名:
yourName ALL=(ALL)AL
创建用户:
make
https://www.cnblogs.com/hazir/p/linux_make_examples.html
关于Linux中的用户操作:
(1)通过/etc/passwd 来查看用户相关信息:
1、目前自己创建的用户:
root@LAPTOP-3ITN966I:/home/hhy# cat /etc/passwd
hhy : x:1000:1000:,,,:/home/hhy:/bin/bash
snort : x:999:1001:SNORT_IDS:/home/snort:/sbin/nologin
B19070208: x :1001:1002::/home/B19070208:/bin/sh
s01: x :1002:1003::/home/s01:/bin/sh
s02: x :1003:1003::/home/s02:/bin/sh
举例解析:
snort: x :999:1001:SNORT_IDS:/home/snort:/sbin/nologin
用户名(snort)
密码(x) 存储在/etc/shadow
用户 ID(999):代表用户的 ID 号,每个用户都要有一个唯一的 ID 。UID 号为 0 的是为 root 用户保留的,UID 号 1 到 99 是为系统用户保留的,UID 号 100-999 是为系统账户和群组保留的。
群组 ID (1001):代表群组的 ID 号,每个群组都要有一个唯一的 GID ,保存在 /etc/group文件中。
用户信息(SNORT_IDS):代表描述字段,可以用来描述用户的信息
家目录(/home/snort):代表用户的家目录。
Shell(/sbin/nologin):代表用户使用的 shell 类型。
2、目前创造的组:
如何查看所有的组啊?
hhy: x :1000:
snort: x :1001:
B19070208: x :1002:
student: x :1003:
3、useradd和adduser的区别:
useradd是一个Linux命令,但是它提供了很多参数在用户使用的时候根据自己的需要进行设置;而adduser是一个perl 脚本,在使用的时候会出现类似人机交互的界面,提供选项让用户填写和选择,这个命令比起useradd来说比较简单,也比较傻瓜。
区别1:adduser比较人性化,不是Linux命令。
区别2:使用shell不同
adduser命令有规范的,以下是不规范的命名格式:
root@LAPTOP-3ITN966I:/home/hhy# adduser B
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable. Use the `–force-badname’
option to relax this check or reconfigure NAME_REGEX.
/bin/sh:
/bin/bash:
此外,adduser好像会在home下面帮你创建一个文件夹,不知道useradd会不会???
目前推荐使用adduser 【perl脚本的】
清除Linux历史命令:
history-w
就是用内存中的历史命令覆盖 .bash_histroy 文件的内容,这样,即使 Shell 重新加载也加载不到任何命令了,因为此时 .bash_history 文件中已经空空如也了。
修改root密码
1 | hhy@LAPTOP-3ITN966I:~$ sudo su root |
1 | root@LAPTOP-3ITN966I:/bin# cat /etc/passwd |
gcc编译
1 | b19070208@LAPTOP-3ITN966I:~/linux$ gcc -c exp31.c |
为什么exp31可以直接执行?已经有x执行权限了。
删除非空文件
删除一个不为空的文件夹就是 rm -rf XXX
其中-r recursion表示向下递归,不管多少级目录,一并删除。
-f force表示直接强行删除,不做任何提示。
注意:不是rmdir -rf XXX
shell编程
关于变量问题:
(1)目前好像是加单引号,双引号,以及不加,输出结果相同。shell中是不指定数据类型的,根据参与的运算决定。
1 | [root@server ~]# a=hello |
所以定义变量的时候,单双引号以及啥也不加会有什么区别呢???
(2)变量的计算需要用expr命令,而且表达式运算符和数字必须有空格。
关于运算符
运算符号 含义
+,- 加法,减法
,/,% 乘,除,取余
* 幂运算
++,– 自增加,自减少
<, <=, >, >= 比较符号
=, +=, -=, *=, /=, %= 赋值运算
shell中常用的运算命令
运算操作与运算命令 含义
(( )) 用于整数运算
let 用于整数运算,与(())类似
expr 用于整数运算,功能相对较多
bc linux下的计算器,适合小数及整数运算
$[ ] 用于整数运算
常见错误
E45: ‘readonly’ option is set (add ! to override)
不修改文件,直接退出 :q!
安装
rpm -qa | grep openssl #[搜索指定rpm包是否安装]
rpm:RPM是以一种数据库记录的方式将所需要的软件安装到Linux主机的一套管理程序
rpm -ivh 软件包名 #安装软件包并显示安装进度
rpm -qa 查询已经安装那些软件包
grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。
1 | rpm -e --justdb --nodeps <yourpackage> |
rm -rf openssl-fips-2.0.16 强力删除openssl-fips-2.0.16
安装Linux桌面后终端无法打开 | 将系统语言改成英文 |
---|---|
hexdump是Linux下的一个二进制文件查看工具,可以将二进制文件转换为ASCII、10进制、16进制或8进制进行查看。
常用选项:
-b 将每个字节显示为8进制
-c 将每个字节显示为ASCII字符
-C 每个字节显示为16进制和相应的ASCII字符
-d 每两个字节显示为10进制
-o 每两个字节显示为8进制
-x 每两个字节显示为16进制
网络知识
“ifconfig是用在LINUX或UNIX中的,IPCONFIG是用在WINDOWS中的,都是用来显示网卡信息的,只不过不同系统用不同的命令而已!!!”
192.168.2.0/24
192.168.2.0换成32位二进制,四组,每组8位
/24 表示前24位不变
shell命令行
补充知识:
Linux只有根目录,没有C盘,D盘这些概念,要访问需要挂载
桥接方式可以正常上网,
桌面版有界面
git命令
做web开发要用图形界面。
Linux采用的是树形结构。根目录
硬件对应的就是一个文件。
比如说打印机,虚拟文件系统,Linux将硬件和一个文件对应
Linux比较稳定,比windows稳定。
shell是在与Linux交互的界面。
shell维护一个命令库
shell的类型:
shell负责和Linux内核进行交互。
shell命令分类:
- 外部命令
- 内部命令
shell的注释:
单行注释和多行注释
单行注释:#
多行注释:
1 | :<<! |
删除操作
1 | rm -rf * #代表删除当前目录下所有文件 rm -rf XX可以删除指定文件 |
git相关
1 | ssh-keygen -t rsa -C "邮箱@example.com" |
获得命令帮助
$ man ls # 用manual,表示用man命令来获取ls 命令的帮助
1 | ubuntu安装wget |
解析tar命令行
-x 或者–extract或者–get 从备份中还原文件
-v 或者–verbose 显示指令执行过程
-f <备份文件> 指定备份文件
-z 或者–gzip或者–ungzip 通过gzip指令处理备份文件
1 | && 表示前一条命令执行成功时,才执行后一条命令。 |
补充:
-g 分到指定的用户组
-c(comments) 备注,加上备注文字
-r 建立系统账号(root)
-s 指定用户登录后使用的shell
小知识:
adduser和useradd的区别:
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。
snort的相关文件:
etc下面:
classification.config : 描述了Snort理解的攻击分类类型(将规则分组为这些类型的分类),例如木马活动或系统调用检测。分类列表可以在Snort手册的第3.4.6节中找到
file_magic.conf : 描述了用于标识文件类型的规则
reference.config : 包含提供有关警报的更多信息的规则中引用的URL
snort.conf : 是Snort的配置文件,它告诉Snort资源的位置,以及如何输出警报等
threshold.conf : 允许您控制生成警报所需的事件数,这有助于抑制噪声警报
gen-msg.map : 告诉Snort哪个规则使用哪个预处理器,更多信息在这里。
unicode.map : 提供Unicode语言和标识符之间的映,nSnort需要此文件才能启动。
1 | 它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件 |
小知识:
sudo su 和 su区别:
su是申请root用户,ubuntu,默认没有设置root用户的密码,所以需要我们先使用
sudo passwd root
设置root用户密码。sudo su是转换成管理员
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 设置root的UNIX的密码,此处设置为123
hhy@LAPTOP-3ITN966I:/$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
sudo su让输入user的密码
hhy@LAPTOP-3ITN966I:/$ sudo su
root@LAPTOP-3ITN966I:/# exit
exit
su输入UNIX的密码
hhy@LAPTOP-3ITN966I:/$ su
Password:
root@LAPTOP-3ITN966I:/# exit
我是谁
root@LAPTOP-3ITN966I:/# whoami
root
-f 强制force
-r 递归recursive
1 | #号表示超级管理员,$号表示基本用户 |
drwxr-xr-x
directory+ 三个一组(三组)
第一组:文件所属者
第二组:
第三组:
修改权限:
chmod
1 | [root@localhost Desktop]# chmod 777 demo |
安装snort
1 | 从根目录开始 /etc/snort/ |
1 | 利用 chmod 可以藉以控制档案如何被他人所调用。只能文件属主或特权用户才能使用该功能来改变文件存取模式。 |
chmod
chown
蓝色的是目录文件
1 | root/ |
1 | wget https://github.com/snort3/libdaq/archive/refs/tags/v3.0.4.tar.gz -O libdaq-3.0.4.tar.gz |
到底有啥用:
1 | sudo ldconfig |