我正在slicehost上运行一个web服务器,并决定删除不用/不必要的用户。 但是我真的不知道哪些是系统工作所必需的
我用它作为Apache的networking服务器与MySQL,PHP,的memcached,SSH和proftpd。
这是/ etc / passwd中的用户列表。
我怎样才能决定删除哪些?
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh libuuid:x:100:101::/var/lib/libuuid:/bin/sh sshd:x:101:65534::/var/run/sshd:/usr/sbin/nologin MYUSER:x:1000:1000:,,,:/home/MYUSER:/bin/bash mysql:x:102:105:MySQL Server,,,:/var/lib/mysql:/bin/false Debian-exim:x:103:106::/var/spool/exim4:/bin/false ftp:x:104:65534::/home/ftp:/bin/false logcheck:x:105:107:logcheck system account,,,:/var/lib/logcheck:/bin/false proftpd:x:107:65534::/var/run/proftpd:/bin/false
以下是关于这个问题的debian文档: http : //www.debian.org/doc/manuals/securing-debian-howto/ch12.en.html#s-faq-os-users
手动创build的用户最终只有1000以上的uid(除非你指定了uid)。 只要手动不要触及1000+以上的用户。
100+范围内的某些帐户是与正在运行的程序(Apache,MySQL,ProFTPd)相关联的用户。 一般来说,你应该让软件包处理这些用户,而不是试图手动pipe理它们。
很难说,所有的用户都在那里,因为守护进程和cron作业需要它。
但是我可以告诉你哪些是你不能删除的。
做一个top , ps -aux或类似的东西,并检查用户; 如果有一个由“nobody”用户启动的进程,则不能删除它。 如果您觉得这些进程不在那里,那么停止守护进程并卸载它的包,然后删除用户。
另外检查crontab和cron.d,如果你删除了启动cron作业所需的用户,那么这个作业永远不会再工作。
对于用作pipe理用户的其他用户,如果您不确定如何删除它,可以将其shell设置为/ bin / false。 用户将保持在那里,但没有人会从中得到一个壳