二、Unix 安全概览
原文:Unix Security Basics 译者:飞龙
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)
目录上的权限
- r:可以列出目录
- w:可以在目录中创建或删除文件或目录
- x:可以进入目录
修改权限:chmod
完全访问控制列表:getfacl
和setfacl
。
默认文件权限
授予新创建的文件的默认文件权限是什么?
默认权限储存在umask
环境变量中
umask
:你不想要的权限
一些系统中的默认值:022
- 它会将新文件的权限设为
rw-r--r--
.
最安全的值:077
- 将新文件的权限设为
rw-------
。
通过执行这个命令检查你自己的设置:
代码语言:javascript复制% 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
)。
杂项
代码语言:javascript复制% 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)