扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Unix系统中的/etc/passwd文件含有全部系统需要知道的关于每个用户的信息(加密后的口令也可能存于/etc/shadow文件中)。/etc/passwd中包含用户的登录名、经过加密的口令、用户号、用户组号、用户注释、用户主目录以及用户所用的shell程序。其中用户号(UID)和用户组号(GID) 用于Unix系统惟一标识用户和同组用户及用户的访问权限。/etc/passwd中存放的是加密后的口令,用户在登录时需要输入的口令经计算后与/etc/passwd对应部分相比较,符合则允许登录,否则拒绝用户登录。用户可用passwd命令修改自己的口令, 但不能直接修改/etc/passwd中的口令部份。
一个好的口令应当至少有6个字符长,不要用个人信息做口令(如生日、名字、反向拼写的登录名、房间中可见的物品等),普通的英语单词也不好(因为可用字典攻击法),口令中最好有一些非字母(如数字、标点符号、控制字符等),还要好记一些, 不能写在纸上或计算机里的文件中。选择口令的一个推荐方法是将两个不相关的词用一个数字或控制字符相连,并截断为8个字符。当然,如果能记住8位乱码自然更好。
不应使用同一个口令在不同机器中使用,特别是不同级别的用户使用同一口令,可能导致安全隐患。用户应定期改变口令,至少6个月要改变一次,系统管理员可以强制用户定期做口令修改。为防止别人窃取口令,在输入口令时应注意保密。
文件和目录访问许可
文件属性决定了文件的被访问权限,即谁能存取或执行该文件。用“ls -l”可以列出详细的文件信息,如:
-rwxrwxrwx 1 pat cs440 70 Jul 28 21:12 zombin
上述信息中包括了文件许可、文件链接数、文件所有者名、文件相关组名、文件长度、上次存取日期和文件名。
其中文件许可分为四部分: 第一个rwx表示文件属主的访问权限; 第二个rwx表示文件同组用户的访问权限; 第三个rwx表示其他用户的访问权限。若某种许可被限制则相应的字母换为“-”。
在许可权限的执行许可位置上,可能是其他字母,如s,S,t,T。s和S可出现在所有者和同组用户许可模式位置上,与特殊的许可有关。t和T可出现在其他用户的许可模式位置上,与“粘贴位”有关而与安全无关。小写字母(x,s,t)表示执行许可为允许,负号或大写字母(-,S或T)表示执行许可为不允许。改变许可方式可使用chmod命令,并以新许可方式和该文件名为参数。新许可方式以3位8进制数给出。
chmod也有其他方式的参数可直接对某组参数修改,在此不再赘述,详见Unix系统的联机手册。
文件许可权可用于防止偶然地重写或删除一个重要文件。改变文件的属主和组名可用chown和chgrp,但修改后原属主和组员就无法修改回来了。
另外,用户ID许可(SUID)设置和同组用户ID许可(SGID)设置可作用于可执行的目标文件(只有可执行文件才有意义)。当一个进程执行时就被赋于4个编号,以标识该进程隶属于谁,分别为实际和有效的UID、实际和有效的GID。有效的UID和GID一般和实际的UID和GID相同,有效的UID和GID用于系统确定该进程对于文件的存取许可。设置可执行文件的SUID许可将改变上述情况,当设置了SUID时,进程的有效UID为该可执行文件的所有者的有效UID,而不是执行该程序的用户的有效UID,因此, 由该程序创建的进程和文件都有与该程序所有者相同的存取许可。这样,程序的所有者将可通过程序的控制在有限的范围内向用户发表不允许被公众访问的信息。 同样,SGID设置有效的GID。可用“chmod u+s文件名”和“chmod u-s 文件名”来设置和取消SUID设置;用“chmod g+s 文件名”和“chmod g-s 文件名”来设置和取消SGID设置。当文件设置了SUID和SGID后,使用chown和chgrp命令将全部取消这些许可。
在Unix系统中,目录也是一个文件,用“ls -l”列出时,目录文件的属性前带“d”。目录许可也类似于文件许可,用ls列目录要有读许可,在目录中增删文件要有写许可,进入目录或将该目录作为路径分量时要有执行许可,因此要使用任一个文件,必须有该文件及找到该文件的路径上所有目录分量的相应许可。仅当要打开一个文件时,文件的许可才开始起作用,而rm、mv只要有目录的搜索和写许可, 就不需要文件的许可,这一点应注意。
其他常用命令
1.umask命令
umask设置用户文件和目录的缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予某种存取许可。
2.cp、mv和cpio命令
cp命令拷贝文件时,若目的文件不存在则将同时拷贝源文件的存取许可,包括SUID和SGID许可。新拷贝的文件属拷贝的用户所有,故拷贝别人的文件时应小心,不要被其他用户的SUID许可破坏自己的文件安全。
mv命令移文件时,新移的文件存取许可与原文件相同,mv仅改变文件名。只要用户有目录的写和搜索许可,就可移走该目录中某人的文件且不改变其存取许可。若目录许可设置不正确,则用户的文件可被移到一个他不能修改和删除的目录中,将出现安全漏洞。
cpio命令用于将目录结构拷贝到一个档案文件中,然后可再用cpio命令将该档案文件转成目录结构。
档案文件存放每个文件的信息,包括文件所有者、小组用户、最后修改时间、最后存取时间和文件存取许可方式。 cpio的安全约定如下:
● 根据档案建立的文件保持存放于档案中的存取许可方式。
● 从档案中提取的每个文件的所有者和小组用户设置给运行“cpio -i”命令的用户,而不是设置给档案中指出的所有者和小组用户。
● 当运行“cpio -i”命令的用户是root时,被建立的文件的所有者和小组用户是档案文件所指出的。
● 档案中的SUID/SGID文件被重建时,保持SUID和SGID许可,如果重建文件的用户不是root, SUID/SGID许可是档案文件指出的用户/小组的许可。
3.文件加密
crypt命令可提供给用户加密文件,该命令用一个关键词将标准输入的信息编码为不可读的杂乱字符串,送到标准输出设备。再次使用此命令,用同一关键词作用于加密后的文件,可恢复文件内容。一般来说,在文件加密后,应删除原始文件,只留下加密后的版本,且应牢记加密关键词。
由于crypt程序可能被做成特洛依木马,故不宜用口令作为关键词。最好在加密前用pack或compress命令对文件进行压缩,然后再加密。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者