Linux系统上的安全性有许多方面—从建立帐户到确保合法用户的权限不超过他们完成工作所需的权限。本文将介绍Linux系统上日常工作中一些最基本的安全命令。
sudo
使用sudo运行特权命令——而不是将用户切换到根用户——是一种基本的良好实践,因为它有助于确保只在需要时使用根特权,并限制错误的影响。您对sudo命令的访问取决于/etc/sudoers和/etc/group文件中的设置。
$ sudo adduser shark添加用户“shark”…添加新的组“shark”(1007)…添加新用户“shark”(1007)和组“shark”…创建主目录' /home/shark'…复制文件从' /etc/skel'…输入新的UNIX密码:重新输入新的UNIX密码:passwd: password updated成功修改了shark的用户信息输入新值,或者按Enter键输入默认的全名[]:shark房间号[]:工作电话[]:家庭电话[]:其他[]:信息正确吗?[Y / n] Y
例如,如果您运行sudo并询问您是谁,您将得到确认,您正在以root身份运行该命令。
$ sudo whoami root
如果您为用户管理sudo设置,您还需要熟悉visudo命令。
visudo
visudo命令允许您通过在文本编辑器中打开文件并检查语法更改来更改/etc/sudoers文件。使用“sudo visudo”运行命令,确保您理解了语法。特权可以由用户或组分配。在大多数Linux系统上,/etc/sudoers文件已经配置了如下所示的组,这些组允许将特权分配给/etc/group文件中设置的组。在这些情况下,您根本不需要使用visudo命令—只需熟悉以这种方式授予根特权的组,并对/etc/group文件进行更新。
%admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL %wheel ALL=(ALL:ALL) ALL
注意,组名前面有%符号。
你可以像这样在/etc/group文件中显示提供sudo访问的组,因为它可能是以下其中之一:
$ egrep“admin|sudo|wheel”/etc/group sudo:x:27:shs,jdoe
授予某人sudo特权的最简单方法是将他们添加到/etc/group.中的授权组然而,这意味着它们可以运行任何命令作为根。如果你想让一些用户对一组有限的命令有根权限(例如,添加和删除帐户),你可以定义命令,你想让他们能够通过命令别名像这样运行:
Cmnd_Alias ACCT_CMDS = /usr/sbin/adduser, /usr/sbin/deluser
然后赋予用户或组使用sudo运行这些命令的能力,命令如下:
techs ALL=(ALL:ALL) ACCT_CMDS %techs ALL=(ALL:ALL) ACCT_CMDS
第一行允许用户“nemo”使用sudo运行twp (adduser和deluser)命令,而第二行将相同的特权分配给/etc/group文件中的“tech”组中的任何人。
世卫组织和w
who和w命令向您显示谁已登录到系统中,而w则显示更多信息,如他们从何处登录、何时登录以及空闲了多长时间。
$ w 18:03:35上升9天,22:48,2个用户,平均负载:0.00,0.00,0.00用户TTY从登录@空闲JCPU PCPU什么2 /dev/tty2 27Apr18 9天7:34 0.09s /usr/lib/x86_64-linux shs pts/1 192.168.0.15 09:50 0.00s 0.00 w
如果您不喜欢运行visudo命令时调用的默认编辑器,请使用“sudo update-alternatives - config editor”命令。它将提供一些编辑器作为选项和改变您的设置。
去年
最后一个命令显示用户最近的登录情况,当您试图跟踪更改或其他活动时,它通常很有帮助。
5月2日07:01 - 08:29 (01:27)wtmp开始于2018年5月1日星期二10:21:35
尼莫已经有一段时间没有登录了。他可能正在度假(可能在钓鱼?),或者刚刚离开公司。这类信息可以帮助您决定是否需要对此进行跟踪。
找到
find命令用于许多类型的搜索。当涉及到安全性时,您可能会发现自己要查找的文件没有所有者(没有相应的帐户),或者是世界可写和可执行的。Find命令很容易编写,但是需要熟悉它的许多选项,以便定义要查找的内容。这两个命令中的第一个将查找当前没有定义所有者的文件。第二步是找到任何人都可以运行和修改的文件。
$ sudo find /home -nouser $ sudo find / -perm -o=wx
请记住,第二个命令中的-o指的是“其他”组,而不是所有者,也不是与文件相关的组。
文件
file命令查看一个文件,并根据文件的内容(而不是名称)确定文件的类型。许多文件(如jpeg文件)在标识它们的文件开头附近包含标识符。下面示例中的“.jpg”文件很明显不一个真正的jpeg文件,但一个可执行的-尽管它的名字。