Linux系统下用户以及权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统下用户以及权限管理相关的知识,希望对你有一定的参考价值。

参考技术A

一、操作系统中的用户管理 相关配置文件解读

Linux用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下:

/etc/passwd 保存操作系统中的所有用户信息

root : x : 0 : 0 : root : /root : /bin/bash

name:password:UID:GID:GECOS:directory:shell

用户名 :密码占位符 :uid :基本组的gid :用户信息记录字段:用户的家目录:用户登录系统后使用的命令解析器

————————————————

字段1:用户名

字段2:密码占位符

字段3:用户的UID 0 表示超级用户 , 500-60000 普通用户 , 1-499 程序用户

字段4:基本组的GID 先有组才有用户

字段5:用户信息记录字段

字段6:用户的家目录

字段7:用户登录系统后使用的命令解释器

————————————————

UID:0表示超级用户, 程序用户 (1-499),普通用户 (500以上60000以下),根据uid将用户分为以上三类用户。

/etc/shdaow 保存用户密码(以加密形式保存)

[root@xing /]# cat /etc/shadow

root : $6$Jw5XsDvvNBH5Xoq. : 19180 : 0 : 99999 : 7 : : :

用户名:密码(加密后的字符串):最近一次的修改时间【距离1970年1月1日的距离】:密码的最短有效期:密码的最长有效期:密码过期前7天警告:密码的不活跃期:用户的失效时间: 保留字段

————————————————

字段1:用户名

*字段2:用户的密码加密后的字符串(sha)

字段3:距离1970/1/1密码最近一次修改的时间

字段4:密码的最短有效期

*字段5:密码的最长有效期(建议时间 90)

字段6:密码过期前7天警告

字段7:密码的不活跃期

字段8:用户的失效时间

字段9:保留字段

这个字段目前没有使用,等待新功能的加入。

————————————————

/etc/group 保存组信息

————————————————

root:x:0:

bin:x:1:bin,daemon

组名:组的密码占位符:gid:附加组成员

————————————————

/etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制

/etc/default/useradd 显示或更改默认的useradd配置文件

二、文件及目录权限

文件与权限: 即文件或者目录属于哪个用户,属于哪个组,不同的用户能对该文件进行何种操作。

————————————————

注:

查看文件权限: ls -l 文件

查看目录权限 : ls -ld 目录

————————————————

[root@xing Desktop]# ls -l /root/Desktop/

total 70584

lrwxrwxrwx. 1 root root 18 Jul 14 14:32 123.txt -> /root/Desktop/ming

-rw-r--r--. (文件属性) 1 (链接个数: 表示指向它的链接文件的个数 root (所属者) root (所属组) 0(文件大小:单位byte) Jul 14 14:14(最后一次修改时间) 2.txt(文件名)

drwx------.(文件属性) 7 (目录中的子目录数: 此处看到的值要减2才等于该目录下的子目录的实际个数。 root (所属者) root (所属组) 4096 (文件大小:单位byte)Jul 13 16:56(最后一次修改时间) vmware-tools-distrib(目录名)

[root@xing Desktop]# ls -ld /root/Desktop/

drwxr-xr-x. 3 root root 4096 Jul 14 14:44 /root/Desktop/

————————————————

文件属性解释:

- rw- r-- r-- .

d rwx r-x r-x .

字段1:文件类型 【- 普通文件 d目录 l符号链接 b块设备】

字段2:文件所有者对该文件的权限

字段3:文件所属组的权限

字段4:其他用户的权限(既不是文件所有者也不是文件所属组的用户)

字段5:表示文件受 selinux 的程序管理

8进制赋权法: r 【100】4; w【010】2; x【001】1

————————————————

三、用户以及权限管理命令汇总:

————————————————

用户增删改命令

useradd

userdel

usermod

————————————————

用户组增删改命令

groupadd

groupdel

groupmod

————————————————

passwd

change

————————————————

文件权限修改: chmod命令

chmod 对象 算数运算符 权限 文件

[root@xing tmp]# ls -ld ming

drwxr-xr-x. 2 root root 4096 Jul 16 10:27 ming

[root@xing tmp]# chmod o-x ming

[root@xing tmp]# ls -ld ming

drwxr-xr--. 2 root root 4096 Jul 16 10:27 ming

————————————————

文件所属者修改:

chown 用户 文件

[root@xing tmp]# chown ming ming

[root@xing tmp]# ls -ld ming

drwxr-xr--. 2 ming root 4096 Jul 16 10:27 ming

————————————————

文件所属组修改:

chgrp 组 文件

[root@xing tmp]# chgrp ming ming

[root@xing tmp]# ls -ld ming

drwxr-xr--. 2 ming ming 4096 Jul 16 10:27 ming

————————————————

8进制赋权法

[root@xing ~]# chmod 644 /tmp/ming

[root@xing ~]# ls -ld /tmp/ming

drw-r--r--. 2 ming ming 4096 Jul 16 10:27 /tmp/ming

————————————————

linux下命令“ll”是“ls -l"的别名。

————————————————

粘滞位:赋权后的文件 只有建立者可以删除

chmod o+t 文件

[root@xing ~]# chmod o+t /tmp/ming

[root@xing ~]# ll -d /tmp/ming

drw-r--r-T . 2 ming ming 4096 Jul 16 10:27 /tmp/ming

————————————————

sgid : 赋权后的目录,新建立的文件或者子目录的所属组继承父目录的所属组

chmod g+s 目录

[root@xing ming]# chmod g+s /tmp/ming

[root@xing tmp]# ll

drw-r-Sr-T. 2 ming ming 4096 Jul 16 11:29 ming

[root@xing ming]# touch 20.txt

[root@xing ming]# ll

-rw-r--r--. 1 root ming 0 Jul 16 11:33 20.txt

[root@xing ming]# mkdir 60

[root@xing ming]# ll

drwxr-sr-x. 2 root ming 4096 Jul 16 11:34 60

————————————————

suid :允许谁运行该文件具有该文件所属者的权限

chmod u+s 文件

[root@xing Desktop]# ll /usr/bin/vim

-rwxr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim

[root@xing Desktop]# chmod u+s /usr/bin/vim

[root@xing Desktop]# ll /usr/bin/vim

-rwsr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim

备注:linux 红底白字代表警告!

————————————————

[root@xing Desktop]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

suid:4 sgid:2 粘滞位:1

[root@xing Desktop]# find /usr/bin -perm 4 755

/usr/bin/at

/usr/bin/chage

/usr/bin/pkexec

/usr/bin/Xorg

/usr/bin/crontab

/usr/bin/newgrp

/usr/bin/vim

/usr/bin/gpasswd

/usr/bin/passwd

/usr/bin/ksu

————————————————

1、不再允许添加新用户的请求

chattr命令 :用于改变文件属性

chattr +i 文件

lsttr命令 :查看文件属性

lsattr 文件

[root@xing Desktop]# lsattr /etc/passwd /etc/shadow

-------------e- /etc/passwd

-------------e- /etc/shadow

[root@xing Desktop]# chattr +i /etc/passwd /etc/shadow

[root@xing Desktop]# lsattr /etc/passwd /etc/shadow

----i--------e- /etc/passwd

----i--------e- /etc/shadow

[root@xing Desktop]# useradd kk

useradd: cannot open /etc/passwd

2、umask

root用户的umask默认值是0022,一般用户默认是0002

目录的最高权限 0777-0022=0755

文件的最高权限 0666-0022=644

一般服务器配置umask的值配置为027最好;需要去修改两处文件中的umask值。

/etc/profile

/etc/bashrc

3、修改默认的密码最长有效期:修改以下配置文件

/etc/login.defs

Linux_用户组及权限管理

    Linux系统是一个多用户、多任务的操作系统!所谓的多用户是指多人同时使用系统资源、多任务则是指同时运行多个程序。

    用户分为管理员和普通用户,普通用户又分为系统用户和登录用户。其中管理员的权限是最大的,管理员具有在有限资源的情况下给不同用户分配资源,以及对不同用户的监控、管理。系统用户仅运行服务程序,而登录用户是系统资源的正常使用者

   在不同的CentOS版本上每个用户的用户标识(UID)也是不一样的。具有一定的限制。而管理员的UID是"0"。

   如在,CentOS 5,6版本上   系统用户的UID是1-499   普通用户的UID是500+

       CentOS 7.0版本上   系统用户的UID是1-999   普通用户的UID的1000+


   实现用户账号的管理,要完成的工作主要有:用户账号的添加、修改、删除、密码管理、用户组的管理……等等,下面将会介绍到这些!

  

   一、用户管理

      用户账号的管理工作主要涉及到账号的添加、修改和删除。

     1、添加新的用户账号使用"useradd"命令,常规选项如下。

      -g:指定用户的用户组      -G:指定用户的附加组

      -c:注释信息            -d:指定用户的家目录

      -m:强制创建家目录        -s:用户登录的Shell名

 例:

      技术分享

    如上图所示,新建一个用户"lweim",其登录Shell名是"bin/ksh",主目录是"/home/lweim";另一个新建用户"slackware",其登录Shell是"/bin/bash",主目录是"/usr/slackware"

     注意:新建用户"useradd"后面加"-d"和不加"-d"或加"-s"和不加"-s"是不同的。不加"-d"则是系统默认的家目录"/home/lweim"。加了"-d"则是指定的家目录"/usr/slackware"

        不加"-s"则是系统默认的登录Shell,加"-s"则是指定的登录Shell

  

    2、如过一个账号不在使用,可以从系统中删除掉,删除一个账号要使用到"userdel"命令,常规选项如下。

     -r:一并删除家目录

 例:

       技术分享

  由图可知。在删除用户"wangtc"时没有加"-r",其还有家目录。

        在删除用户"wangzix"时加了"-r",其家目录一并删除。


   3.用户的修改。就是修改用户的相关属性。如家目录、用户组、登录Shell……等等,用户修改要使用"usermod"命令,常规选项如下。

        -c:注释信息           d-:修改家目录的位置

        -s:修改登录Shell名

   例:

       技术分享

    使用"usermod"命令后,用户"lweim"的家目录从"/home/lweim"变更成"/usr/lweim"。登录Shell名从"/bin/ksh"变更成"/bin/bash"


   4.密码管理;

      用户管理的一项重要内容就是密码管理,超级用户(管理员)可以改变自己和其他用户的密码,普通用户只能修改自己的密码。其修改密码需要用到"passwd"命令,常规选项如下;

        -l:锁定密码             -u:解锁密码

        -d:清除密码

   例:

       技术分享



   二、用户组管理

      每一个用户都有一个用户组,也可以拥有多个附加组(即额外组)。用户组的管理涉及到用户组的添加、修改和删除。

     1、增加一个新的用户组使用"groupadd"命令,常规选项如下;

         -g:指定新用户组的组标识号     -r:创建一个系统组

  例:

         技术分享

    第一条命令是创建了一个名为"group1"的用户组,其组标识号为1001;

    第二条命令是创建了一个名为"group2"的系统组,其组标识号为986;


   

    2、修改用户组的属性使用"groupmod"命令,常规选项如下;

        -g:为用户组指定一个新的组标识号      -n:为用户组改一个新名字

    例:

            技术分享

        此命令是将用户组"group4"命名为新的名字"group5",且用户组标识号从"2223"变更成"3333"。


    3、如果要删除一个已有的用户组,要使用"groupdel"命令。

    例:

              技术分享

    此用户的命令是将用户组"group5"删除。


   

    三、权限管理

     Linux是一种典型的多用户系统,不同的用户处于不同的地位,也就具有不同的权限。每位用户访问同一文件或目录的权限也就不同。

     我们可以使用命令"ll""ls -l"来显示一个文件或目录的属性及所属的用户和组。常规选项如下;

    例:

        技术分享

     实例中,目录"etc"文件的第一个属性用"d"来表示,"d"在Linux中代表该文件是一个目录文件。其他属性如下;

     [-]:表示文件

     [l]:表示为链接文档

     [b]:表示为装置文件里面的可供存储的接口设备(可随机存取装置)

     [c]:表示为装置文件里面的串行端口设备,例如键盘、鼠标。

  

     "技术分享",除去第一个字符"d",接下来的字符中,以三位为一组,左三位是属主的访问权限(user)、中三位是属组的所有用户的访问权限(group)、右三位是其他用户的访问权限(others)。且均为[rwx]的三个参数组合。其中"r"代表可读权限、"w"代表可写权限、"x"代表可执行权限。"-"代表没有任何权限。

     注意:这三个权限的位置不会改变,且存在两种状态“要么有权限(用1表示)、要么没权限(用0表示)”。八进制的数都是由三位二进制的数组成,如下;

          ---:000   0

          --x:001   1

          -w-:010   2

          -wx:011   3

          r--:100   4

          r-x:101   5

          rw-:110   6

          rwx:111   7

      例:技术分享

       目录"etc"的权限是[rwxr-xr-x]

       user=rwx=5   group=r-x=5    others=r-x=5

      即目录"etc"的权限可表示为"755"


   1、想要变更权限,有三种方法。都需要使用"chmod"命令,常规选项如下;

       -R:进行递归的变更,即目录本身和目录以下的文件的权限会一同改变。

     (方法1):使用"u=,g=,o=或ug=等等"的方法来改变权限!

     例:

         技术分享

      上图所示,此命令使"etc"的权限从[rwxrwxr-x]变更成[rw-rw--x]。但是没有更改目录下的文件。想要更改连同目录下文件的属性一起更改,需要使用"-R"选项。如下图

        技术分享

  

    (方法二):使用"u+,g+,o+或ug+等等"的方法来改变权限!

    例:由(方法1)中的图所知目录"etc"的权限是[drw-rw---x],现在想要变更权限为[drwxrwxr-x],方法如下:

   例:   

          技术分享

     由上图可得,目录本身即目录下文件的权限都变更为[drwxrwxr-x]


     (方法三):上面说到,每一个权限都可以表达成一个八进制的数。例如"775"可表示权限为[drwxrwxr-x]、664可表示权限为[drw-rw-r--]。所以我们可以依据这个来改变目录及文件的权限。如果想把文件及目录的权限改为770(drwxrwx---),则方法如下;

     例:

        技术分享

     图中显示目录及目录下的文件的权限都改变为770.即[drwxrwx---];


  注意:方法一和方法二中的"u="和"u+"是不同的。

     "u="是某一组中的三位权限同时改变

     "u+"是改变某一组中某一位的权限

      例如:权限为"r-x-wx---"

          "u=r"则显示为[r---wx---]

          "u+w"则显示为[rwx-wx---]




    2、更改目录或文件的属组需要用到"chgrp"命令,常规选项如下。

        -R:目录下的所有文件的属组一同改变。

     例:

         技术分享 

      图中显示,目录"etc"及目录下所有文件的属组都从"root"变更成"mageedu"


   3、更改目录或文件的属主需要用到"chowm"命令,也可以同时更改目录或文件的属组。常规选项如下;

       -R:目录下的所有文件的属组一同改变。

    例:

         技术分享 

    图中目录"etc"及目录下所有文件的属主都从"root"变更成"wtc",属组都从"mageedu"变更成"lweimin"

本文出自 “11265133” 博客,请务必保留此出处http://11275133.blog.51cto.com/11265133/1749443

以上是关于Linux系统下用户以及权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux_用户组及权限管理

LINUX系统下的普通权限以及几种特殊权限

Linux用户用户管理的常见命令用法以及用户的权限管理

linux操作系统的目录以及用户权权限的管理

linux 新建用户用户组 以及为新用户分配权限

Linux系统上的特殊权限SUID,SGID,STICKY以及额外权限管理工具facl命令