码迷,mamicode.com
首页 > 系统相关 > 详细

Linux用户及权限

时间:2015-12-17 07:09:25      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:linux   用户      权限   

在生活中,不同身份有不同权限,在Linux中亦是如此。使用不同身份登录系统,则对文件拥有不同限制的操作。而组,相当于用户的容器,类似于某某部门,某某部门有何权限,Linux系统对应的组就有这么一类权限。现在,我们先从用户与组谈起。

 

用户类别:

每个人都有唯一的***号,便于查找某人。而用户也有唯一的标识,称为UIDUserId),范围是0-65535。名字与UID之间需要进行名称转换,方便使用者与计算机来读取。而把用户名与ID对照表存储在一个库里:/etc/passwd

人有千千万,有人高高在上,有人垂首寒酸,在Linux中就有这么一个“独裁者”:管理员,我们用0标识,拥有最高权限,可指点江山。而最多的“平民”,分两种:系统用户与登录用户。在CentOS6中,系统用户ID1-499,登录用户为500-60000。而在CcentOS7中,系统用户ID1-999,登录用户为1000-60000

 

组类别:

与用户类别类似,组也可以分为管理员组,与普通用户组,而普通用户组又分为,系统组与登录组。他们对于的GIDGroupId)与用户类别相同。而组的解析库在/etc/group中存放。

不同的是组还有其他两种类别。在用户的角度,可以有主组(基本组),和附加组。而在组的角度,如果一个组只有一个用户,且与这个用户名相同,那么这个组就称为这个用户的私有组。相反,如果组内包含多个用户,那么称为公共组。

下面列举几个用户与组的操作命令:

组操作:

添加组:groupadd命令

格式:groupadd [选项] group

选项:-g GID:指定GID,默认是上一个组的GID+1

      -r:创建系统组;

例:groupadd -g 1024 mageedu

创建GID1024,组名为mageedu

 

修改组属性:groupmod命令

格式:groupmod [选项] GROUP

选项: -g GID:修改GID

     -n new_name:修改组名

例:groupmod -g 1124 -n mage mageedu

修改mageeduGID1124,组名为mage

 

删除组:groupdel命令

格式:groupdel [选项] GPOUP

例:groupdel mage

删除组mage

 

用户操作:

添加用户:useradd命令

格式:useradd [选项登录名

选项:-u--uid UID:指定UID

      -g--gid GROUP:指定基本组ID,此组得事先存在;

      -G--groups :指明用户所属的附加组,多个组之间用逗号分隔

      -c--comment:指明注释信息

      -d--home:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

      -s--shell  SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shell文件中

      -r--system:创建系统用户

      -M:不为用户创建主目录 

  -D:显示创建用户的默认配置;

            技术分享

    -D 选项:修改默认选项的值;

注:修改的结果保存于/etc/default/useradd文件中

例:useradd -u 1024 -g1024 -G zhou -s /etc/tcsh -r -M mage

新建系统用户mageUID1024GID1024,附加组为zhou,指定shelltcsh,不创建家目录。

 

修改用户:usermod命令

格式: usermod [选项登录名

选项:-u--uid UID:修改用户的新ID

  -g--gid GROUP:修改用户所属的基本组;

      -G--groups :修改用户所属的附加组;原来的附加组会被覆盖

      -a--append:与-G一同使用,用于为用户追加新的附加组;

      -c--comment COMMENT:修改注释信息;

      -d--home HOME_DIR:修改用户的家目录,用户原有的文件不会转移至新位置;

  -m--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;

   -l--login NEW_LOGIN:修改用户名;

   -s--shell SHELL:修改用户的默认shell

   -L--lock:锁定用户密码,即在用户原来的密码字符串之前添加一个“!”;

   -U--unlock:解锁用户密码;

 

删除用户:userdel命令

格式:userdel [选项登录名

选项:-r:删除用户时一并删除家目录。

 

现在我们有了用户和组,就来说一下他们的权限。在Linux文件系统中,共有三类权限,分别为:读,写,执行,用字母rread),wwrite),xexcute)表示。每个文件共有三组,分别对应属主的权限uuser),属组的选项ggroup),其他用户的权限oothers)。而一个用户执行一个进程,那么这个进程所拥有的权限取决于这个用户,而不是进程自身。

Linux中找出一个文件为例:

-rw-r--r--. 1 root root 1973 12月 12 15:45 /etc/passwd

自第二位起至第九位,是对应的权限位。每三位为一组,分别为用户的权限,组的权限,与其他权限。“-”表示无权限,因此可以看出,此文件,用户有读写权限,组与其他用户只有读权限。那么,不同用户对于文件与目录的限制又是什么呢?

对于文件来说,读权限,可以获得文件的数据;写权限,可以修改文件的数据;执行权限,可以将这个文件运行为进程,这里是特别说明,一般的文件是没有执行权限的,所以要慎重操作!而对于目录来说,读权限,可以使用ls等命令获取所有的文件列表;写权限,可以在这个目录中创建或者删除文件;执行权限,则可以使用ls -l来获取所用文件的详细属性信息。

现在我们知道了“rwx”的属性。那么试想一下,是不是可以用对应的二进制数字来标识他们。例如,一个文件的用户权限为rw-,那把有权限的位置用1标识,无权限的位置用0标识,就变成了110。然后把这个数字转换为八进制,变成了6。那么,每个文件的三组权限,可以换成三个八进制数标识,这就叫做权限的组合机制。例如,某文件的权限是rw-r--r--,对应的二进制标识为110 100 100,再转换为八进制是644

下面就来设置一下权限,使用chmod命令。

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

chmod [OPTION]... --reference=RFILE FILE...

首先可以根据八进制数字标识来修改:

例如想修改/tmp/test.txt/文件的权限为rw-r--r--,可以直接按照八进制标识修改。

chmod 664 /tmp/test.txt

也可以直接操作一类用户的所有权限位:

如果修改test.txt的权限依旧为rw-r--r--

chmod u=rw,g=r,o=r /etc/test.txt,还可以单独指定用户类别来赋予权限,所以这种方法非常灵活多用。

对单个权限位进行设置:

chmod u+w,g+w,o-r /etc/test/txt,逐位操作,大大提高了便利性!

可以参考某个文件的权限,然后设置自己的权限。

chmod --reference=/etc/test /etc/test.txt这条命令就是参照test的权限,把test.txt的权限设置与test相同。

chmod命令有一个重要选项-R--recursive,表示递归修改,能把目录内所有文件的权限同时更新。

怎么修改一个文件的属主与属组,需要用到chownchgrp命令。

 chown命令:修改属主(也可修改属组);

          chown [OPTION]... [OWNER][:[GROUP]] FILE...

          chown [OPTION]... --reference=RFILE FILE...

例如:chown mageedu /tmp/test.txt,把test.txt的属主设置为mageedu

  chown magedumagedu /tmp/test.txt

test.txt的属主设为magedu,属组为magedu

     chgrp命令:修改属组

          chgrp [OPTION]... GROUP FILE...

          chgrp [OPTION]... --reference=RFILE FILE...

     chownchgrp命令也有-R选项,表示递归修改。

   特别说明:只有管理员才能修改用户的属主和属组。

如果新建一个目录,或者文件,默认的权限是什么呢?当然不应该为777,这时候需要定义一个默认的权限。需要用到,umask,它的作用是设置一个遮掩码,用新建文件时的权限减去这个遮罩码,得到的就是默认权限。例如遮罩码为002,那么新建一个文件默认的权限就为777-002775。特别说明,文件的默认权限是666,目录为777,因为文件默认不能够拥有执行权限。而一个文件默认权限减去遮罩码正好有执行的话,会加1。例如设置的遮罩码为033,而666-033=633,组和其他用户有执行权限,它会把有执行权限的位加1,变成644

  直接使用umask命令,能够查看当前的umask。而使用umask MASK命令,可以设置。例如,umask 022,就把当前shell的遮罩码设置为022

Linux用户及权限

标签:linux   用户      权限   

原文地址:http://zhouyuanhang.blog.51cto.com/10907853/1725384

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!