我想知道如果有人使用非root帐户访问我的服务器,他能造成多大的损害?
我su someuser
使用此命令查找所有可写入的文件和文件夹。
find / -writable >> list.txt
结果如下. 大部分是 /dev/something 和 /proc/something 以及这些
/var/lock
/var/run/mysqld/mysqld.sock
/var/tmp
/var/lib/php5
我的系统安全吗?/var/tmp 有意义,但我不确定为什么该用户对这些文件夹具有写访问权限。我应该更改它们吗?
stat /var/lib/php5
给出 1733,很奇怪。为什么有写入权限?为什么没有读取权限?这是临时文件的某种奇怪用法吗?
答案1
用户需要访问某些系统级区域才能运行某些软件。例如,/var/run/mysqld/mysqld.sock
他们必须能够访问才能与数据库交互。
/var/run 通常包含运行时数据,例如 unix 套接字和 pid 文件。
/var/lock 包含锁定文件,以允许软件防止读/写冲突等,并允许独占打开文件(文件锁定等)。
/var/lib/php5 有一个非常特殊的文件访问模式 - 1733 - 开头的 1 很重要:
从man chmod
1000 (the sticky bit). See chmod(2) and sticky(8).
因此,man sticky
我们得到:
STICKY DIRECTORIES
A directory whose `sticky bit' is set becomes an append-only directory,
or, more accurately, a directory in which the deletion of files is
restricted. A file in a sticky directory may only be removed or renamed
by a user if the user has write permission for the directory and the user
is the owner of the file, the owner of the directory, or the super-user.
This feature is usefully applied to directories such as /tmp which must
be publicly writable but should deny users the license to arbitrarily
delete or rename each others' files.
这意味着它是一种特殊的安全模式,允许用户在目录中创建或编辑文件,但只有文件本身的所有者才能删除它。