CentOS VPS新手教程(2)用户及权限
当成功以root用户登录服务器后,下一步就要为你的服务器创建一些非超级管理员的普通用户。
为什么不只使用root用户来管理VPS
由于root用户在linux下权限最大,它可以随意修改文件系统中的任意文件(当然包括删除文件),这会使以root运行的程序有极高的风险性。
我们可以通过创建不同的用户,使他们拥有对于不同文件、程序具有不同的操作权限来避免系统由于某用户的权限过大而造成一些不必要的麻烦,使得系统中的文件与程序都是井井有条的。
用户与组
在Linux中用户与组是两个相关的概念。一个组由多个用户组成,而一个用户可以属于多个组。由于对于单一用户的管理太过复杂,通常存在很多个用户拥有相似或重复的用户权限、或者他们可以共用某个目录,我们可以通过管理组来批量的管理从属于这个组的用户所具有的权限。
如何管理用户
创建或删除用户必须以root权限运行。
创建用户
例如,创建一个名为scott的用户
1
# useradd scott
为新创建的用户设置密码
1. root为其添加
1
# passwd scott
2. 用户自己初始化密码
1
$ passwd
删除用户
例如,删除名为scott的用户
1
# userdel scott
删除用户的同时,删除属于他目录下的档案
1
# userdel -r scott
查看所有用户
所有的用户都写入了/etc/passwd文件中,可以通过显示该文件来显示所有的用户
1
# cat /etc/passwd
在第一个冒号前的就是用户名。
如何管理组
创建组
例如,创建一个名为group_name的组
1
# groupadd group_name
同时,也可以在创建用户的同时为其分配组
例如创建scottde的同时分配他到group_name组中
1
# useradd scott -G group_name
如果不加组参数,系统将默认为其分配一个和其名字相同的组(在上述例子中就为scott分配进了scott组里)。
删除组
例如,删除名为group_name的组
1
# groupdel group_name
用户与组的权限
在Linux系统中,任何一个文件、文件夹都指定了用户、用户组对其相关的权限。
通过如下命令能显示/usr路径下的文件与文件夹的权限设置
1
# ls -l /usr
部分返回结果如下,
1
总计 140
2
drwxr-xr-x 3 root root 20480 06-22 15:44 bin
3
drwxr-xr-x 2 root root 4096 2011-05-11 etc
4
drwxr-xr-x 2 root root 4096 2011-05-11 games
最前面那段就是该文件的权限属性。其中第一个字符d表示是文件夹;如果为-,就表示为文件。后面的9个字符分别代表了三种用户对于该文件的权限。
我们可以把后面的9个字符拆成三部分看rwx r-x r-x。这三部分分别指代了所属用户(这里是root)、所属组用户(这里是root,第二个root)以及其他用户对于文件的读、写、执行权限。
可以直观地看出r指代读权限、w指代写权限、x指代执行权限。但它们被-所替换时就表示不具备这个权限。
给文件分配权限
例如,我们要给某文件readme.txt分配权限:所属用户具有读、写、执行权限,所属组具有读、写权限,其他用户没有权限。
1
# chmod 760 readme.txt
上述的三位数字分别对应所属用户、所属组、其他用户的权限。它是这么算出来的,
1
7=111B
2
6=110B
3
0=000B
也就是说分别对应rwx取值二进制对应的十进制数。
如果仅仅是简单的授予、剥夺某个权限,可以使用下面的,
例如,给所属用户添加读、写权限,
1
# chmod u+rw readme.txt
u表示所属用户(user),对应的g表示所属组(group),o表示其他用户(other)
+代表授予,对应的-表示剥夺。
rw就表示读写权限。