用户账户和组管理
用户和组分类:
Linux用户:超级用户(root)、系统用户、普通用户
Linux用户组:主要组(所属组)、附加组(扩展组)
-
主要组:为用户第一次创建时所加入的组,系统中任何一个用户在创建时都会加入一个组(系统默认加入或用户指定加入)
-
附加组:为用户加入的除第一个加入的组(主要组)以外的其他组。
用户通过分组,可以很好的进行各种需求的(账户、权限等)统一管理和配置。
用户和组标识:
-
用户标识(UID)为0-65536范围的数字。
超级用户UID:0,系统用户UID:1-999,普通用户UID:1000开始。在/etc/passwd文件中可以查看系统中每个用户对应的的UID值。
-
组标识(GID)为为0-65536范围的数字。
超级用户组GID:0,系统用户组UID:1-999,普通用户组UID:1000开始。在/etc/group文件中可以查看系统中每个组对应的的GID值。
用户和组的ID值范围以及它们不同的类型的取值范围都是在/etc/login.defs文件中进行默认设置,该内容可以修改。
用户管理文件:
账户文件:/etc/passwd,存放账户信息
每一行被分成7个部分(字段),每个部分用:进行分隔,具体意义如下:
root:x:0:0:root:/root:/bin/bash
[root@localhost ~]# head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash ...... 用户名:加密口令:UID:GID(主要组):说明:主(家)目录:命令解释器(shell)
密码文件:/etc/shadow,存放账户密码
每一行被分成9个部分(字段),每个部分用:进行分隔,具体意义如下:
[root@localhost ~]# head -1 /etc/shadow root:$1$KsQ764v6$tzdck7t.Ep9r3wwvHIaqW1::0:99999:7::: ...... 用户名:加密密码:最后 一次修改时间:最小修改时间:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账户失效时间:保留字段
组文件:/etc/group,存放组信息
每一行被分成4个部分(字段),每个部分用:进行分隔,具体意义如下:
[root@localhost ~]# head -1 /etc/group root:x:0: ...... 组群名称:组群口令(一般为空):GID:附加组的用户成员列表
组密码文件:/etc/gshadow,存放组密码(基本不用)
用户管理命令:对/etc/passwd账户文件和/etc/shadow文件的修改
useradd:创建用户,系统会默认在/home目录里对应创建该账户的家目录,及创建默认(与账户名同名的)主要组,并将该账户加入该组。
usermod:修改账户信息,包括禁用账户
passwd:创建或修改密码,包括禁用账户
chage:修改密码的其他信息,包括密码有效期等。
userdel:删除账户,加-r参数则会递归删除该账户对应的家目录。
组管理命令:对/etc/group账户文件的修改
groupadd:创建一个组
groupmod:修改一个组
groupdel:删除一个组
gpasswd:将账户从附加组中添加或删除
其他账号命令:
su:切换用户身份(不需要重启登录系统)
exit:退出切换的用户身份
id:用于查看真实有效的用户 ID(UID)和组 ID(GID)
(3)文件和目录权限管理
1)文件类型:
在Linux系统中所有的都是文件,即“一切皆是文件”的说法,进程、线程、缓存、网络等等都是文件,Linux系统中的文件类型包含以下几种:
-
普通文件(-):用于存放数据、程序等信息的一般文件,包括文本文件和二进制文件。
-
目录文件(d):由该目录所包含的目录项所组成的文件。
-
符号链接文件(l):负责将一个进程的信息传递给另一个进程,从而使该进程的输出成为另一个进程的输入。
-
块设备文件(b):存取是以一个字块为单位。普通文件的处理是不必要对硬件进行过多操作的,而字符型设备和块设备就不同了,所以是以特别形式文件出现。/dev/cdrom,/dev/fd0,/dev/hda都是磁盘(光驱,软驱,主硬盘),它们的存取是通过数据块来进行的。
-
字符设备文件(c):存取数据时是以单个字符为单位的。/dev/audio是字符设备文件,对audio的存取是以字节流方式来进行的。
-
套接字文件(s):套接字文件系统是一个用户不可见的,高度简化的,用于汇集网络套接字的内存文件系统,
-
命名管道文件(p):负责将一个进程的信息传递给另一个进程,从而使该进程的输出成为另一个进程的输入。
2)文件权限:
权限是账户或组、权限、文件或目录3类概念的组合,权限控制逻辑是:账户(组)通过权限设置对文件(目录)进行访问控制。
权限分为3类:只允许账户自已访问、允许组中的账户访问、任何用户访问
账户分为3类:所有者、组中账户、其他账户
任何一个文件(目录)通过3类权限和3类账户的任意组合,形成了账户对文件(目录)的访问控制。
[root@localhost ~]# ll total 12 -rw-r--r--. 1 root root 5 Feb 20 19:28 aaabbb -rw-------. 1 root root 2767 Dec 20 18:17 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Dec 20 19:11 Desktop drwxr-xr-x. 2 root root 6 Dec 20 19:11 Documents drwxr-xr-x. 2 root root 6 Dec 20 19:11 Downloads -rw-r--r--. 1 root root 0 Feb 21 17:24 file1.sh ......
在Linux系统中的文件(目录)的第1列为权限信息,第3、4列为账户信息,其中第3列为所有者,第4列为组中账户,除此之外的全部为其他账户。
第1列是文件类型权限,共有10个字符,如file1.sh文件的第1列,这10个字符中除第1个字符是表示文件类型(-、d、l)外,剩下9个字符代表权限,这9个字符的表示如下:
9个字符每3个一组,代表一类账户:如rw-r--r--,所有者权限为rw-,所属组权限为r--,其他账户为r--。
在Linux系统中的权限有字符表示和数字表示这2种表示方法:
-
字符表示法:权限用r(读)、w(写)、x(执行)、-(无),这4符号种表示。同时,使用字符法设置权限时,还有4种同不用户u(所有者)、g(所属组)、o(其他账户)、a(以上3种账户),3种操作符号+(增加权限)-(减少权限)=(取消原权限赋新权限)。
-rw-r--r--. 1 root root 0 Feb 21 17:24 file1.sh --表示root账号可以读写file1.sh文件,但不能执行,root组中账户只能读,其他账户只能读
-
数字表示法:权限用4(读)、2(写)、1(执行)、0(无)这4种数字表示。
在系统中查询文件(目录)的权限是以字符表示法显示的,同时也可以在权限命令中使用字符表示法设置权限。数字表示法在权限命令中设置权限使用。
3.3Linux系统权限
chmod:修改文件(目录)的权限,即修改文件(目录)第1列的内容,使用字符法设置权限相对数字法复杂些,所以用数字法设置权限更方便。
[root@localhost ~]# ll file1.sh -rw-r--r--. 1 root root 0 Feb 21 17:24 file1.sh ...... --表示root账户有读写权限,root组账户有读权限,其他账户有读权限 [root@localhost ~]# chmod 755 file1.sh --设置file1.sh文件的权限为rwxr-xr-x(755) [root@localhost ~]# ll file1.sh -rwxr-xr-x. 1 root root 0 Feb 21 17:24 file1.sh ...... --表示root账户有读写执行权限,root组账户有读、执行权限,其他账户有读、执行权限
chown:修改文件(目录)的所有者或所属组,即修改文件(目录)第3、4列的内容。-R参数能同时修改所有子目录的所有者和所属组。
[root@localhost ~]# ll file1.sh -rwxr-xr-x. 1 root root 0 Feb 21 17:24 file1.sh ...... [root@localhost ~]# chown user1:user1 file1.sh --修改所有者和所属组账户 [root@localhost ~]# ll file1.sh -rwxr-xr-x. 1 user1 user1 0 Feb 21 17:24 file1.sh
chgrp:修改文件(目录)的所属组。只能修改所属组,因此很少使用。
4)权限与访问的关系:
-
账户进入目录需要有读(r)和执行(x)权限。
-
账户读取目录中的文件,对目录需要有x权限,对文件需要有r权限。
-
账户修改文件,对目录需要有x权限,对文件需要有r权限、w权限。
-
账户创建文件,对目录要有w、x权限。
-
账户执行目录中的命令,对目录至少要x权限,对命令文件至少需要x权限。
5)特殊权限:
由于有时对Linux系统的权限有些特别的或复杂的控制需求,只有基本权限就显得不够用,所以除了基本的9位权限外,还有额外3位权限位,共12位权限位:
-
suid s(有x) S 4 用户对应的权限位(用户对应的3位上)
-
sgid s(有x) S 2 用户组对应的权限位(用户组对应的3位上)
-
sticky t(有x) T 1 其他用户对应的权限位
6)隐藏属性:
专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。
chattr命令、lsattr命令
umask命令
7)ACL规则:
ACL(文件访问控制)规则是指针对指定用户或组用户设置文件(目录的操作权限)。
setfacl命令、getfacl命令
标签:文件,管理,账户,用户,权限,root,目录 From: https://www.cnblogs.com/hkglion/p/17147518.html