> Linux教程 > linux基础 >

Linux用户、用户组和文件权限控制的学习

今天对Linux的管理权限进行了学习,现在进行一下总结。
用户组、用户、文件及相应的权限。

用户组:一个用户组可以有多个用户,并且可以有两种用户(这些用户可以是primary用户,也可以是附属于这个用户组的用户),创建用户组的时

候没有问题,但是在删除用户组的时候需要删除这个用户组中的所有primary用户(就是用户的gid是这个用户组的那些用户)才能删除这个用户组

。
使用groupadd创建用户组,使用groupdel删除用户组,通过usermod来项这个用户组添加primary或者普通用户。之后可以在/etc/group文件

和/etc/gshadow文件查找存在的用户组以及每个用户组包含那些用户的情况,但是无法查看这个用户组的primary用户都有那些,这个需要

在/etc/shadow文件中查看。

用户: 一个用户可以属于多个用户组,但是只能是一个组的primary用户,这个可以在创建用户的时候通过指定gid来指定是哪个组的primary用户

,也可以通过修改/etc/passwd文件来修改,同时也可以通过usermod -g命令来修改。也可以把这个用户加入到其他的用户组中,这个可以通过

usermod -G来修改,也可以通过直接修改/etc/group文件来修改。
使用useradd来创建用户,通过userdel(注意-f参数的使用)来删除用户,通过usermod来更改用户的gid和把用户加入其他的用户组。之后通过

查看/etc/passwd和/etc/group文件来确定是否修改成功。有些也可以直接通过修改文件来达到和使用命令相同的目的。

文件权限:拥有者、所属组、其他人
groupadd testg01
useradd -g testg01 testu01
useradd testu02(这个时候默认又创建了一个testu02组,并且testu02用户就是它的primary用户)
useradd testu03(同上)
usermod -G testg01 testu02(把testu02也加入了testg01用户组,但不是testg01组的primary用户)

之后通过passwd在root用户下设定以上用户的密码。
cd /home
chomod 711 /testu01(如果不修改这个文件夹权限则其他用户无法使用cd命令进入这个文件夹)

cd /home/testu01
touch test.sh(时候向这个脚本写入打印hello的脚本代码)
chmod 755 test.sh

su - testu02
sh /home/testu01/test.sh
vi /home/testu01/test.sh(这个时候告诉是只读文件,因为没有所属组用户的写权限)

su - testu03
sh /home/testu01/test.sh
vi /home/testu01/test.sh(同上,因为没有开其他用户的写权限)

cd /home/testu01
chomod 711 /testu01

su - testu02
sh /home/testu01/test.sh
vi /home/testu01/test.sh(这个时候打不开文件,因为没有所属组用户的读写权限)

su - testu03
sh /home/testu01/test.sh
vi /home/testu01/test.sh(同上,因为没有开其他用户的读写权限)
至此,文件权限的问题已经搞清楚了。

之后:
userdel -f testu01
groupdel testg01(可以删除成功,因为只有一个primary用户已经删除,如果testu02也是primary用户则此时还要删除testu02才能删除组)
groupdel testu03(不可以,因为有primary用户存在)
userdel -f testu03
groupdel testu03
至此搞定。
(责任编辑:IT)