Linux是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。
例如,某台 Linux 服务器上有 4 个用户,分别是 root、www、ftp 和 mysql,在同一时间内,root 用户可能在查看系统日志、管理维护系统;www 用户可能在修改自己的网页程序;ftp 用户可能在上传软件到服务器;mysql 用户可能在执行自己的 SQL 查询,每个用户互不干扰,有条不紊地进行着自己的工作。与此同时,每个用户之间不能越权访问,比如 www 用户不能执行 mysql 用户的 SQL 查询操作,ftp 用户也不能修改 www 用户的网页程序。
不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
因此,如果要使用 Linux 系统的资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统(账户和用户是一个概念)。通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
每个用户都有唯一的用户名和密码。在登录系统时,只有正确输入用户名和密码,才能进入系统和自己的主目录。
在多用户环境或者服务器上,对于某个用户,如果设置了文件不可访问,那么这个命令就可以解决linux命令,如果设置了错误的权限,那么也就提供了为授权的访问。不幸的是,很多服务器并没有检查用户访问/secret/script.php 的权限,只检查了/cgi-bin/php 的权限,这样任何能访问/cgi-bin/php 的用户就可以访问web 目录下的任意文件了。例如,对于一个文件系统的权限来说,用户a和b只具有查看和拷贝该文件系统下某些文件的权限linux命令,而用户c和d不仅有查看和拷贝文件的权限,也具有修改和删除文件的权限,这些权限的划分和授权需要事先通过专门管理员进行操作。
显然,这种方法不太合理。最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。
将用户分组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化了对用户的管理工作。
用户和用户组的对应关系有以下 4 种:
首先,在users里点右键先建立你的用户、组档案吧(把一批用户放进一个组并给该组设置权限可以让这组里的所有用户都拥有该组的权限并进一步获得其个人用户的权限),组里要设置的东西不多,description是组的描述,随便填好了,member是组里的成员,可以把你希望属于该组的用户都加进来,把另外一个组加进来表示该组的所有用户享有和本组同等的权限。在根目录下只有root只有写操作,root创建的目录/sharedoc自然所有者为root,所属组为root管理员,看到用户user1并不是所属组的成员更不是所有者,属于其他人(others),其他成员只具备'r-x'即可读可执行的权限,并不具备写权限,所以即便samba中授权用户user1有写权限也无济于事。以www代理为例,将默认的everyone删除,在权限栏中按"添加",在"指定用户或组群"选择一用户或组,下方选取"用户可以假定",确定,并将默认权利(系统权限)中改为"必须同时要",这样你就允许一个用户进行http操作了。
用户和组之间的关系可以用图 1 来表示:
图 1 Linux 用户和组
linux命令查看:
cat /etc/passwd 查看所有用户信息
cat /etc/group 查看所有组信息
groups 用户名 查看当前用户所在组,以及组内其它成员的信息