Linux常用配置文件

Linux常用配置文件

Linux配置文件非常重要,是后续学习信息安全渗透和防御的重要基础,本文实现环境在CentOS9下进行。

1.用户相关

1.1/etc/passwd文件

/etc/passwd文件中保存的就是系统中所有的用户和用户的重要信息,这个文件的内容非常规律,每行代表一个用户信息

每一行有7个字段,以:作为分隔符,一共6个:,每个字段代表不同的含义

第一个字段为:用户名名称

第二个字段为:密码表示,但是不是真正的密码,密码是在另一个文件中

第三个字段为:UID,也就是用户的ID

第四个字段为:GID,也称为用户的组ID

第五个字段为:用户的说明

第六个字段为:用户的家目录

第七个字段为:shell,也可以理解为用户登录之后所拥有的权限

UID分布:当UID=0时,只属于root,UID=1~500时,属于系统服务的用户,500以后则是分配给普通用户。一般新建用户则是默认从1000开始往后迭代

1.2/etc/shadow文件

/etc/shadow是用户保存密码的文件。

这个文件的每一行代表一个用户,同样 也是以:为分隔符

/etc/shadow这个文件有九个字段,以第一行为例

第一个字段为:用户名称

第二个字段为:该用户加密后的密码,没有密码的用户则是*或者!!,是不能登录的

第三个字段为:密码何时修改过,这里显示的数字是从1970年1月1日作为标准时间算的,每过去一天时间戳加1,如果是10000的话,那就是1970年1月1日后的10000天

第四个字段为:两次修改密码的时间间隔,如果是5,那么密码修改后5天内不能再更改,为0的话表示随时可以修改

第五个字段为:密码的有效期,是从第三字段之后开始算的,默认是99999

第六个字段为:密码到期修改前的警告失效,根据第五个字段算的,默认为7,则是到期前的7天开始警告

第七个字段为:密码到期后的宽限天数,为0是到期立马失效,-1是永不失效

第八个字段为:用户失效的时间,同样是以时间戳表示的

第九个字段:暂时没有功能

有个有意思的事情,如果作为攻击者能够拿到 /etc/shadow的文件,这个时候就可以拿到用户加密后的密码,当然加密算法十分复杂,但是当攻击者有一份明文的密码字典,将密码通过加密后与用户的加密后的密码文字进行比对,如果相同,就可以得到用户的真实密码了。(当然,算法是十分复杂的,实际操作没有这么简单,想深入了解可以去查一下Linux下shadow文件的加密算法具体是什么)

1.3/etc/group文件

Linux用户组的所有信息都存放在 /etc/group文件当中,也就是passwd文件中GID的来源

/etc/group文件分为四个字段,也是以:作为分隔符

第一个字段为:用户组名称

第二个字段为:用户组密码

第三个字段为:对应的GID

第四个字段为:用户列表,本字段可以为空

1.4/gshadow文件

前面讲过在 /etc/passwd中存放的是用户的基本信息,同时考虑到账户的安全性,将用户的密码信息存放在另外一个文件中 /etc/shadow/etc/gshadow也是如此,组用户的基本信息存放在 /etc/group文件下,而将组用户的密码信息存储在 /etc/gshadow文件中。

文件中每一行代表一个组用户的密码信息,隔行信息用:作为分隔符,有四个字段:

组名:加密密码:组管理员:组附加用户列表

第一个字段:用户组名称

第二个字段:用户组密码

第三个字段:组管理员

第四个字段:用户列表,本字段可以为空

1.5useradd命令

useradd命令可用来建立用户账号,账号建立好后,再用 passwd命令设定账号的密码。而可用 userdel删除账号。使用 useradd指令所建立的账号,实际上是保存在 /etc/passwd文本文件中的。

1.5.1创建新用户

useradd命令用于建立用户账号。

比如,创建一个用户farm1

useradd farm1

1.5.2建立uid为0的用户
useradd -o -u 0 root1

cat /etc/passwd|grep root1

在CentOS9中会出现报错,但实际上去查看 /etc/passwd文件时,可以看到是创建成功的,当我们进入root1这个用户,发现其实自己还是在root用户下。所以实际上UID=0就等于是root用户,可以理解为创建了一个别名或者影子账户。

1.5.3指定新建用户所属组
groupadd family #新建一个family的用户组

useradd fam_1 -g family #新建一个fam_1的用户,并加入到famliy组中

cat /etc/group

此时看到 /etc/group目录的最后一行多了一个family的用户组,里面就有fam_1的用户

1.5.4 更改用户和用户组

使用 usermod命令可以更改用户的各项信息

-l <帐号名称> #修改用户帐号名称。

-C <备注> #修改用户帐号的备注文字。

-g <群组> #修改用户所属的群组。

-G <群组> #修改用户所属的附加群组。

-d <登入目录> #修改用户登入时的目录。

-e <有效期限> #修改帐号的有效期限。

-f <缓冲天数> #修改在密码过期后多少天即关闭该帐号。

-L #锁定用户密码,使密码无效。

-s <shell> #修改用户登入后所使用的shell。

-u <uid> #修改用户ID。

-U #解除密码锁定。

使用 groupmod命令可以修改用户组的各项信息

-g, --gid GID #将组 ID改为 GID

-h, --help #显示此帮助信息并推出

-n, --new-name NEW_GROUP #改名为 NEW_GROUP

-o, --non-unique #允许使用重复的 GID

-p, --password PASSWORD #将密码更改为(加密过的)PASSWORD

-R, --root CHROOT_DIR #chroot 到的目录

-P, --prefix PREFIX_DIR #prefix directory where are located the /etc/* files

1.5.5删除用户和用户组

使用 userdel命令可以删除用户,使用 groupdel命令可以删除用户组

userdel/groupdel [用户/用户组]

1.6passwd命令

passwd命令用于修改或添加用户的密码,用法:passwd [user],比如:

passwd fam_1

注意:当你以root用户登录时,你可以修改系统内任意用户的密码,且毋须遵守密码复杂度要求。

当你以普通用户登录时,只能修改自己的密码,且必须遵守密码复杂度要求。

当passwd命令后不跟用户名时,代表修改当前用户密码

2.网络相关

2.1网卡配置文件

CentOS网卡配置文件存储于 /etc/sysconfig/network-scripts/ifcig-[网卡名]

在CentOS8版本以及以前,网卡配置文件存放在 /etc/sysconfig/network-scripts/目录下

老版本的网络配置文件:

但是在CentOS9版本上会有所变化,配置文件放在了 /etc/NetworkManager/system-connections目录下

在CentOS9中更多的是使用 nmcli命令配置网络文件:

nmcli c show #查看状态

nmcli c up/down [网卡名] #启动/关闭

nmcli c reload [网卡名] #重启

nmcli c modify 网卡名 ipv4.addresses 192.168.0.62/24

nmcli c modify 网卡名 ipv4.gateway 192.168.0.1

nmcli c modify 网卡名 ipv4.dns 8.8.8.8

2.2DNS相关

电脑想要访问网页,必须设定一个DNS服务器的IP(常见的有114.114.114.114等),这个DNS服务器负责将你输入的网址(如:www.baidu.com)转换为你的电脑可以识别的IP。经过这种转换,电脑才能访问网页。

CentOS的DNS配置文件存储在 /etc/resolv.conf nameserver192.168.122.2

2.3查看网络IP的命令
ip a

ifconfig

2.4Ubuntu/kali上网相关配置
2.4.1网卡配置

Ubuntu上的网卡配置文件存储于 /etc/network/interfaces

其中主要参数:

# 若设置静态ip

auto [网卡名]

iface [网卡名] inet static

address ip地址 #ip地址

gateway 网关 #网关

netmask 子网掩码 #子网掩码

# 若设置动态ip

auto [网卡名]

iface eth0 inet dhcp
2.4.2设置网卡状态
/etc/init.d/networking restart #重启网卡

/etc/init.d/networking start #开启网卡

/etc/init.d/networking stop #关闭网卡
2.4.3dns配置
DNS配置文件存储于 /etc/resolv.conf

3.运行级别

运行级别简单来说就是操作系统当前正在运行的功能级别,级别是从0到6,具有不同的功能

Linux下的7个运行级别:

0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭

1:单用户工作状态,root权限,用于系统维护,禁止远程登录,类似于Windows下的安全模式登录

2:多用户状态,没有NFS支持

3:完整的多用户模式,有NFS,登录后进入控制台命令行模式

4:系统未使用

5:X11控制台,登录后进入图形GUI模式,XWindows系统

6:系统正常关闭并重启,默认运行级别不能设置为6,否则不能正常启动。运行 init 6机器就会重启

关机/重启命令:

init 0

init 6

4.sudo与su命令

sudo是Linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

root用户需要设置普通用户的sudo权限,设置之后,普通用户在命令前加sudo即可使用管理员权限执行命令

4.1sudo配置文件

sudo配置文件在 /etc/sudoers,root用户如想赋予普通用户sudo权限,则需要修改如下的内容

4.2whoami命令

whoami命令用于显示当前用户

whoami

5.Linux文件权限

5.1Linux文件权限

在命令行输入 ls -al时,会出现以下信息

ls -al显示文件权限对应的有七个字段,每个字段以空格为分隔

第一个字段:分别是文件类型,和属主属组其他人的读写执行权限

在第一个字段中,会出现 drwxr-xr-x.这样的形式,一共11个字符

第一个字符:常见的有 d-两种,d表示目录,-表示问文件。

此外还有其他的形式:

-:常规文件

b:块特殊文件

c:字符特殊文件

C:高性能(“连续数据”)文件

d:目录

D:门(Solaris2.5及以上版本)

l:符号链接

M:离线(“前已”)文件(Cray DMF)

n:网络专用文件(HP-UX)

p:FIFO(命名管道)

P:断开(Solaros 10及以上)

s:套接字

?:其他文件

第二到第十个字符:每三个字符为一组,代表属主、属组、其他人 的权限。常见的权限有:r w x,分别代表读权限,写权限和执行权限。

如一个文件这一部分的字段表达为:-rwxrw-r--

1、表示此文件是一个文件而非目录

2、此文件的属主(拥有者/创建者)具备对其读、写、执行的权限

3、此文件的属组(文件所有者同一个用户组的用户)具备读、写权限而没有执行权限

4、此文件属主与属组之外的用户,具有读权限,而没有写和执行的权限

5、如果一个文件需要能够被读取,则需要 r 权限

6、如果一个文件需要能够被编辑,则需要 r 与 w 权限

7、如果一个文件能够被执行,则需要 x 权限

8、不需要什么权限,在对应字符位写为 - 即可

在第四、第七和第十个字符中,除却常见的 x 执行权限外,还有其他情况:

S:设置了SUID或SGID,没有执行权限

s:设置了SUID或SGID,具有执行权限

T:设置了粘滞位,没有执行权限

t:设置了粘滞位,具有执行权限

除此以外,其实在标识权限的写法上,还有一种简单的数字写法“421”写法,什么意思呢?

其实就是 r = 4、w = 2、x = 1。

如果说一个文件对应的权限是rwx,那么就代表的是4+2+1=7

如果这个文件对应的权限是 rw- ,那么就代表4+2=6

因为这个组合不会出现重复的数字,所以可以根据数字反推对应的权限。

第十一个字符的含义:

.:没有任何其他替代访问方法的SELinux安全上下文(没有设置ACL)

+:具有任何其他组合访问方法的SELinux安全上下文(设置了ACL)

5.2chown命令

chown命令用于设置文件所有者。

用法:

chown [-R] [username]:[groupname] [filename]

比如更改当前目录下的test文件的属主属组权限:

chown fam_1:family test

可以看到test文件夹的属主属组更改了

5.3chmod命令

chmod命令用来变更文件或目录的权限。

用法:

chmod [-R] 777 filename

比如更改test文件夹的权限:

当前的权限是:

执行指令:

执行后的权限更改为:

这里的数字777代表的其实就是权限对应数字相加的结果r = 4 、w = 2、x = 1

使用 -R参数代表递归,将目录以下的所有文件都赋予同样的权限

该命令也可直接添加或删除某种权限

用法:

chmod +x filename

比如:

chomd +x text

chomd -x text

chomd a+x text

chomd g-x text

chomd a+r text

chomd ug=rwx,o=x text

参数释义:

who用户类型说明
uuser文件所有者
ggroup文件所有者所在组
oothers所有其他用户
aall所有用户,相当于 ugo
Operator说明
+为指定的用户类型增加权限
-取出指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置
模式名字说明
r读取设置为可读权限
w写入设置为可写权限
x执行设置为执行权限
X特殊执行权限只有当文件为目录文件,或其他类型的用户有执行权限时,才将文件权限设置为可执行
ssetuid/gid当文件被执行时,根据who参数指定的用户类型设置文件的setuid或setgid权限
t粘贴位设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

6.计划任务

crontab 被用来提交和管理用户的需要周期性周期的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

用法:

crontab -e #编辑当前用户的cron表

crontab -l #查看当前用户的cron表

crontab -r #删除当前用户的cron表

crontab命令是cron的配置文件,也叫作业列表,可以在以下文件目录内找到相关配置文件:

/var/spool/cron/目录下存放的是每个用户包括root的crontab任务,每个任务创建者的名字

/etc/crontab这个文件负责调度各种管理和维护任务

/etc/cron.d这个目录用来存放任何要执行的crontab文件或脚本。

我们可以把脚本放在 :/etc/cron.hourly/etc/cron.daily/etc/cron,weekly/etc/cron.monthly目录中,让他们每小时/天/星期/月执行一次

编辑cron的格式为:分 时 日 月 周

*:代表任意时间

,:代表不连续的时间点,比如4,5表示4和5的时间

-:代表连续的时间段,比如4-5表示4到5的时间

*/n:代表每隔单位时间

比如:每隔1分钟向文本里输入一条hello信息

有一个问题,当用其他用户写一个脚本到同一个文件中时,脚本任务是会正常执行的,但是对于当前的用户,使用 crontab -l 是无法查看其他用户的计划任务的。用户的计划任务保存在 /var/spool/cron/目录下。

可以使用如下命令进行查看(我当前只有一个用户的执行计划):

crontab -u <user> -l

7.开机自启

7.1设置服务开机自启命令

在systemctl的命令中,enable代表开机自启,disable代表取消开机自启

如想设置某服务开机自启,可使用

systemctl enable [服务名]

7.2开机自动执行命令

/etc/rc.d/rc.local用于添加开机启动命令,事实上就相当于Windows的快捷方式一样,

/etc/rc.local/etc/rc.d/rc.local的软链接。

通过 vi rc.local在文件中写入你要执行的脚本文件或命令

系统开机后会自动执行这个文件中的内容,写好命令后保存关闭文件,再重启服务器,可以通过观察开机启动看看有哪些命令在开机被执行,如果没有执行,可以看看是不是没有对 /etc/rc.local加上执行权限。

也可以控制服务的启动:

从centos7开始,系统的服务控制开始由systemctl替换早期版本的chkconfig与service命令

systemctl服务的位置在 /usr/lib/systemd/system中。

所以未来在应急响应的排查中,需要排查的目录需要依照操作系统的版本进行针对性排查。

  • 37
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值