Linux作为一个多任务,多用户的服务器操作系统,Linux提供了严格的权限管理机制,主要从用户身份,文件权限两方面对资源访问进行控制。
Linux系统中的用户账号和组账号的作用在本质上和Windows是一样的,都是基于用户身份来控制对资源的访问。但是在个别细节和表现形式方面还是有些许差异的。
Linux系统中,根据系统管理的需要,将用户账号分为不同的类型,其拥有的权限,担任的角色也各不相同。
用户账号 | 功能 |
---|---|
超级用户 | root用户是Linux系统中默认的超级用户账号,对本级拥有最高的权限,类似于Windows系统中的administrator用户。 |
普通用户 | 普通用户账号需要有root用户或其他管理员用户创建,拥有的权限受到一定限制,-般只在用户自己的宿主目录中拥有完整权限。 |
程序用户 | 在安装Linux系统及 部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。例如: bin, daemon, ftp, mai等。 |
匿名用户 | Windows中的匿名用户时guest, Linux系统中匿名用户是nobody。 |
对于用户账号来说,对应的组账号可以分为基本组(私有组)和附加组(公共组)两种。每一个用户账号可以是多个组账号的成员,但是其基本组账号只有一个。在”/etc/passwd“文件中第四个字段记录的即为该用户的基本组GID号。而对于该用户还属于那些附加组,需要在对应组账号文件中才被体现。
账号 | 描述 |
---|---|
基本组(私有组) | 随着用户的建立而建立,与用户同名 |
附加组(共有组) | 直接创建空组,可以自由添加已有用户。给组设置权限后,该组中的所有用户都具备此权限。 |
Linux系统中的每一个用户账号和组账号都有一个数字形式的身份标记,称为UID(User IDentity,用户标识号)和GID(Group IDentify,组标识号)。对于系统核心来说,UID是作为区分用户的基本依据,原则上每个用户的UID号应该是唯一的。
用户 | UID号 |
---|---|
root用户 | 固定值UID=0 |
程序用户 | UID 1- -999 |
普通翻户 | UID 1000- 6万 |
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
字段 | 解释 |
---|---|
用户账号 | 用户账号的名称,也是登录系统时使用的识别名称 |
密码占位符 | 表示自己有密码 |
用户账号D (UID) | 用户账号的UID号 |
组账号ID (GID) | 所属基本组账号的GID号 |
用户说明 | 用户全名,可以填写与用户相关的说明信息 |
宿主目录(家目录) | 该用户登录后所在的默认工作目录 |
登录Shell | 登录hel等信息,用户完成登录后使用的shell |
查看头两行shadow文件内容
[root@localhost ~]# head -2 /etc/shadow
root:$6$mH8hzgaq7mY/pNmy$L.P3c2kw1EYGn7upTEcckuVE88wOb4XdGqf0qxMq3cml.W0ewoF0m6fGmXnGWn3jCkPRNGEo6xXCcPjtKmKSo0::0:99999:7:::
bin:*:17110:0:99999:7:::
字段 | 解释 |
---|---|
第一字段(root) | 户账号名称 |
第二字段(红色字体部分) | 使用MD5加密的密码字串信息,当为“”或者“! !”时表示此用户不能登录到信息,若该字段内容为空,则该用户无需密码即可正常登陆系统 |
第三字段(14374) | 上次修改密码的时间,示从1970年1 月1日起到最近-次修改密码时间隔的天数 |
第四字段(0) | 密码的最短有效天数。自本次修改密码后,必须至少经过该天数才能再次修改密码,默认值为0,表示不进行限制。 |
第五字段(99999) | 密码的最长有效天数,自本次修改后,经过该天数以后必须再次修改密码。默认值为99999, 表示示不进行限制。 |
第六字段(7) | 提前多少天警告用户口令将过期,默认值为7 |
第七字段 | 在密码过期后多少天内禁用此用户 |
第八字段 | 账号失效时间,此字段制定了用户作废的天数(从1970年1月1日算起),默认值为空,表示账号永久可用 |
第九字段 | 保留字段,目前没有特定用途 |
检索root组包括哪些用户
[root@localhost ~]# grep "^root" /etc/group
root:x:0:
检索哪些组包括root用户
[root@localhost ~]# grep "root" /etc/group
root:x:0:
seradd命令用来创建新的用户或更改用户的信息。
useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
语法格式:useradd [选项] [用户名]
常用选项有
-D 改变新建用户的预设值
-c 添加备注文字
-d 新用户每次登陆时所使用的家目录
-e 用户终止日期,日期的格式为YYYY-MM-DD
-f 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g 指定用户对应的用户组
-G 定义此用户为多个不同组的成员
-m 用户目录不存在时则自动创建
-M 不建立用户家目录,优先于/etc/login.defs文件设定
-n 取消建立以用户名称为名的群组
-r 建立系统帐号
-u 指定用户id
-c<备注> 修改用户账号的备注文字
-d <登入目录> 修改用户登入时的目录
-e <有效期限> 修改账号的有效期限
-f<缓冲天数> 修改在密码过期后多少天即关闭该账号
-g<群组> 修改用户所属的群组
-G<群组> 修改用户所属的附加群组
-l<账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s 修改用户登入后所使用的shell
-u 修改用户ID
-U 解除密码锁定
userdel [-r] 用户名
添加-r选项时,表示连用户的宿主目录一并删除
[root@localhost ~]# useradd stu01
[root@localhost ~]# Is -Id /home/stu01/
drw----- 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
[root@localhost ~]# userdel -r stu01
[root@localhost ~]# Is -Id /home/stu01/
Is: /home/stu01/:没有那个文件或目录
常用格式:passwd [选项]
常用选项:
-d 删除密码
-l 锁定用户密码,无法被用户自行修改
-u 解开已锁定用户密码,允许用户自行修改
-e 密码立即过期,下次登陆强制修改密码
-k 保留即将过期的用户在期满后能仍能使用
-S 查询密码状态
语法格式:finger [选项]
常用选项:
-l 列出该用户的账号名称、真实姓名、用户根目录、登录所用的 shell、登录时间、邮件地址、电子邮件状态等
-m 排除查找用户的真实姓名
-s 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话
-p 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容
命令执行基本格式
groupadd [-g GID] 组账号名
[root@33 ~]# groupadd -g 1000 market
命令使用基本格式
gpasswd [选项] 组账号名
常用选项
-a 向组内添加一个用户
-d 从组中删除一个用户成员
-M 定义组成员列表,以逗号分隔
例如:向组内添加一个用户
[root@33 ~]# gpasswd -a 12
例如:从组内删除一个用户
[root@33 ~]# gpasswd -d 12
例如:添加多个用户
[root@33 ~]# gpasswd -M a,b,c,d
使用命令基本格式
groupdel 组账号名
例如
[root@33 ~]# groupdel market
第一个字符“-” 表示文件类型。可以是d(目录),b(块设备文件),c(字符设备文件),“-”普通文件,字母“l”(链接文件)等
第2-4个字符“rw-” 表示该文件的属主用户(User)对该文件的访问权限。
第5-7个字符“r–” 表示该文件的属组内每个成员用户(Group)对该文件的访问权限
第8–10个字符“r–” 表示其他任何用户(Other)对该文件的访问权限
1 子文件数量
root 属主
root 属组
34298 大小,单位:字节
04-02 00:23 创建时间
语法格式: chmod [选项] [文件]
常用选项:
-c 若该文件权限确实已经更改,才显示其更改动作
-f 若该文件权限无法被更改也不显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
语法格式:chown [选项]
常用选项:
-R 对目前目录下的所有文件与子目录进行相同的拥有者变更
-c 若该文件拥有者确实已经更改,才显示其更改动作
-f 若该文件拥有者无法被更改也不要显示错误讯息
-h 只对于连结(link)进行变更,而非该 link 真正指向的文件
-v 显示拥有者变更的详细资料
语法格式:umask [选项] [权限掩码]
常用选项:
-S 以文字的方式来表示权限掩码
-p 输出的权限掩码可直接作为指令来执行