二、Unix 安全概览
译者:飞龙
1 用户和用户组
用户
root
:超极用户(UID = 0)daemon
:处理网络。nobody
:不拥有文件,用作非特权操作的默认用户。- Web 浏览器可在这个模式下工作。
- 用户需要使用密码登录。加密的密码储存在
/etc/shadow
。 用户信息储存在
/etc/passwd
,之前(不再)用于储存密码的地方。下面是这个文件的一个条目的示例:john:x:30000:40000:John Doe:/home/john:/usr/local/bin/tcsh
用户组
- 有时候,如果我们把权限授予一组用户,会更加方便,例如,我们打算基于用户组来授予权限。
- 用户拥有基本组(在
/etc/passwd
中列出),并且它和用户创建的文件相关。 - 任何用户都可以是多个组的成员。
组信息储存在
/etc/group
中。% groups uid (display the groups that uid belongs to)
对于使用 NIS(网络信息服务,最开始叫做黄页(YP))的系统,我们可以使用命令
ypcat
来获取组信息:% ypcat group (can display all the groups and their members)
2 文件权限
- 文件权限
- Unix 中权限位的含义
- 所有者(u)、用户组(g)和其它(o)
- 可读(r)、可写(w)、可执行(x)
- 示例:
-rwxrwxrwx
(777)
- Unix 中权限位的含义
- 目录上的权限
- r:可以列出目录
- w:可以在目录中创建或删除文件或目录
- x:可以进入目录
- 修改权限:
chmod
- 完全访问控制列表:
getfacl
和setfacl
。 默认文件权限
- 授予新创建的文件的默认文件权限是什么?
- 默认权限储存在
umask
环境变量中 umask
:你不想要的权限- 一些系统中的默认值:022
- 它会将新文件的权限设为
rw-r--r--
.
- 它会将新文件的权限设为
- 最安全的值:077
- 将新文件的权限设为
rw-------
。
- 将新文件的权限设为
通过执行这个命令检查你自己的设置:
% umask
修改
umask
值。你可以执行下列命令,或者将其放入你的.profile
文件中。% umask 077
3 安全相关的命令
切换用户
将你的用户 ID 切换为
xyz
,su
意思是“替代用户”。% /bin/su xyz
切换为
root
。这是获得超级用户访问权的常见方式。一旦你进入了超级用户账户,提示符就会变成静好(#
)。% /bin/su -
使用超级用户权限来执行命令。有时,我们只想要使用超级用户权限执行命令。我们不执行
su
来切换root
,而是执行命令,我们可以使用sudo
命令。(view the shadow file as a superuser) % sudo more /etc/shadow
为了能够只用
sudo
作为超级用户执行命令,(root)需要向用户授予权限。这通过/etc/sudoers
文件完成。
变更文件所有者
chown
命令% chown wedu file
Q:我能允许用户将文件所有者变更为另一个用户吗?
- 不能,实际上,只有
root
才可以使用chown
,为什么呢? - 我们会在学习
Set-UID
之后了解原因。
- 不能,实际上,只有
变更文件组
chgrp
命令% chgrp seed /home/seed/785
Q:我可以允许用户将文件组变更为另一个组吗?
- 可以/不行。如果你想要变更为组
xyz
,你必须是xyz
组的成员。 - 原因类似于
chown
命令,(Set-GID
)。
- 可以/不行。如果你想要变更为组
杂项
% whoami (to print out your current user name) % /usr/bin/id (display both uid and gid) % man chmod (find the manual for the chmod command)