Linux用户组、用户及权限详解分析

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念

所有者

一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者

用ls ‐ahl命令可以看到文件的所有者

也可以使用chown 用户名 文件名来修改文件的所有者

文件所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

用ls ‐ahl命令可以看到文件的所有组

也可以使用chgrp 组名 文件名来修改文件所在的组

其它组

除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

添加组的命令: groupadd 组名 。 (在root管理权限)

查看Linux信息

查看Linux中所有组的信息: cat /etc/group

创建用户,并同时指定将该用户分配到哪个组里: useradd -g 组名 用户名。 (在root管理权限)

查看linux中所有用户的信息: cat /etc/passwd

更改某个用户所在的组: usermod -g 组名 用户名。 (在root管理权限)

权限含义详解:

权限分为三种: r 代表可读,用4表示。 w 代表可写,用2表示。 x 代表可执行,用1表示。 

-rw-r--r--  的解释如下, :

第一位的‘-’ 代表文件类型。 【'd' 代表目录,'|' 代表链接】。

第二位到第四位的‘rw-’,代表该文件的所有者对该文件的权限。

第五位到第七位的‘r--’,代表该文件所在的组的其他用户对该文件的权限。

第八位到第十位的‘r--’,代表其他组的用户对该文件的权限。

chmod命令:使用例: chmod 760 目录/文件

意思是 :

给该目录/文件的所有者对该目录/文件赋予rwx权限7,

给该目录/文件所在的组的其他用户对该目录/文件赋予rw-权限6,

给其他组的用户对该目录/文件赋予---权限0。

chmod 755 abc :赋予abc权限rwxr-xr-x。

chmod u=rwx,g=rx,o=rx abc :同上 u=用户权限  g=组权限 o=不同组其他用户权限。

chmod u-x,g+w abc :给abc去除用户执行的权限,增加组写的权限。

chmod a+r abc :给所有用户添加读的权限。

改变拥有者(chown)和用户组(chgrp)命令

chown leixiaotianabc :改变abc的拥有者为leixiaotian。

chgrp root abc :改变abc所属的组为root。

chown root ./abc : 改变abc目录的所有者是root。

chown -R root ./abc :改变abc目录及其下面的所有目录和文件的所有者是root。参数-R 是递归的意思。

CHMOD

U文件所有者

G文件所在组用户

O其它用户

RWX=421  三个位可以相加,权限叠加 读权限是4,写是2,读写权限是6

chmod U+R install.log 给install.log授读的权限

chmod u=rw install.log给install.log授读写的权限

也可以用下面的方式

chmod 666 install.log给install.log给所有者用户,组用户,其它用户全部授读写权限

chmod -R 666 test 给test文件夹所有者,组用户,其它用户全部授读写权限,test文件夹和子文件夹拥有同样的授权,注意-R必须大写

改变权限的命令

chmod 改变文件或目录的权限

chmod 755 abc:赋予abc权限rwxr-xr-x

chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限

chmod a+r abc:给所有用户添加读的权限

查看Linux中所有组和用户的信息详解

Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在 /etc/shadow 中核对该 UID 对应的 PWD 是否正确,正确则登录到该用户的 shell。

1.1 /etc/passwd详解:

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

用户名:密码X:用户id0:组id0:描述信息root:用户根目录/root/:用户登录后的shell

x 是表示此处为空;采用shadow passwd,影子密码


帐号名:用户名称,root 是系统默认最高管理员用户。

密码:由于密码保存在 /etc/shadow 文件,所以这里用 “x” 表示,如果没有设置口令,则该项为空。

用户ID:系统内部用户的唯一标识ID,其中用户 ID 有以下几种:

0 代表系统管理员,如果想建立一个系统管理员,可以先建立一个普通帐户,再将其用户ID改为 0 。1-500 系统预留 ID,500 以上是普通用户 ID。

组ID:用户组标识 ID ,/etc/group 有关。

描述信息:帐号的描述。

用户根目录:用户登录起始目录,登录系统后首先进入此目录。root 用户默认是 /root,普通用户则是 /home/用户名。

用户登录shell:用户登录系统后使用的 shell。

1.2 /etc/shadow详解:

早期的 unix 系统,用户帐号、密码都保存在 passwd ,即使密码以密文方式保存在 passwd 中,但 passwd 文件对所有用户可读,存在安全隐患。现在 Linux 使用“shadow”保存密码的密文,使用passwd文件保存用户帐号信息。“shadow” 文件只有管理员用户才可以访问。

cat /etc/shadow | tail -4

[root@localhost ~]# cat /etc/shadow | tail -4
tcpdump:!!:16820::::::
avahi-autoipd:!!:16820::::::
oprofile:!!:16820::::::
unbound:!!:16897::::::

总共9个字段

root:$1$ZowvYCeU$ZCF.3th3FJNEoAB2EZoHw.:16821:0:99999:7:::

帐户名称:用户名称,和 passwd 的意思相同。

密码: 用户密码的密文。

密码栏的第一个字符为 “*” 表示这个用户不能登录,如果不想让此用户登录,在他前面加个“*” ;

第一个字符为“!”,则表示该用户被禁用,新创建的用户还没密码时就是禁用状态,使用“!!”表示;

第一个字符为“空”,表示用户没有密码,登录时不需要密码。

上次改动密码的日期:密码的最后更改日期,为什么是 15181 ?因为 Linux 计算日期是以1970年1月1日作为1,1971年1月1日就是366,因此推导我修改密码的日期表示为 15181。

密码不可被改动的天数:表示多久后才可以改密码。“0” 表示可以随时更改。

密码需要重新更改天数:必须在这个时间内更新密码,否则帐号将会暂时失效。99999,表示密码不需要更新。

密码变更期期限快到前的警告期:帐号密码失效期限快到时,系统依照这个字段设定,发出警告,提醒用户密码将过期请更新密码,默认是 7。

帐号失效期:如果过了警告期没有更新密码,使得密码失效,并且用户在这个字段限定的时间内没有向管理员报告,让帐号重新激活,这个用户将暂时失效。

帐号取消日期:这个字段也使用1970年以来的日期计算方法,表示用户在此字段规定的时间之后将无法再使用。

保留:保留字段。

1.3 /etc/group 详解:

从第一行开始分析,一共有四项,依次为:

Linux用户组、用户及权限详解分析_第1张图片

组名称:用户组名称了。

组密码:一般不需设定,很少使用群组登录。但这个密码也保存在 /etc/shadow 中。

组ID:用户组ID了。

支持帐号的名称:这个群组的所有帐号。如果你想让david用户属于root这个群组,在第一行最后加上 “,david” 注意添加的时候没有空格。

【参考】

groupadd 组名,在linux中添加组

vi /etc/group,查看linux中所有组信息,可以看可以编辑

cat /etc/group,查看linux中所有组信息,只可以看不可以编辑

useradd ‐g 组名 用户名,创建用户的同时指定将该用户分配到哪个组下

vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑

cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑

你可能感兴趣的:(linux)